From 690cc42a250ff97d723ea84203a2a05ef9f6c097 Mon Sep 17 00:00:00 2001 From: Bela Proinsias <1349415658@qq.com> Date: Thu, 21 Dec 2023 19:13:32 +0800 Subject: [PATCH] fix: update crossmap and natives to b3095(#16) --- PrivateMenu/src/natives/crossmap.cpp | 91 +- PrivateMenu/src/natives/natives.hpp | 33558 ++++++++++++------------- 2 files changed, 16664 insertions(+), 16985 deletions(-) diff --git a/PrivateMenu/src/natives/crossmap.cpp b/PrivateMenu/src/natives/crossmap.cpp index ea7c73183a..faecb518cf 100644 --- a/PrivateMenu/src/natives/crossmap.cpp +++ b/PrivateMenu/src/natives/crossmap.cpp @@ -36,7 +36,7 @@ uint64_t Crossmap::map(uint64_t original_native) { return 0; } -//3028 1.67 +//3095 1.68 uint64_t Crossmap::m_crossmapData[] = { 0x4EDE34FBADD967A6, 0x4EDE34FBADD967A6, 0xE81651AD79516E48, 0xE81651AD79516E48, @@ -140,7 +140,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x0F6F1EBBC4E1D5E6, 0x9F05118582DBA146, 0x22E21FBCFC88C149, 0xF8F0D1290FE81BC5, 0x829CD22E043A2577, 0x616D6688F78D1729, - 0xA40CC53DF8E50837, 0x01F0B819E78A18A1, + 0x71A6F836422FDD2B, 0x71A6F836422FDD2B, 0x509D5878EB39E842, 0x4E55EAB577C13329, 0x9A294B2138ABB884, 0x43AFC452F25F3A2F, 0x539E0AE3E6634B9F, 0x51C8BEA2005931AB, @@ -416,6 +416,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x8378627201D5497D, 0x0DB5B122A29E007B, 0xB4C8D77C80C0421E, 0x095BB431592C5642, 0x48164DBB970AC3F0, 0x8E453F6C5ABDD9DC, + 0x1091922715B68DF0, 0x1091922715B68DF0, 0x4757F00BC6323CFE, 0xD78F39BF33D61469, 0x4AE5AC8B852D642C, 0xBB74EE81E0CA2E98, 0xE6D2CEDD370FF98E, 0xD0E4082BC9A5DC1E, @@ -613,6 +614,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x6A03BF943D767C93, 0xFAD234E6A6D853B1, 0x9F65DBC537E59AD5, 0x3F055D2CBA242A5D, 0xAAD6D1ACF08F4612, 0x97FBC735CAFB56C8, + 0xA32ABFEB2A03B306, 0xA32ABFEB2A03B306, 0x6F4C85ACD641BCD2, 0x03603B0046EE6ACD, 0x814FA8BE5449445D, 0xF9F8E3060F7CAEDB, 0x93C8B64DEB84728C, 0x836392D80E4F106A, @@ -1424,6 +1426,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x726845132380142E, 0x1C53039135495CAE, 0xB44250AAA456492D, 0x8ABEEFFE3E33A4FA, 0xDCB194B85EF7B541, 0xC3E3C19E6844ABAB, + 0x4100BF0346A8D2C3, 0x4100BF0346A8D2C3, 0xEEC4047028426510, 0x2F30818D75D66C5B, 0xACEE6F360FC1F6B6, 0xEE3CD2D847C128FA, 0x96EF97DAEB89BEF5, 0x8AC9895670AC9049, @@ -1447,6 +1450,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x6C38AF3693A69A91, 0xD03F4780B97A39AE, 0xEA1E2D93F6F75ED9, 0xFCD81108C00214FE, 0x89C8553DD3274AAE, 0x9C1E2E25111A648E, + 0xDF269BE2909E181A, 0xDF269BE2909E181A, 0xA46B73FAA3460AE1, 0xC4551CF3C3F087F3, 0xF78B803082D4386F, 0x4E6B849A6CDF70A3, 0x9C30613D50A6ADEF, 0xA2EEF7A44465A04D, @@ -1488,8 +1492,10 @@ uint64_t Crossmap::m_crossmapData[] = { 0x03300B57FCAC6DDB, 0x4DA9E018E2F3A01C, 0x98EDF76A7271E4F2, 0x9E75427EC4E37CA5, 0xAEEDAD1420C65CC0, 0x1258AD6DBC2FBAE1, + 0xA342A3763B3AFB6C, 0xA342A3763B3AFB6C, 0x4CC7F0FEA5283FE0, 0xD7DE01DAA350496A, 0xEFD97FF47B745B8D, 0x45059C350D918C38, + 0x6E9EF3A33C8899F8, 0x6E9EF3A33C8899F8, 0xD7021272EB0A451E, 0x8CBAC8B951402F69, 0x2C933ABF17A1DF41, 0x5C483F4653DC993C, 0x82E7FFCD5B2326B3, 0x886C31F5E888F079, @@ -1565,6 +1571,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0xFDDC2B4ED3C69DF0, 0x1A926FCDE89B4E6E, 0xF7B38B8305F1FE8B, 0x7C7F282055FB517C, 0x2201C576FACAEBE8, 0x836D2C7CBC0248D9, + 0xEE831F15A8D0D94A, 0xEE831F15A8D0D94A, 0xBEB3D46BB7F043C0, 0xF03C7B57F88A5BD3, 0x1F710BFF7DAE6261, 0xF03BF645614F3175, 0x0AD973CA1E077B60, 0x2200033BCF24787D, @@ -1708,6 +1715,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x3C49C870E66F0A28, 0xAD38642974DA79B6, 0x5C8B2F450EE4328E, 0xEFF44B1774BDC08F, 0xB1906895227793F3, 0x1DBA5F84560D5943, + 0x875BDD898B99C8CE, 0x875BDD898B99C8CE, 0x5702B917B99DB1CD, 0x204EF9C415A885DE, 0xB9CF1F793A9F1BF1, 0xC600DDAA3EAEB670, 0xCB645E85E97EA48B, 0x5A50E8F361E4CFB1, @@ -1940,6 +1948,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x44A8FCB8ED227738, 0x75DF72FC74EED046, 0x7196842CB375CDB3, 0xBD9259F686649141, 0x4DC9A62F844D9337, 0x87384D2CF86135EB, + 0xFFBD7052D65BE0FF, 0xFFBD7052D65BE0FF, 0x8ACD366038D14505, 0x75A2D1BBA9D95D0E, 0xF6F5161F4534EDFF, 0xA598E8A456B0A2F7, 0x731EC8A916BD11A1, 0x5DA1DE6C940D22C1, @@ -1980,6 +1989,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x5C48B75732C8456C, 0x8026FC64F8CCD292, 0xFD1695C5D3B05439, 0xB30977F20556F296, 0xC3675780C92F90F9, 0xDE55146A7765454D, + 0x168A09D1B25B0BA4, 0x168A09D1B25B0BA4, 0xF4080490ADC51C6F, 0x0D84113E3B923524, 0xFB71170B7E76ACBA, 0x365DC1E8054AF31A, 0xA72CD9CA74A5ECBA, 0xE4DC7B3DD712372B, @@ -2358,6 +2368,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0xA7FFBA498E4AAF67, 0x12C0D6CD0D2EBB6F, 0xB4F47213DF45A64C, 0xB6CFA448D6BF4690, 0x0FFB3C758E8C07B9, 0x4A27E73B31F943DC, + 0x32F6EEF031F943DC, 0x32F6EEF031F943DC, 0x349CE7B56DAFD95C, 0xF35435F8DC034A5C, 0xF133BBBE91E1691F, 0xF6F7567DC74C45CE, 0xD4D8636C0199A939, 0xC1C69295C2020379, @@ -2718,6 +2729,8 @@ uint64_t Crossmap::m_crossmapData[] = { 0x693478ACBD7F18E7, 0xC4A706CAFECA1953, 0x4B82FA6F2D624634, 0xF0F077286626CEBB, 0xECF041186C5A94DC, 0xEAA437DE2A801E8A, + 0xBA4583AF4C678A9B, 0xBA4583AF4C678A9B, + 0x8BAF8AD59F47AAFC, 0x8BAF8AD59F47AAFC, 0xBD6E84632DD4CB3F, 0x12C01FC00B0CBB6B, 0x4448EB75B4904BDB, 0x6C39BDF5EA5D38FC, 0xC4582015556D1C46, 0xD87B2B089732DAFC, @@ -2850,7 +2863,6 @@ uint64_t Crossmap::m_crossmapData[] = { 0xDA024BDBD600F44A, 0x693B9B4C2F3B9312, 0xA68D3D229F4F3B06, 0x078587F1408317CE, 0x69D82604A1A5A254, 0x0D6C8EFC46788359, - 0x6AFD2CD753FEEF83, 0xFAD0C862976B28B2, 0x87E0052F08BD64E6, 0x67B3687F7C69B969, 0x040ADDCBAFA1018A, 0x9286D4F3BBB483D0, 0x16DA8172459434AA, 0x80CA040BF6D2FA31, @@ -2926,6 +2938,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x6C5AE23EFA885092, 0x92187CF73A8D1B96, 0x7497D2CE2C30D24C, 0xE87F28FD4128D063, 0xC8B1B2425604CDD0, 0x56D84C8BC3CE3EF9, + 0xDD3AA743AB7D4D75, 0xDD3AA743AB7D4D75, 0xD2C91A0B572AAE56, 0x4C2ADBAAF83DA56A, 0xC5EF963405593646, 0xC401B1960D35A6C4, 0x95D9F4BC443956E7, 0x302B7D91564CDE7F, @@ -3131,6 +3144,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x3A539D52857EA82D, 0x8093F3812E836BCF, 0x62A456AA4769EF34, 0xDCC6C00DE6C4A799, 0xC15907D667F7CFB2, 0xEC62EF361B6CB976, + 0xBEFB80290414FD4F, 0xBEFB80290414FD4F, 0x6D28DC1671E334FD, 0x7104198E063B41C7, 0x3BD3F52BA9B1E4E8, 0xAA3A5AD85A475137, 0xB138AAB8A70D3C69, 0xFAE22BD3C12AEFB4, @@ -3250,6 +3264,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0xAA76052DDA9BFC3E, 0xBAC712AB83AFA8CC, 0xE04B48F2CC926253, 0xE649818AF72843C4, 0x93E0DB8440B73A7D, 0x0771D4899F0EDF3E, + 0x809549AFC7AEC597, 0x809549AFC7AEC597, 0x2EB41072B4C1E4C0, 0x77BCD89051F77C43, 0xF90125F1F79ECDF8, 0x766E7B4FEF97CFDE, 0x72751156E7678833, 0xAD69CF046AA50E85, @@ -3429,6 +3444,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0xECB41AC6AB754401, 0x31AE99BF71F99FDF, 0x9B4BD21D69B1E609, 0xF05E12C1DE78B9F2, 0xC0E0D686DDFC6EAE, 0xDD07F250CCC73F1A, + 0xD69CE161FE614531, 0xD69CE161FE614531, 0xB3271D7AB655B441, 0x1164A75E490C27B6, 0x4851997F37FE9B3C, 0x4F8678C02360C3D2, 0x4B33C4243DE0C432, 0xF1D0B0CE940F620D, @@ -3470,6 +3486,8 @@ uint64_t Crossmap::m_crossmapData[] = { 0xDB8A58AEAA67CD07, 0xA595AA1819B05EA0, 0x1581503AE529CD2E, 0x0F575D68F532124C, 0x5009DFD741329729, 0xF62AFE29E168F6E0, + 0xE6A27CDA42887F93, 0xE6A27CDA42887F93, + 0xC4493521BAA12CCE, 0xC4493521BAA12CCE, 0x93054C88E6AA7C44, 0x7BF080B6E9DA59BA, 0x46F917F6B4128FE4, 0xF509A0F327DF0ADD, 0xC7F2DE41D102BFB4, 0xC9F6D856F39266AF, @@ -3534,7 +3552,6 @@ uint64_t Crossmap::m_crossmapData[] = { 0x2FB19228983E832C, 0x7BBF11C251338D41, 0x918B101666F9CB83, 0x918B101666F9CB83, 0xC30713A383BFBF0E, 0xFAFBA6521BA828B9, - 0xA9CDB1E3F0A49883, 0xA9CDB1E3F0A49883, 0xBA2C7DB0C129449A, 0xCB7FE0F272C209AB, 0x5CE587FB5A42C8C4, 0x15A7798AEEFAC562, 0x7EEC7E4F6984A16A, 0x9A9BC0C3D955A625, @@ -3722,11 +3739,17 @@ uint64_t Crossmap::m_crossmapData[] = { 0x70F52471E758EBAE, 0xA6B31A9A2BC308B5, 0xFEA3F7E83C0610FA, 0xC11595E99C048D43, 0x5A46ACE5C4661132, 0x02F3C05A368B66B3, + 0x10A691F5756416D0, 0x10A691F5756416D0, 0x887DAD63CF5B7908, 0x68F94159C38F25F8, 0x8A23D1324F6B2BAC, 0x11FD0D892567AF52, 0xCEACCF0550FDC5BA, 0xCE650C981E786BEB, 0xEC9553A178E8F1D1, 0x410BD6C72A6CE17A, 0x48FAC5DC7AC6EA99, 0x09E495BCF3E7FA74, + 0x7EA06F970F999394, 0x7EA06F970F999394, + 0x5649CA22AF74E019, 0x5649CA22AF74E019, + 0xBD642335A732F1A8, 0xBD642335A732F1A8, + 0x961D4157B9B428DB, 0x961D4157B9B428DB, + 0x151D6C04C9E2742F, 0x151D6C04C9E2742F, 0x7EE9F5D83DD4F90E, 0x120E577522852984, 0x377906D8A31E5586, 0x14C30F326F5883DA, 0x052837721A854EC7, 0x33B15CA8B699DF5B, @@ -3847,6 +3870,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0xC669EEA5D031B7DE, 0xB44FCE2D38FDEDFE, 0xC3654A441402562D, 0x365C28B73347797E, 0x2C654B4943BDDF7C, 0xF94FC0634C750884, + 0x7CF3AF51DCFE4108, 0x7CF3AF51DCFE4108, 0xFEDB7D269E8C60E3, 0x03F10D56CCA2C055, 0x61A3DBA14AB7F411, 0x19DB71A72065EFB0, 0x149916F50C34A40D, 0xF81BE163E469E944, @@ -3951,6 +3975,8 @@ uint64_t Crossmap::m_crossmapData[] = { 0x8F993D26E0CA5E8E, 0x19D0C4621093F82B, 0xA516C198B7DCA1E1, 0xE4C00EFAE138F020, 0xDF2E1F7742402E81, 0xE3270F1A682CF48C, + 0xBC456FB703431785, 0xBC456FB703431785, + 0xD4592A16D36673ED, 0xD4592A16D36673ED, 0xE9EA16D6E54CDCA4, 0x349F973598822727, 0xDE2EF5DA284CC8DF, 0x3968AF3046718EAC, 0x59424BD75174C9B1, 0x5FD79E92E62966FB, @@ -4094,6 +4120,8 @@ uint64_t Crossmap::m_crossmapData[] = { 0xB81F6D4A8F5EEBA8, 0xBF60B9A0E651D89B, 0x203B527D1B77904C, 0xA7AD7AB3035B02EA, 0x76D26A22750E849E, 0x827FC1D24FC3CD95, + 0x5AE614ECA5FDD423, 0x5AE614ECA5FDD423, + 0x92D96892FC06AF22, 0x92D96892FC06AF22, 0xBA71116ADF5B514C, 0xAE89444B15234CCE, 0xF19D095E42D430CC, 0xE251D2995353C61E, 0x2E0A74E1002380B1, 0x9EBBAB4F81D0BDAC, @@ -4101,6 +4129,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0xAA3F739ABDDCF21F, 0x9E4B8D8CF051F6DC, 0x6ADAABD3068C5235, 0xA648CE821FEF3C51, 0xEF49CF0270307CBE, 0x235C228FDD040462, + 0x6B407F2525E93644, 0x6B407F2525E93644, 0x598803E85E8448D9, 0x0B29D0B41AC20799, 0x7504C0F113AB50FC, 0xB5A36B0C5D6C2884, 0xCEE4490CD57BB3C2, 0xFE448E8C2209CA31, @@ -4405,12 +4434,17 @@ uint64_t Crossmap::m_crossmapData[] = { 0x9B0F3DCA3DB0F4CD, 0x68F7F7C5DF6717F8, 0x61E1DD6125A3EEE6, 0x913602ADD2D86A7A, 0xA6E9FDCB2C76785E, 0x53152C1272227778, + 0x61F02E4E9A7A61EA, 0x61F02E4E9A7A61EA, + 0x24910C3D66BA770D, 0x24910C3D66BA770D, + 0x56185A25D45A0DCD, 0x56185A25D45A0DCD, + 0xF9DDA40BC293A61E, 0xF9DDA40BC293A61E, 0x00689CDE5F7C6787, 0x25F4808C787100D3, 0x1F25887F3C104278, 0xB3F63B683EB1995A, 0x81A15811460FAB3A, 0x7991957B46F22F47, 0x1BBE0523B8DB9A21, 0x16CFE70936BA84C7, 0xACE699C71AB9DEB5, 0xCE41CD0179F8640B, 0xFE54B92A344583CA, 0xF20C964ED62BD3A7, + 0x48BD57D0DD17786A, 0x48BD57D0DD17786A, 0x29A16F8D621C4508, 0xA86C8A254D6B6F40, 0xC2DB6B6708350ED8, 0xD4BC322888F79B7E, 0xD0E9CE05A1E68CD8, 0x1750AA417BEDD270, @@ -4513,6 +4547,8 @@ uint64_t Crossmap::m_crossmapData[] = { 0xEEBFC7A7EFDC35B4, 0xEEBEB450F9417D7F, 0xE495D1EF4C91FD20, 0xC713B16D0F5FBF9D, 0x5EE5632F47AE9695, 0x9DBF1E37DC1A1F46, + 0x337EF33DA3DDB990, 0x337EF33DA3DDB990, + 0xFD8CE53356B5D745, 0xFD8CE53356B5D745, 0x5EF77C9ADD3B11A3, 0xB4A09397270CB974, 0xA7ECB73355EB2F20, 0x08046513BC06BFBC, 0xEC69ADF931AAE0C3, 0xADBCF06C9348EEF5, @@ -4715,6 +4751,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x9D30687C57BAA0BB, 0x528A16ECF4B7B5A6, 0x86B4B6212CB8B627, 0x1A144C0743BF5890, 0x41290B40FA63E6DA, 0xBC4F3DBA48761D9A, + 0x1980F68872CC2C3D, 0x1980F68872CC2C3D, 0x4D610C6B56031351, 0x85F0DD9B2A310950, 0xA74AD2439468C883, 0xB51B6AC3785890FE, 0x0419B167EE128F33, 0x63CDE093822E42C4, @@ -4752,6 +4789,8 @@ uint64_t Crossmap::m_crossmapData[] = { 0x8DC9675797123522, 0x67896C7A4066E42E, 0xB251E0B33E58B424, 0x89D51606F3FCA194, 0xAEF12960FA943792, 0xA347DA69520FE64A, + 0x0C02468829E4AA65, 0x0C02468829E4AA65, + 0xEA4743874D515F13, 0xEA4743874D515F13, 0xAA653AE61924B0A0, 0x0D1E561A4621971E, 0xC60060EB0D8AC7B1, 0x6405F9D3DF61E127, 0x70A252F60A3E036B, 0x3D82B1EAD5216876, @@ -4767,11 +4806,20 @@ uint64_t Crossmap::m_crossmapData[] = { 0x04F2FA6E234162F7, 0xC4DBC6C793A97252, 0x143921E45EC44D62, 0xB3AB0B43CABD4F3E, 0xC8E9B6B71B8E660D, 0x8D6D4EB2FFE77CB3, + 0x465EEA70AF251045, 0x465EEA70AF251045, + 0xAFD262ACCA64479A, 0xAFD262ACCA64479A, + 0xDAF4C98C18AC6F06, 0xDAF4C98C18AC6F06, + 0x16CFBC5E7EB32861, 0x16CFBC5E7EB32861, + 0x1A2BCC8C636F9226, 0x1A2BCC8C636F9226, + 0xBEC4B8653462450E, 0xBEC4B8653462450E, + 0x491E822B2C464FE4, 0x491E822B2C464FE4, + 0xC889AE921400E1ED, 0xC889AE921400E1ED, 0x2970EAA18FD5E42F, 0xEB7247ECF9313934, 0x211E95CE9903940C, 0x4F80CD41C0C6F1E3, 0x5BBCF35BF6E456F7, 0x7619E49E996C8A15, 0x71AFB258CCED3A27, 0x583536248E014455, 0xAE71FB656C600587, 0x8EA0917E9BF68ABF, + 0x249249D74F813EB2, 0x249249D74F813EB2, 0x0506ED94363AD905, 0x81A129E894BD7138, 0x8F0D5BA1C2CC91D7, 0x946CF11741899D4C, 0x55EAB010FAEE9380, 0x2F800AD09C30EAFF, @@ -4786,6 +4834,10 @@ uint64_t Crossmap::m_crossmapData[] = { 0x2F5A72430E78C8D3, 0x4497678941C27E46, 0xEC0C1D4922AF9754, 0x0B5FFFF9010AEF80, 0xEF9D388F8D377F44, 0x6A9E89C17033E79E, + 0x27D27223E8EF22ED, 0x27D27223E8EF22ED, + 0x6638C0F19DE692FE, 0x6638C0F19DE692FE, + 0x3EE18B00CD86C54F, 0x3EE18B00CD86C54F, + 0xE728F090D538CB18, 0xE728F090D538CB18, 0xF2CA003F167E21D2, 0x8EE7901EEE84F67E, 0xEF7D17BC6C85264C, 0xA7D416B098808337, 0xB0C56BD3D808D863, 0xD0DC425AC19B966E, @@ -4857,7 +4909,6 @@ uint64_t Crossmap::m_crossmapData[] = { 0x849648349D77F5C5, 0x817A1EC3448E9FF1, 0x515B4A22E4D3C6D7, 0x830CE9F43780AC92, 0x4337511FA8221D36, 0x190378368BE7EFF3, - 0x02CE1D6AC0FC73EA, 0x1445487E16675A4E, 0xB539BD8A4C1EECF8, 0x0C547D1E965980C5, 0x3F4D00167E41E0AD, 0xD374BF034B7E27F3, 0x6EA318C91C1A8786, 0xE36D9E1EDE0E76B4, @@ -5146,6 +5197,17 @@ uint64_t Crossmap::m_crossmapData[] = { 0x991E1588FAD9019D, 0x04AA32C25ED6D69D, 0xCABC9874AFA70D6D, 0x5B46189D0DA97DE4, 0x9C0C6BD0F94CE391, 0xE8C7135747EA3054, + 0x55F006B9D4A46C1D, 0x55F006B9D4A46C1D, + 0xDEA273D5F8A9661A, 0xDEA273D5F8A9661A, + 0xDCEF983C24191997, 0xDCEF983C24191997, + 0xF8332B06F0EECC9C, 0xF8332B06F0EECC9C, + 0x8C7E8D6F96C9E948, 0x8C7E8D6F96C9E948, + 0xED1B407BADA42CEC, 0xED1B407BADA42CEC, + 0x95CE79A6939C537A, 0x95CE79A6939C537A, + 0xD687100F616163F4, 0xD687100F616163F4, + 0x2803B027479FB640, 0x2803B027479FB640, + 0xBF7B5BB7ED890380, 0xBF7B5BB7ED890380, + 0xE03B9F95556E48E9, 0xE03B9F95556E48E9, 0x76EF28DA05EA395A, 0x227D0C27EB51D76C, 0xA40F9C2623F6A8B5, 0x00BDC89742B13CD2, 0x5CBAD97E059E1B94, 0x6A9B427B35077684, @@ -5185,6 +5247,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x1353F87E89946207, 0xB0DF27929B02C57E, 0x72D918C99BCACC54, 0x97DD063A9C6137F8, 0xAEEF48CDF5B6CE7C, 0x9A9677D7F3615A86, + 0xE1E02509169C124E, 0xE1E02509169C124E, 0x78321BEA235FD8CD, 0x27AEB178E6BB8021, 0x595F028698072DD9, 0x8FF2665359043205, 0x83F28CE49FBBFFBA, 0x521B8DE052C56837, @@ -5222,6 +5285,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x74732C6CA90DA2B4, 0x568C5A2B6834D226, 0xF3929C2379B60CCE, 0xDC8C0439F5CD3C85, 0xCEF70AA5B3F89BA1, 0x6CCB49E4B35F59D6, + 0xE0128328CF1FD9F4, 0xE0128328CF1FD9F4, 0xA02E59562D711006, 0xD0C8A7FF1FD5A461, 0xB9351A07A0D458B1, 0x8FFE1F924EF00340, 0xFA8904DC5F304220, 0xE8B604AD9A55DE39, @@ -5234,6 +5298,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x56CE820830EF040B, 0x90383DF0E1713198, 0xCAE55F48D3D7875C, 0x5A59537D7B87C071, 0xF49ABC20D8552257, 0xC2FDE8BF0797A991, + 0xCDC936BF35EDCB73, 0xCDC936BF35EDCB73, 0x4811BBAC21C5FCD5, 0x93055E37701645DF, 0x5539C3EBF104A53A, 0x3A777FFCB6CEEC68, 0x702BC4D605522539, 0x748527CDF8982E12, @@ -5284,6 +5349,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x10FAB35428CCC9D7, 0x76CD105BCAC6EB9F, 0xD83C2B94E7508980, 0x7B3F26F5D11BF3BE, 0xCA97246103B63917, 0xBF52D447C795492B, + 0x0292BD7F3766CEBC, 0x0292BD7F3766CEBC, 0x9DE624D2FC4B603F, 0x2312C61FB9082621, 0xF4435D66A8E2905E, 0xAB8F1746453732A4, 0x4EEBC3694E49C572, 0x2CA491A425D49E0D, @@ -5423,9 +5489,6 @@ uint64_t Crossmap::m_crossmapData[] = { 0x655B91F1495A9090, 0xB10D024D4A098884, 0x172F75B6EE2233BA, 0x36D707C40C1DCEB3, 0x19D8DA0E5A68045A, 0x3369879DB5987727, - 0x46FB3ED415C7641C, 0x5D5A26AAC19E7AEF, - 0xA12D3A5A3753CC23, 0x4EADFBB3267BBD21, - 0xF287F506767CC8A9, 0xB03B07A8637DE711, 0x472841A026D26D8B, 0x1CACC0A56175FE7D, 0xEC5E3AF5289DCA81, 0xC9B8B8CBF4083E0F, 0x7F562DBC212E81F9, 0x72073521D4ACB83A, @@ -5478,6 +5541,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x3DAD00265FBF356B, 0x0B933C101279FCB7, 0xAA6D5451DC3448B6, 0xDBCD5F83F8E84B5C, 0x8C70252FC40F320B, 0x028A2896E5EB2CBE, + 0xA0CE91E47531D3BB, 0xA0CE91E47531D3BB, 0xEA23C49EAA83ACFB, 0xF24C94A1C99DA4AB, 0x2D95C7E2D7E07307, 0xC522FBE9CCC8C20E, 0x8A8694B48715B000, 0x72096E3388B1352A, @@ -5552,6 +5616,9 @@ uint64_t Crossmap::m_crossmapData[] = { 0x82377B65E943F72D, 0xB039D40188E991D1, 0xC927EC229934AF60, 0xA610A20639713DEA, 0x4C2A9FDC22377075, 0xE30EF2DB0A0576B4, + 0xDBDF80673BBA3D65, 0xDBDF80673BBA3D65, + 0x40DF02F371F40883, 0x40DF02F371F40883, + 0xE549F846DE7D32D5, 0xE549F846DE7D32D5, 0xAD4326FCA30D62F8, 0xF3BBE5935A04D276, 0xB309EBEA797E001F, 0x89C96510735202D2, 0x26F07DD83A5F7F98, 0xB75567FBC57302E6, @@ -5928,6 +5995,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x40F7E66472DF3E5C, 0x1B4FD4A821EC277E, 0x5A34CD9C3C5BEC44, 0x2D133345AB736461, 0x68103E2247887242, 0x67BEDA5A8CD7FF28, + 0xC33E7CBC06EC1A8D, 0xC33E7CBC06EC1A8D, 0x1DE0F5F50D723CAA, 0x29D58EEB6D24D5FB, 0x274A1519DFC1094F, 0xE3E138A155ACC0B9, 0xD05D1A6C74DA3498, 0x8FA5AF26CEA0CF0C, @@ -5971,6 +6039,8 @@ uint64_t Crossmap::m_crossmapData[] = { 0xC22912B1D85F26B1, 0x20DACABA7023B608, 0x593570C289A77688, 0x5BC93955B6EEBC0B, 0x91B87C55093DE351, 0x753B42F8D561B8E2, + 0xD9719341663C385F, 0xD9719341663C385F, + 0x8956A309BE90057C, 0x8956A309BE90057C, 0x36391F397731595D, 0x9E0B6B766CF810E5, 0xDEB2B99A1AF1A2A6, 0x12AEE383533D0E70, 0x9465E683B12D3F6B, 0xDC5F81D7F618A8A6, @@ -6141,6 +6211,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x157F93B036700462, 0xBE259DBA45F2996E, 0xAF754F20EB5CD51A, 0x6DA5456258FF887A, 0x0C698D8F099174C7, 0xEC214A1AB38E0C2B, + 0x1BC0EA2912708625, 0x1BC0EA2912708625, 0xE4C3B169876D33D7, 0x045DEDB275874D85, 0xEB81A3DADD503187, 0xEF8AE79C28640CD2, 0x4F7D8A9BFB0B43E9, 0xBC64B805EE071A37, @@ -6174,6 +6245,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0xC02F4DBFB51D988B, 0xEAF65721ACB2FDFB, 0x6B3C4650BC8BEE47, 0x16EC7160BEBE7A6F, 0x4E096588B13FFECA, 0x2873B596E322DCDA, + 0x9F4624F76E6953D1, 0x9F4624F76E6953D1, 0x63145D9C883A1A70, 0xE05EB1EAE7CCDC59, 0xA50ABC31E3CDFAFF, 0xFB193A91887FFAB1, 0x038C1F517D7FDCF8, 0xEA62FB8CA7210CF3, @@ -6288,6 +6360,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0xF83D0FEBE75E62C9, 0xFF89A4A6580A0AB1, 0x35A3CD97B2C0A6D2, 0xA187381CF52D87A8, 0x8410C5E0CD847B9D, 0x118A68C39B251785, + 0x25D984CFB64ED6DE, 0x25D984CFB64ED6DE, 0x75A9A10948D1DEA6, 0xA3EA82ACD0C97C3F, 0x6B50FC8749632EC1, 0x3D0BD9B4E36B9BAD, 0x60E892BA4F5BDCA4, 0x030E65C89EF1E38C, @@ -6304,6 +6377,7 @@ uint64_t Crossmap::m_crossmapData[] = { 0x5FBAE526203990C9, 0x2102B34A7006F6C9, 0x20FE7FDFEEAD38C0, 0xE1945100CB123CBF, 0x5E1460624D194A38, 0x05E996648244715D, + 0x35CCE12EAECB4A51, 0x35CCE12EAECB4A51, 0x6D14BFDC33B34F55, 0x35380F6C70B9B01F, 0x89DA85D949CE57A0, 0x19619CF6A5F4EE0A, 0x55F5A5F07134DE60, 0x6A666C5DD5D6F94E, @@ -6532,5 +6606,4 @@ uint64_t Crossmap::m_crossmapData[] = { 0x40EB1EFD921822BC, 0xFAF127E6FF05E72E, 0x340A36A700E99699, 0xA759D3AD1579CBCB, 0x8E580AB902917360, 0x3AABE0CD8115D72E, - 0xD69CE161FE614531, 0xD69CE161FE614531, }; \ No newline at end of file diff --git a/PrivateMenu/src/natives/natives.hpp b/PrivateMenu/src/natives/natives.hpp index d513e54736..280c643b04 100644 --- a/PrivateMenu/src/natives/natives.hpp +++ b/PrivateMenu/src/natives/natives.hpp @@ -1,7 +1,7 @@ #pragma once -// 2023/11/12 21:56:49 -// Namespaces: 45 | Natives: 6514 | Comments: 2323 | Known names: 6460 (6514) +// 2023/12/21 13:36:47 +// Namespaces: 45 | Natives: 6568 | Comments: 2339 | Known names: 6467 (6568) /* * Comment versions * To update this file generate natives.hpp file from[natives.json](https://github.com/alloc8or/gta5-nativedb-data). @@ -12,17167 +12,16773 @@ namespace SYSTEM { - // Pauses execution of the current script, please note this behavior is only seen when called from one of the game script files(ysc). In order to wait an asi script use "inline Void Wait(DWORD time);" found in main.h - inline Void Wait(int ms) { return _i(0x4EDE34FBADD967A6, ms); } // 0x4ede34fbadd967a60x7715c03bB323 - // Examples: - // g_384A = SYSTEM::StartNewScript("cellphone_flashhand", 1424); - // l_10D = SYSTEM::StartNewScript("taxiService", 1828); - // SYSTEM::StartNewScript("AM_MP_YACHT", 5000); - // SYSTEM::StartNewScript("emergencycall", 512); - // SYSTEM::StartNewScript("emergencycall", 512); - // SYSTEM::StartNewScript("FM_maintain_cloud_header_data", 1424); - // SYSTEM::StartNewScript("FM_Mission_Controller", 31000); - // SYSTEM::StartNewScript("tennis_family", 3650); - // SYSTEM::StartNewScript("Celebrations", 3650); - // - // Decompiled examples of usage when starting a script: - // - // - // SCRIPT::RequestScript(a_0); - // if (SCRIPT::HasScriptLoaded(a_0)) { - // SYSTEM::StartNewScript(a_0, v_3); - // SCRIPT::SetScriptAsNoLongerNeeded(a_0); - // return 1; - // } - // - // or: - // - // v_2 = "MrsPhilips2"; - // SCRIPT::RequestScript(v_2); - // while (!SCRIPT::HasScriptLoaded(v_2)) { - // SCRIPT::RequestScript(v_2); - // SYSTEM::Wait(0); - // } - // sub_8792(36); - // SYSTEM::StartNewScript(v_2, 17000); - // SCRIPT::SetScriptAsNoLongerNeeded(v_2); - inline int StartNewScript(String scriptName, int stackSize) { return _i(0xE81651AD79516E48, scriptName, stackSize); } // 0xe81651ad79516e480x3f166d0eB323 - // return : script thread id, 0 if failed - // Pass pointer to struct of args in p1, size of struct goes into p2 - inline int StartNewScriptWithArgs(String scriptName, Any* args, int argCount, int stackSize) { return _i(0xB8BA7F44DF1575E1, scriptName, args, argCount, stackSize); } // 0xb8ba7f44df1575e10x4a2100e4B323 - inline int StartNewScriptWithNameHash(Hash scriptHash, int stackSize) { return _i(0xEB1C67C3A5333A92, scriptHash, stackSize); } // 0xeb1c67c3a5333a920x8d15be5dB323 - inline int StartNewScriptWithNameHashAndArgs(Hash scriptHash, Any* args, int argCount, int stackSize) { return _i(0xC4BB298BD441BE78, scriptHash, args, argCount, stackSize); } // 0xc4bb298bd441be780xe38a3ad4B323 - // Counts up. Every 1000 is 1 real-time second. Use Settimera(int value) to set the timer (e.g.: Settimera(0)). - inline int Timera() { return _i(0x83666F9FB8FEBD4B); } // 0x83666f9fb8febd4b0x45c8c188B323 - inline int Timerb() { return _i(0xC9D9444186B5A374); } // 0xc9d9444186b5a3740x330a9c0cB323 - inline Void Settimera(int value) { return _i(0xC1B1E9A034A63A62, value); } // 0xc1b1e9a034a63a620x35785333B323 - inline Void Settimerb(int value) { return _i(0x5AE11BC36633DE4E, value); } // 0x5ae11bc36633de4e0x27c1b7c6B323 - // Gets the current frame time. - inline float Timestep() { return _i(0x0000000050597EE2); } // 0x0000000050597ee20x50597ee2B323 - inline float Sin(float value) { return _i(0x0BADBFA3B172435F, value); } // 0x0badbfa3b172435f0xbf987f58B323 - inline float Cos(float value) { return _i(0xD0FFB162F40A139C, value); } // 0xd0ffb162f40a139c0x00238fe9B323 - inline float Sqrt(float value) { return _i(0x71D93B57D07F9804, value); } // 0x71d93b57d07f98040x145c7701B323 - inline float Pow(float base, float exponent) { return _i(0xE3621CC40F31FE2E, base, exponent); } // 0xe3621cc40f31fe2e0x85d134f8B323 - inline float Log10(float value) { return _i(0xE816E655DE37FE20, value); } // 0xe816e655de37fe20B1493 - // Calculates the magnitude of a vector. - inline float Vmag(float x, float y, float z) { return _i(0x652D2EEEF1D3E62C, x, y, z); } // 0x652d2eeef1d3e62c0x1fcf1ecdB323 - // Calculates the magnitude of a vector but does not perform Sqrt operations. (Its way faster) - inline float Vmag2(float x, float y, float z) { return _i(0xA8CEACB4F35AE058, x, y, z); } // 0xa8ceacb4f35ae0580xe796e629B323 - // Calculates distance between vectors. - inline float Vdist(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x2A488C176D52CCA5, x1, y1, z1, x2, y2, z2); } // 0x2a488c176d52cca50x3c08ecb7B323 - // Calculates distance between vectors but does not perform Sqrt operations. (Its way faster) - inline float Vdist2(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0xB7A628320EFF8E47, x1, y1, z1, x2, y2, z2); } // 0xb7a628320eff8e470xc85def1fB323 - inline int ShiftLeft(int value, int bitShift) { return _i(0xEDD95A39E5544DE8, value, bitShift); } // 0xedd95a39e5544de80x314cc6cdB323 - inline int ShiftRight(int value, int bitShift) { return _i(0x97EF1E5BCE9DC075, value, bitShift); } // 0x97ef1e5bce9dc0750x352633caB323 - inline int Floor(float value) { return _i(0xF34EE736CF047844, value); } // 0xf34ee736cf0478440x32e9be04B323 - // I'm guessing this rounds a float value up to the next whole number, and Floor rounds it down - inline int Ceil(float value) { return _i(0x11E019C8F43ACC8A, value); } // 0x11e019c8f43acc8a0xd536a1dfB323 - inline int Round(float value) { return _i(0xF2DB717A73826179, value); } // 0xf2db717a738261790x323b0e24B323 - inline float ToFloat(int value) { return _i(0xBBDA792448DB5A89, value); } // 0xbbda792448db5a890x67116627B323 - // THREAD_PRIO_HIGHEST = 0 - // THREAD_PRIO_NORMAL = 1 - // THREAD_PRIO_LOWEST = 2 - // THREAD_PRIO_MANUAL_UPDATE = 100 - inline Void SetThisThreadPriority(int priority) { return _i(0x42B65DEEF2EDF2A1, priority); } // 0x42b65deef2edf2a1B877 + // Pauses execution of the current script, please note this behavior is only seen when called from one of the game script files(ysc). In order to wait an asi script use "static Void Wait(DWORD time);" found in main.h + inline Void Wait(int ms) { return _i(0x4EDE34FBADD967A6, ms); } // 0x4ede34fbadd967a60x7715c03bB323 + // Examples: + // g_384A = SYSTEM::StartNewScript("cellphone_flashhand", 1424); + // l_10D = SYSTEM::StartNewScript("taxiService", 1828); + // SYSTEM::StartNewScript("AM_MP_YACHT", 5000); + // SYSTEM::StartNewScript("emergencycall", 512); + // SYSTEM::StartNewScript("emergencycall", 512); + // SYSTEM::StartNewScript("FM_maintain_cloud_header_data", 1424); + // SYSTEM::StartNewScript("FM_Mission_Controller", 31000); + // SYSTEM::StartNewScript("tennis_family", 3650); + // SYSTEM::StartNewScript("Celebrations", 3650); + // + // Decompiled examples of usage when starting a script: + // + // SCRIPT::RequestScript(a_0); + // if (SCRIPT::HasScriptLoaded(a_0)) { + // SYSTEM::StartNewScript(a_0, v_3); + // SCRIPT::SetScriptAsNoLongerNeeded(a_0); + // return 1; + // } + // + // or: + // + // v_2 = "MrsPhilips2"; + // SCRIPT::RequestScript(v_2); + // while (!SCRIPT::HasScriptLoaded(v_2)) { + // SCRIPT::RequestScript(v_2); + // SYSTEM::Wait(0); + // } + // sub_8792(36); + // SYSTEM::StartNewScript(v_2, 17000); + // SCRIPT::SetScriptAsNoLongerNeeded(v_2); + inline int StartNewScript(String scriptName, int stackSize) { return _i(0xE81651AD79516E48, scriptName, stackSize); } // 0xe81651ad79516e480x3f166d0eB323 + // return : script thread id, 0 if failed + // Pass pointer to struct of args in p1, size of struct goes into p2 + inline int StartNewScriptWithArgs(String scriptName, Any* args, int argCount, int stackSize) { return _i(0xB8BA7F44DF1575E1, scriptName, args, argCount, stackSize); } // 0xb8ba7f44df1575e10x4a2100e4B323 + inline int StartNewScriptWithNameHash(Hash scriptHash, int stackSize) { return _i(0xEB1C67C3A5333A92, scriptHash, stackSize); } // 0xeb1c67c3a5333a920x8d15be5dB323 + inline int StartNewScriptWithNameHashAndArgs(Hash scriptHash, Any* args, int argCount, int stackSize) { return _i(0xC4BB298BD441BE78, scriptHash, args, argCount, stackSize); } // 0xc4bb298bd441be780xe38a3ad4B323 + // Counts up. Every 1000 is 1 real-time second. Use Settimera(int value) to set the timer (e.g.: Settimera(0)). + inline int Timera() { return _i(0x83666F9FB8FEBD4B); } // 0x83666f9fb8febd4b0x45c8c188B323 + inline int Timerb() { return _i(0xC9D9444186B5A374); } // 0xc9d9444186b5a3740x330a9c0cB323 + inline Void Settimera(int value) { return _i(0xC1B1E9A034A63A62, value); } // 0xc1b1e9a034a63a620x35785333B323 + inline Void Settimerb(int value) { return _i(0x5AE11BC36633DE4E, value); } // 0x5ae11bc36633de4e0x27c1b7c6B323 + // Gets the current frame time. + inline float Timestep() { return _i(0x0000000050597EE2); } // 0x0000000050597ee20x50597ee2B323 + inline float Sin(float value) { return _i(0x0BADBFA3B172435F, value); } // 0x0badbfa3b172435f0xbf987f58B323 + inline float Cos(float value) { return _i(0xD0FFB162F40A139C, value); } // 0xd0ffb162f40a139c0x00238fe9B323 + inline float Sqrt(float value) { return _i(0x71D93B57D07F9804, value); } // 0x71d93b57d07f98040x145c7701B323 + inline float Pow(float base, float exponent) { return _i(0xE3621CC40F31FE2E, base, exponent); } // 0xe3621cc40f31fe2e0x85d134f8B323 + inline float Log10(float value) { return _i(0xE816E655DE37FE20, value); } // 0xe816e655de37fe20B1493 + // Calculates the magnitude of a vector. + inline float Vmag(float x, float y, float z) { return _i(0x652D2EEEF1D3E62C, x, y, z); } // 0x652d2eeef1d3e62c0x1fcf1ecdB323 + // Calculates the magnitude of a vector but does not perform Sqrt operations. (Its way faster) + inline float Vmag2(float x, float y, float z) { return _i(0xA8CEACB4F35AE058, x, y, z); } // 0xa8ceacb4f35ae0580xe796e629B323 + // Calculates distance between vectors. + inline float Vdist(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x2A488C176D52CCA5, x1, y1, z1, x2, y2, z2); } // 0x2a488c176d52cca50x3c08ecb7B323 + // Calculates distance between vectors but does not perform Sqrt operations. (Its way faster) + inline float Vdist2(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0xB7A628320EFF8E47, x1, y1, z1, x2, y2, z2); } // 0xb7a628320eff8e470xc85def1fB323 + inline int ShiftLeft(int value, int bitShift) { return _i(0xEDD95A39E5544DE8, value, bitShift); } // 0xedd95a39e5544de80x314cc6cdB323 + inline int ShiftRight(int value, int bitShift) { return _i(0x97EF1E5BCE9DC075, value, bitShift); } // 0x97ef1e5bce9dc0750x352633caB323 + inline int Floor(float value) { return _i(0xF34EE736CF047844, value); } // 0xf34ee736cf0478440x32e9be04B323 + // I'm guessing this rounds a float value up to the next whole number, and Floor rounds it down + inline int Ceil(float value) { return _i(0x11E019C8F43ACC8A, value); } // 0x11e019c8f43acc8a0xd536a1dfB323 + inline int Round(float value) { return _i(0xF2DB717A73826179, value); } // 0xf2db717a738261790x323b0e24B323 + inline float ToFloat(int value) { return _i(0xBBDA792448DB5A89, value); } // 0xbbda792448db5a890x67116627B323 + // THREAD_PRIO_HIGHEST = 0 + // THREAD_PRIO_NORMAL = 1 + // THREAD_PRIO_LOWEST = 2 + // THREAD_PRIO_MANUAL_UPDATE = 100 + inline Void SetThisThreadPriority(int priority) { return _i(0x42B65DEEF2EDF2A1, priority); } // 0x42b65deef2edf2a1B877 } namespace APP { - inline BOOL AppDataValid() { return _i(0x846AA8E7D55EE5B6); } // 0x846aa8e7d55ee5b60x72bde002B323 - inline int AppGetInt(String property) { return _i(0xD3A58A12C77D9D4B, property); } // 0xd3a58a12c77d9d4b0x2942aad2B323 - inline float AppGetFloat(String property) { return _i(0x1514FB24C02C2322, property); } // 0x1514fb24c02c23220xd87f3a1cB323 - inline String APP_GET_STRING(String property) { return _i(0x749B023950D2311C, property); } // 0x749B023950D2311C 0x849CEB80 b323 - inline Void AppSetInt(String property, int value) { return _i(0x607E8E3D3E4F9611, property, value); } // 0x607e8e3d3e4f96110x1b509c32B323 - inline Void AppSetFloat(String property, float value) { return _i(0x25D7687C68E0DAA4, property, value); } // 0x25d7687c68e0daa40xf3076135B323 - inline Void AppSetString(String property, String value) { return _i(0x3FF2FCEC4B7721B4, property, value); } // 0x3ff2fcec4b7721b40x23df19a8B323 - // Called in the gamescripts like: - // APP::AppSetApp("car"); - // APP::AppSetApp("dog"); - inline Void AppSetApp(String appName) { return _i(0xCFD0406ADAF90D2B, appName); } // 0xcfd0406adaf90d2b0x8bac4146B323 - inline Void AppSetBlock(String blockName) { return _i(0x262AB456A3D21F93, blockName); } // 0x262ab456a3d21f930xc2d54dd9B323 - inline Void AppClearBlock() { return _i(0x5FE1DF3342DB7DBA); } // 0x5fe1df3342db7dba0xdab86a18B323 - inline Void AppCloseApp() { return _i(0xE41C65E07A5F05FC); } // 0xe41c65e07a5f05fc0x03767c7aB323 - inline Void AppCloseBlock() { return _i(0xE8E3FCF72EAC0EF8); } // 0xe8e3fcf72eac0ef80xed97b202B323 - inline BOOL AppHasLinkedSocialClubAccount() { return _i(0x71EEE69745088DA0); } // 0x71eee69745088da00xd368ba15B323 - inline BOOL AppHasSyncedData(String appName) { return _i(0xCA52279A7271517F, appName); } // 0xca52279a7271517f0x1de2a63dB323 - inline Void AppSaveData() { return _i(0x95C5D356CDA6E85F); } // 0x95c5d356cda6e85f0x84a3918dB323 - inline int AppGetDeletedFileStatus() { return _i(0xC9853A2BE3DED1A6); } // 0xc9853a2be3ded1a60x784d550bB323 - inline BOOL AppDeleteAppData(String appName) { return _i(0x44151AEA95C8A003, appName); } // 0x44151aea95c8a0030x2a2fbd1cB323 + inline BOOL AppDataValid() { return _i(0x846AA8E7D55EE5B6); } // 0x846aa8e7d55ee5b60x72bde002B323 + inline int AppGetInt(String property) { return _i(0xD3A58A12C77D9D4B, property); } // 0xd3a58a12c77d9d4b0x2942aad2B323 + inline float AppGetFloat(String property) { return _i(0x1514FB24C02C2322, property); } // 0x1514fb24c02c23220xd87f3a1cB323 + inline String AppGetString(String property) { return _i(0x749B023950D2311C, property); } // 0x749b023950d2311c0x849ceb80B323 + inline Void AppSetInt(String property, int value) { return _i(0x607E8E3D3E4F9611, property, value); } // 0x607e8e3d3e4f96110x1b509c32B323 + inline Void AppSetFloat(String property, float value) { return _i(0x25D7687C68E0DAA4, property, value); } // 0x25d7687c68e0daa40xf3076135B323 + inline Void AppSetString(String property, String value) { return _i(0x3FF2FCEC4B7721B4, property, value); } // 0x3ff2fcec4b7721b40x23df19a8B323 + // Called in the gamescripts like: + // APP::AppSetApp("car"); + // APP::AppSetApp("dog"); + inline Void AppSetApp(String appName) { return _i(0xCFD0406ADAF90D2B, appName); } // 0xcfd0406adaf90d2b0x8bac4146B323 + inline Void AppSetBlock(String blockName) { return _i(0x262AB456A3D21F93, blockName); } // 0x262ab456a3d21f930xc2d54dd9B323 + inline Void AppClearBlock() { return _i(0x5FE1DF3342DB7DBA); } // 0x5fe1df3342db7dba0xdab86a18B323 + inline Void AppCloseApp() { return _i(0xE41C65E07A5F05FC); } // 0xe41c65e07a5f05fc0x03767c7aB323 + inline Void AppCloseBlock() { return _i(0xE8E3FCF72EAC0EF8); } // 0xe8e3fcf72eac0ef80xed97b202B323 + inline BOOL AppHasLinkedSocialClubAccount() { return _i(0x71EEE69745088DA0); } // 0x71eee69745088da00xd368ba15B323 + inline BOOL AppHasSyncedData(String appName) { return _i(0xCA52279A7271517F, appName); } // 0xca52279a7271517f0x1de2a63dB323 + inline Void AppSaveData() { return _i(0x95C5D356CDA6E85F); } // 0x95c5d356cda6e85f0x84a3918dB323 + inline int AppGetDeletedFileStatus() { return _i(0xC9853A2BE3DED1A6); } // 0xc9853a2be3ded1a60x784d550bB323 + inline BOOL AppDeleteAppData(String appName) { return _i(0x44151AEA95C8A003, appName); } // 0x44151aea95c8a0030x2a2fbd1cB323 } namespace AUDIO { - // All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/RFb4GTny - // - // AUDIO::PlayPedRingtone("Remote_Ring", PLAYER::PlayerPedId(), 1); - // AUDIO::PlayPedRingtone("Dial_and_Remote_Ring", PLAYER::PlayerPedId(), 1); - // - inline Void PlayPedRingtone(String ringtoneName, Ped ped, BOOL p2) { return _i(0xF9E56683CA8E11A5, ringtoneName, ped, p2); } // 0xf9e56683ca8e11a50x1d530e47B323 - inline BOOL IsPedRingtonePlaying(Ped ped) { return _i(0x1E8E5E20937E3137, ped); } // 0x1e8e5e20937e31370xfe576ee4B323 - inline Void StopPedRingtone(Ped ped) { return _i(0x6C5AE23EFA885092, ped); } // 0x6c5ae23efa8850920xfeea107cB323 - inline BOOL IsMobilePhoneCallOngoing() { return _i(0x7497D2CE2C30D24C); } // 0x7497d2ce2c30d24c0x4ed1400aB323 - inline BOOL IsMobileInterferenceActive() { return _i(0xC8B1B2425604CDD0); } // 0xc8b1b2425604cdd00x16fb88b5B323 - inline Void CreateNewScriptedConversation() { return _i(0xD2C91A0B572AAE56); } // 0xd2c91a0b572aae560xb2bc25f8B323 - // NOTE: ones that are -1, 0 - 35 are determined by a function where it gets a TextLabel from a global then runs, - // GetCharacterFromAudioConversationFilename and depending on what the result is it goes in check order of 0 - 9 then A - Z then z (lowercase). So it will then return 0 - 35 or -1 if it's 'z'. The func to handle that ^^ is func_67 in dialog_handler.c atleast in TU27 Xbox360 scripts. - // - // p0 is -1, 0 - 35 - // p1 is a char or string (whatever you wanna call it) - // p2 is Global 10597 + i * 6. 'i' is a while(i < 70) loop - // p3 is again -1, 0 - 35 - // p4 is again -1, 0 - 35 - // p5 is either 0 or 1 (bool ?) - // p6 is either 0 or 1 (The func to determine this is bool) - // p7 is either 0 or 1 (The func to determine this is bool) - // p8 is either 0 or 1 (The func to determine this is bool) - // p9 is 0 - 3 (Determined by func_60 in dialogue_handler.c) - // p10 is either 0 or 1 (The func to determine this is bool) - // p11 is either 0 or 1 (The func to determine this is bool) - // p12 is unknown as in TU27 X360 scripts it only goes to p11. - inline Void AddLineToConversation(int index, String p1, String p2, int p3, int p4, BOOL p5, BOOL p6, BOOL p7, BOOL p8, int p9, BOOL p10, BOOL p11, BOOL p12) { return _i(0xC5EF963405593646, index, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } // 0xc5ef9634055936460x96cd0513B323 - // 4 calls in the b617d scripts. The only one with p0 and p2 in clear text: - // - // AUDIO::AddPedToConversation(5, l_AF, "DINAPOLI"); - // - // ================================================= - // One of the 2 calls in dialogue_handler.c p0 is in a while-loop, and so is determined to also possibly be 0 - 15. - inline Void AddPedToConversation(int index, Ped ped, String p2) { return _i(0x95D9F4BC443956E7, index, ped, p2); } // 0x95d9f4bc443956e70xf8d5eb86B323 - inline Void SetPositionForNullConvPed(Any p0, float p1, float p2, float p3) { return _i(0x33E3C6C6F2F0B506, p0, p1, p2, p3); } // 0x33e3c6c6f2f0b5060x73c6f979B323 - inline Void SetEntityForNullConvPed(int p0, Entity entity) { return _i(0x892B6AB8F33606F5, p0, entity); } // 0x892b6ab8f33606f50x88203ddaB323 - // This native controls where the game plays audio from. By default the microphone is positioned on the player. - // When p0 is true the game will play audio from the 3 positions inputted. - // It is recommended to set all 3 positions to the same value as mixing different positions doesn't seem to work well. - // The scripts mostly use it with only one position such as in fbi3.c: - // AUDIO::SetMicrophonePosition(true, ENTITY::GetEntityCoords(iLocal_3091, true), ENTITY::GetEntityCoords(iLocal_3091, true), ENTITY::GetEntityCoords(iLocal_3091, true)); - inline Void SetMicrophonePosition(BOOL toggle, float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3) { return _i(0xB6AE90EDDE95C762, toggle, x1, y1, z1, x2, y2, z2, x3, y3, z3); } // 0xb6ae90edde95c7620xad7bb191B323 - inline Void SetConversationAudioControlledByAnim(BOOL p0) { return _i(0x0B568201DD99F0EB, p0); } // 0x0b568201dd99f0eb0x1193ed6eB323 - inline Void SetConversationAudioPlaceholder(BOOL p0) { return _i(0x61631F5DF50D1C34, p0); } // 0x61631f5df50d1c34B323 - inline Void StartScriptPhoneConversation(BOOL p0, BOOL p1) { return _i(0x252E5F915EABB675, p0, p1); } // 0x252e5f915eabb6750x38e42d07B323 - inline Void PreloadScriptPhoneConversation(BOOL p0, BOOL p1) { return _i(0x6004BCB0E226AAEA, p0, p1); } // 0x6004bcb0e226aaea0x9acb213aB323 - inline Void StartScriptConversation(BOOL p0, BOOL p1, BOOL p2, BOOL p3) { return _i(0x6B17C62C9635D2DC, p0, p1, p2, p3); } // 0x6b17c62c9635d2dc0xe5de7d9dB323 - inline Void PreloadScriptConversation(BOOL p0, BOOL p1, BOOL p2, BOOL p3) { return _i(0x3B3CAD6166916D87, p0, p1, p2, p3); } // 0x3b3cad6166916d870xddf5c579B323 - inline Void StartPreloadedConversation() { return _i(0x23641AFE870AF385); } // 0x23641afe870af3850xa170261bB323 - inline BOOL GetIsPreloadedConversationReady() { return _i(0xE73364DB90778FFA); } // 0xe73364db90778ffa0x336f3d35B323 - inline BOOL IsScriptedConversationOngoing() { return _i(0x16754C556D2EDE3D); } // 0x16754c556d2ede3d0xcb8fd96fB323 - inline BOOL IsScriptedConversationLoaded() { return _i(0xDF0D54BE7A776737); } // 0xdf0d54be7a7767370xe1870ea9B323 - inline int GetCurrentScriptedConversationLine() { return _i(0x480357EE890C295A); } // 0x480357ee890c295a0x9620e41fB323 - inline Void PauseScriptedConversation(BOOL p0) { return _i(0x8530AD776CD72B12, p0); } // 0x8530ad776cd72b120xe2c9c6f8B323 - inline Void RestartScriptedConversation() { return _i(0x9AEB285D1818C9AC); } // 0x9aeb285d1818c9ac0x6cb24b56B323 - inline int StopScriptedConversation(BOOL p0) { return _i(0xD79DEEFB53455EBA, p0); } // 0xd79deefb53455eba0xab77da7dB323 - inline Void SkipToNextScriptedConversationLine() { return _i(0x9663FE6B7A61EB00); } // 0x9663fe6b7a61eb000x85c98304B323 - // Example from carsteal3.c: AUDIO::InterruptConversation(PLAYER::PlayerPedId(), "CST4_CFAA", "FRANKLIN"); - // Voicelines can be found in GTAV\x64\audio\sfx in files starting with "SS_" which seems to mean scripted speech. - inline Void InterruptConversation(Ped ped, String voiceline, String speaker) { return _i(0xA018A12E5C5C2FA6, ped, voiceline, speaker); } // 0xa018a12e5c5c2fa60xf3a67af3B323 - // One call found in the b617d scripts: - // - // AUDIO::InterruptConversationAndPause(NETWORK::NetToPed(l_3989._f26F[0/*1*/]), "CONV_INTERRUPT_QUIT_IT", "LESTER"); - inline Void InterruptConversationAndPause(Ped ped, String p1, String speaker) { return _i(0x8A694D7A68F8DC38, ped, p1, speaker); } // 0x8a694d7a68f8dc380xdd4a3f1fB323 - inline int GetVariationChosenForScriptedLine(Any* p0) { return _i(0xAA19F5572C38B564, p0); } // 0xaa19f5572c38b5640xb58b8ff3B323 - inline Void SetNoDuckingForConversation(BOOL p0) { return _i(0xB542DE8C3D1CB210, p0); } // 0xb542de8c3d1cb2100x789d8c6cB323 - // This native does absolutely nothing, just a nullsub - inline Void RegisterScriptWithAudio(int p0) { return _i(0xC6ED9D5092438D91, p0); } // 0xc6ed9d5092438d910xa6203643B323 - // This native does absolutely nothing, just a nullsub - inline Void UnregisterScriptWithAudio() { return _i(0xA8638BE228D4751A); } // 0xa8638be228d4751a0x66728efeB323 - // All occurrences and usages found in b617d: https://pastebin.com/NzZZ2Tmm - // Full list of mission audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/missionAudioBankNames.json - // p2 is always -1 - inline BOOL RequestMissionAudioBank(String audioBank, BOOL p1, Any p2) { return _i(0x7345BDD95E62E0F2, audioBank, p1, p2); } // 0x7345bdd95e62e0f20x916e37caB323 - // All occurrences and usages found in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/XZ1tmGEz - // Full list of ambient audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientAudioBankNames.json - // p2 is always -1 - inline BOOL RequestAmbientAudioBank(String audioBank, BOOL p1, Any p2) { return _i(0xFE02FFBED8CA9D99, audioBank, p1, p2); } // 0xfe02ffbed8ca9d990x23c88bc7B323 - // All occurrences and usages found in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/AkmDAVn6 - // Full list of script audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scriptAudioBankNames.json - // p2 is always -1 - inline BOOL RequestScriptAudioBank(String audioBank, BOOL p1, Any p2) { return _i(0x2F844A8B08D76685, audioBank, p1, p2); } // 0x2f844a8b08d766850x21322887B323 - // p2 is always -1 - inline BOOL HintMissionAudioBank(String audioBank, BOOL p1, Any p2) { return _i(0x40763EA7B9B783E7, audioBank, p1, p2); } // 0x40763ea7b9b783e7B573 - // p2 is always -1 - inline BOOL HintAmbientAudioBank(String audioBank, BOOL p1, Any p2) { return _i(0x8F8C0E370AE62F5C, audioBank, p1, p2); } // 0x8f8c0e370ae62f5c0xf1850ddcB323 - // p2 is always -1 - inline BOOL HintScriptAudioBank(String audioBank, BOOL p1, Any p2) { return _i(0xFB380A29641EC31A, audioBank, p1, p2); } // 0xfb380a29641ec31a0x41fa0e51B323 - inline Void ReleaseMissionAudioBank() { return _i(0x0EC92A1BF0857187); } // 0x0ec92a1bf08571870x8e8824c7B323 - inline Void ReleaseAmbientAudioBank() { return _i(0x65475A218FFAA93D); } // 0x65475a218ffaa93d0x8c938784B323 - // Full list of script audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scriptAudioBankNames.json - inline Void ReleaseNamedScriptAudioBank(String audioBank) { return _i(0x77ED170667F50170, audioBank); } // 0x77ed170667f501700x16707abcB323 - inline Void ReleaseScriptAudioBank() { return _i(0x7A2D8AD0A9EB9C3F); } // 0x7a2d8ad0a9eb9c3f0x22f865e5B323 - inline Void UnhintAmbientAudioBank() { return _i(0x19AF7ED9B9D23058); } // 0x19af7ed9b9d230580xa58bbf4fB323 - inline Void UnhintScriptAudioBank() { return _i(0x9AC92EED5E4793AB); } // 0x9ac92eed5e4793ab0xe67446e9B323 - inline Void UnhintNamedScriptAudioBank(String audioBank) { return _i(0x11579D940949C49E, audioBank); } // 0x11579d940949c49eB678 - inline int GetSoundId() { return _i(0x430386FE9BF80B45); } // 0x430386fe9bf80b450x6ae0ad56B323 - inline Void ReleaseSoundId(int soundId) { return _i(0x353FC880830B88FA, soundId); } // 0x353fc880830b88fa0x9c080899B323 - // All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/A8Ny8AHZ - // - // Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - inline Void PlaySound(int soundId, String audioName, String audioRef, BOOL p3, Any p4, BOOL p5) { return _i(0x7FF4944CC209192D, soundId, audioName, audioRef, p3, p4, p5); } // 0x7ff4944cc209192d0xb6e1917fB323 - // List: https://pastebin.com/DCeRiaLJ - // - // All occurrences as of Cayo Perico Heist DLC (b2189), sorted alphabetically and identical lines removed: https://git.io/JtLxM - // - // Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - inline Void PlaySoundFrontend(int soundId, String audioName, String audioRef, BOOL p3) { return _i(0x67C540AA08E4A6F5, soundId, audioName, audioRef, p3); } // 0x67c540aa08e4a6f50x2e458f74B323 - // Only call found in the b617d scripts: - // - // AUDIO::PlayDeferredSoundFrontend("BACK", "HUD_FREEMODE_SOUNDSET"); - // - // Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - inline Void PlayDeferredSoundFrontend(String soundName, String soundsetName) { return _i(0xCADA5A0D0702381E, soundName, soundsetName); } // 0xcada5a0d0702381e0xc70e6cfaB323 - // All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/f2A7vTj0 - // No changes made in b678d. - // - // gtaforums.com/topic/795622-audio-for-mods - // - // Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - inline Void PlaySoundFromEntity(int soundId, String audioName, Entity entity, String audioRef, BOOL isNetwork, Any p5) { return _i(0xE65F427EB70AB1ED, soundId, audioName, entity, audioRef, isNetwork, p5); } // 0xe65f427eb70ab1ed0x95ae00f8B323 - // Only used with "formation_flying_blips_soundset" and "biker_formation_blips_soundset". - // p1 is always the model of p2 - inline Void PlaySoundFromEntityHash(int soundId, Hash model, Entity entity, Hash soundSetHash, Any p4, Any p5) { return _i(0x5B9853296731E88D, soundId, model, entity, soundSetHash, p4, p5); } // 0x5b9853296731e88dB877 - // All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/eeFc5DiW - // - // gtaforums.com/topic/795622-audio-for-mods - // - // Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - inline Void PlaySoundFromCoord(int soundId, String audioName, float x, float y, float z, String audioRef, BOOL isNetwork, int range, BOOL p8) { return _i(0x8D8686B622B88120, soundId, audioName, x, y, z, audioRef, isNetwork, range, p8); } // 0x8d8686b622b881200xcad3e2d5B323 - inline Void UpdateSoundCoord(int soundId, float x, float y, float z) { return _i(0x7EC3C679D0E7E46B, soundId, x, y, z); } // 0x7ec3c679d0e7e46bB678 - inline Void StopSound(int soundId) { return _i(0xA3B0C41BA5CC0BB5, soundId); } // 0xa3b0c41ba5cc0bb50xcd7f4030B323 - // Could this be used alongside either, - // SetNetworkIdExistsOnAllMachines or _SET_NETWORK_ID_SYNC_TO_PLAYER to make it so other players can hear the sound while online? It'd be a bit troll-fun to be able to play the Zancudo UFO creepy sounds globally. - inline int GetNetworkIdFromSoundId(int soundId) { return _i(0x2DE3F0A134FFBC0D, soundId); } // 0x2de3f0a134ffbc0d0x2576f610B323 - inline int GetSoundIdFromNetworkId(int netId) { return _i(0x75262FD12D0A1C84, netId); } // 0x75262fd12d0a1c840xd064d4dcB323 - inline Void SetVariableOnSound(int soundId, String variable, float p2) { return _i(0xAD6B3148A78AE9B6, soundId, variable, p2); } // 0xad6b3148a78ae9b60x606ee5faB323 - // From the scripts, p0: - // - // "ArmWrestlingIntensity", - // "INOUT", - // "Monkey_Stream", - // "ZoomLevel" - inline Void SetVariableOnStream(String variable, float p1) { return _i(0x2F9D3834AEB9EF79, variable, p1); } // 0x2f9d3834aeb9ef790xf67bb44cB323 - inline Void OverrideUnderwaterStream(String p0, BOOL p1) { return _i(0xF2A9CDABCEA04BD6, p0, p1); } // 0xf2a9cdabcea04bd60x9a083b7eB323 - // AUDIO::SetVariableOnUnderWaterStream("inTunnel", 1.0); - // AUDIO::SetVariableOnUnderWaterStream("inTunnel", 0.0); - inline Void SetVariableOnUnderWaterStream(String variableName, float value) { return _i(0x733ADF241531E5C2, variableName, value); } // 0x733adf241531e5c20x62d026beB323 - inline BOOL HasSoundFinished(int soundId) { return _i(0xFCBDCE714A7C88E5, soundId); } // 0xfcbdce714a7c88e50xe85aec2eB323 - // Plays ambient speech. See also _0x444180DB. - // - // ped: The ped to play the ambient speech. - // speechName: Name of the speech to play, eg. "GENERIC_HI". - // speechParam: Can be one of the following: - // SPEECH_PARAMS_STANDARD - // SPEECH_PARAMS_ALLOW_REPEAT - // SPEECH_PARAMS_BEAT - // SPEECH_PARAMS_FORCE - // SPEECH_PARAMS_FORCE_FRONTEND - // SPEECH_PARAMS_FORCE_NO_REPEAT_FRONTEND - // SPEECH_PARAMS_FORCE_NORMAL - // SPEECH_PARAMS_FORCE_NORMAL_CLEAR - // SPEECH_PARAMS_FORCE_NORMAL_CRITICAL - // SPEECH_PARAMS_FORCE_SHOUTED - // SPEECH_PARAMS_FORCE_SHOUTED_CLEAR - // SPEECH_PARAMS_FORCE_SHOUTED_CRITICAL - // SPEECH_PARAMS_FORCE_PRELOAD_ONLY - // SPEECH_PARAMS_MEGAPHONE - // SPEECH_PARAMS_HELI - // SPEECH_PARAMS_FORCE_MEGAPHONE - // SPEECH_PARAMS_FORCE_HELI - // SPEECH_PARAMS_INTERRUPT - // SPEECH_PARAMS_INTERRUPT_SHOUTED - // SPEECH_PARAMS_INTERRUPT_SHOUTED_CLEAR - // SPEECH_PARAMS_INTERRUPT_SHOUTED_CRITICAL - // SPEECH_PARAMS_INTERRUPT_NO_FORCE - // SPEECH_PARAMS_INTERRUPT_FRONTEND - // SPEECH_PARAMS_INTERRUPT_NO_FORCE_FRONTEND - // SPEECH_PARAMS_ADD_BLIP - // SPEECH_PARAMS_ADD_BLIP_ALLOW_REPEAT - // SPEECH_PARAMS_ADD_BLIP_FORCE - // SPEECH_PARAMS_ADD_BLIP_SHOUTED - // SPEECH_PARAMS_ADD_BLIP_SHOUTED_FORCE - // SPEECH_PARAMS_ADD_BLIP_INTERRUPT - // SPEECH_PARAMS_ADD_BLIP_INTERRUPT_FORCE - // SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED - // SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED_CLEAR - // SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED_CRITICAL - // SPEECH_PARAMS_SHOUTED - // SPEECH_PARAMS_SHOUTED_CLEAR - // SPEECH_PARAMS_SHOUTED_CRITICAL - // - // Note: A list of Name and Parameters can be found here https://pastebin.com/1GZS5dCL - // - // Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json - inline Void PlayPedAmbientSpeechNative(Ped ped, String speechName, String speechParam, Any p3) { return _i(0x8E04FEDD28D42462, ped, speechName, speechParam, p3); } // 0x8e04fedd28d424620x5c57b85dB323 - // Plays ambient speech. See also _0x5C57B85D. - // - // See PlayPedAmbientSpeechNative for parameter specifications. - // - // Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json - inline Void PlayPedAmbientSpeechAndCloneNative(Ped ped, String speechName, String speechParam, Any p3) { return _i(0xC6941B4A3A8FBBB9, ped, speechName, speechParam, p3); } // 0xc6941b4a3a8fbbb90x444180dbB323 - // This is the same as PlayPedAmbientSpeechNative and PlayPedAmbientSpeechAndCloneNative but it will allow you to play a speech file from a specific voice file. It works on players and all peds, even animals. - // - // EX (C#): - // GTA.Native.Function.Call(Hash.PlayPedAmbientSpeechWithVoiceNative, Game.Player.Character, "GENERIC_INSULT_HIGH", "s_m_y_sheriff_01_white_full_01", "SPEECH_PARAMS_FORCE_SHOUTED", 0); - // - // The first param is the ped you want to play it on, the second is the speech name, the third is the voice name, the fourth is the speech param, and the last param is usually always 0. - // - // Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json - inline Void PlayPedAmbientSpeechWithVoiceNative(Ped ped, String speechName, String voiceName, String speechParam, BOOL p4) { return _i(0x3523634255FC3318, ped, speechName, voiceName, speechParam, p4); } // 0x3523634255fc33180x8386ae28B323 - // Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json - inline Void PlayAmbientSpeechFromPositionNative(String speechName, String voiceName, float x, float y, float z, String speechParam) { return _i(0xED640017ED337E45, speechName, voiceName, x, y, z, speechParam); } // 0xed640017ed337e450xa1a1402eB323 - // This native enables the audio flag "TrevorRageIsOverridden" and sets the voice effect to `voiceEffect` - inline Void OverrideTrevorRage(String voiceEffect) { return _i(0x13AD665062541A7E, voiceEffect); } // 0x13ad665062541a7e0x05b9b5cfB323 - inline Void ResetTrevorRage() { return _i(0xE78503B10C4314E0); } // 0xe78503b10c4314e00xe80cf0d4B323 - inline Void SetPlayerAngry(Ped ped, BOOL toggle) { return _i(0xEA241BB04110F091, ped, toggle); } // 0xea241bb04110f0910x782ca58dB323 - // Needs another parameter [int p2]. The signature is PED::PlayPain(Ped ped, int painID, int p1, int p2); - // - // Last 2 parameters always seem to be 0. - // - // EX: Function.Call(Hash.PlayPain, TestPed, 6, 0, 0); - // - // Known Pain IDs - // ________________________ - // - // 1 - Doesn't seem to do anything. Does NOT crash the game like previously said. (Latest patch) - // 6 - Scream (Short) - // 7 - Scared Scream (Kinda Long) - // 8 - On Fire - // - inline Void PlayPain(Ped ped, int painID, int p1, Any p3) { return _i(0xBC9AE166038A5CEC, ped, painID, p1, p3); } // 0xbc9ae166038a5cec0x874bd6cbB323 - inline Void ReleaseWeaponAudio() { return _i(0xCE4AC0439F607045); } // 0xce4ac0439f6070450x6096504cB323 - // mode can be any of these: - // SLOWMO_T1_TRAILER_SMASH - // SLOWMO_T1_RAYFIRE_EXPLOSION - // SLOWMO_PROLOGUE_VAULT - // NIGEL_02_SLOWMO_SETTING - // JSH_EXIT_TUNNEL_SLOWMO - // SLOWMO_BIG_SCORE_JUMP - // SLOWMO_FIB4_TRUCK_SMASH - // SLOWMO_EXTREME_04 - // SLOW_MO_METH_HOUSE_RAYFIRE - // BARRY_02_SLOWMO - // BARRY_01_SLOWMO - inline Void ActivateAudioSlowmoMode(String mode) { return _i(0xD01005D2BA2EB778, mode); } // 0xd01005d2ba2eb7780x59a3a17dB323 - // see ActivateAudioSlowmoMode for modes - inline Void DeactivateAudioSlowmoMode(String mode) { return _i(0xDDC635D5B3262C56, mode); } // 0xddc635d5b3262c560x0e387bfeB323 - // Audio List - // gtaforums.com/topic/795622-audio-for-mods/ - // - // All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/FTeAj4yZ - inline Void SetAmbientVoiceName(Ped ped, String name) { return _i(0x6C8065A3B780185B, ped, name); } // 0x6c8065a3b780185b0xbd2ea1a1B323 - inline Void SetAmbientVoiceNameHash(Ped ped, Hash hash) { return _i(0x9A53DED9921DE990, ped, hash); } // 0x9a53ded9921de990B463 - inline Hash GetAmbientVoiceNameHash(Ped ped) { return _i(0x5E203DA2BA15D436, ped); } // 0x5e203da2ba15d436B463 - // Assigns some ambient voice to the ped. - inline Void SetPedVoiceFull(Ped ped) { return _i(0x40CF0D12D142A9E8, ped); } // 0x40cf0d12d142a9e8B323 - inline Void SetPedRaceAndVoiceGroup(Ped ped, int p1, Hash voiceGroup) { return _i(0x1B7ABE26CBCBF8C7, ped, p1, voiceGroup); } // 0x1b7abe26cbcbf8c7B372 - // From the scripts: - // - // AUDIO::SetPedVoiceGroup(PLAYER::PlayerPedId(), MISC::GetHashKey("PAIGE_PVG")); - // AUDIO::SetPedVoiceGroup(PLAYER::PlayerPedId(), MISC::GetHashKey("TALINA_PVG")); - // AUDIO::SetPedVoiceGroup(PLAYER::PlayerPedId(), MISC::GetHashKey("FEMALE_LOST_BLACK_PVG")); - // AUDIO::SetPedVoiceGroup(PLAYER::PlayerPedId(), MISC::GetHashKey("FEMALE_LOST_WHITE_PVG")); - inline Void SetPedVoiceGroup(Ped ped, Hash voiceGroupHash) { return _i(0x7CDC8C3B89F661B3, ped, voiceGroupHash); } // 0x7cdc8c3b89f661b3B323 - // Dat151RelType == 29 - inline Void SetPedVoiceGroupFromRaceToPvg(Ped ped, Hash voiceGroupHash) { return _i(0x0BABC1345ABBFB16, ped, voiceGroupHash); } // 0x0babc1345abbfb16B2699 - // BOOL p1: 0 = Female; 1 = Male - inline Void SetPedGender(Ped ped, BOOL p1) { return _i(0xA5342D390CDA41D6, ped, p1); } // 0xa5342d390cda41d6B323 - inline Void StopCurrentPlayingSpeech(Ped ped) { return _i(0x7A73D05A607734C7, ped); } // 0x7a73d05a607734c70x5b7463f4B323 - inline Void StopCurrentPlayingAmbientSpeech(Ped ped) { return _i(0xB8BEC0CA6F0EDB0F, ped); } // 0xb8bec0ca6f0edb0f0xbb8e64bfB323 - inline BOOL IsAmbientSpeechPlaying(Ped ped) { return _i(0x9072C8B49907BFAD, ped); } // 0x9072c8b49907bfad0x1972e8aaB323 - inline BOOL IsScriptedSpeechPlaying(Ped p0) { return _i(0xCC9AA18DCC7084F4, p0); } // 0xcc9aa18dcc7084f40x2c653904B323 - inline BOOL IsAnySpeechPlaying(Ped ped) { return _i(0x729072355FA39EC9, ped); } // 0x729072355fa39ec90x2b74a6d6B323 - inline BOOL IsAnyPositionalSpeechPlaying() { return _i(0x30CA2EF91D15ADF8); } // 0x30ca2ef91d15adf8B2189 - // Checks if the ped can play the speech or has the speech file, p2 is usually false. - inline BOOL DoesContextExistForThisPed(Ped ped, String speechName, BOOL p2) { return _i(0x49B99BF3FDA89A7A, ped, speechName, p2); } // 0x49b99bf3fda89a7a0x8bd5f11eB323 - inline BOOL IsPedInCurrentConversation(Ped ped) { return _i(0x049E937F18F4020C, ped); } // 0x049e937f18f4020c0x7b2f0743B323 - // Sets the ped drunk sounds. Only works with PlayerPedId - // - // ==================================================== - // - // As mentioned above, this only sets the drunk sound to ped/player. - // - // To give the Ped a drunk effect with drunk walking animation try using SetPedMovementClipset - // - // Below is an example - // - // if (!Function.Call(Hash.HasAnimSetLoaded, "move_m@drunk@verydrunk")) - // { - // Function.Call(Hash.RequestAnimSet, "move_m@drunk@verydrunk"); - // } - // Function.Call(Hash.SetPedMovementClipset, Ped.Handle, "move_m@drunk@verydrunk", 0x3E800000); - // - // - // - // And to stop the effect use - // ResetPedMovementClipset - inline Void SetPedIsDrunk(Ped ped, BOOL toggle) { return _i(0x95D2D383D5396B8A, ped, toggle); } // 0x95d2d383d5396b8a0xd2ea77a3B323 - // Plays sounds from a ped with chop model. For example it used to play bark or sniff sounds. p1 is always 3 or 4294967295 in decompiled scripts. By a quick disassembling I can assume that this arg is unused. - // This native is works only when you call it on the ped with right model (ac_chop only ?) - // Speech Name can be: CHOP_SNIFF_SEQ CHOP_WHINE CHOP_LICKS_MOUTH CHOP_PANT bark GROWL SNARL BARK_SEQ - inline Void PlayAnimalVocalization(Ped pedHandle, int p1, String speechName) { return _i(0xEE066C7006C49C0A, pedHandle, p1, speechName); } // 0xee066c7006c49c0a0x498849f3B323 - inline BOOL IsAnimalVocalizationPlaying(Ped pedHandle) { return _i(0xC265DF9FB44A9FBD, pedHandle); } // 0xc265df9fb44a9fbd0x0cbaf2efB323 - // mood can be 0 or 1 (it's not a boolean value!). Effects audio of the animal. - inline Void SetAnimalMood(Ped animal, int mood) { return _i(0xCC97B29285B1DC3B, animal, mood); } // 0xcc97b29285b1dc3b0x3ea7c6cbB323 - inline BOOL IsMobilePhoneRadioActive() { return _i(0xB35CE999E8EF317E); } // 0xb35ce999e8ef317e0x6e502a5bB323 - inline Void SetMobilePhoneRadioState(BOOL state) { return _i(0xBF286C554784F3DF, state); } // 0xbf286c554784f3df0xe1e0ed34B323 - // Returns 255 (radio off index) if the function fails. - inline int GetPlayerRadioStationIndex() { return _i(0xE8AF77C4C06ADC93); } // 0xe8af77c4c06adc930x1c4946acB323 - // Returns active radio station name - inline String GET_PLAYER_RADIO_STATION_NAME() { return _i(0xF6D733C32076AD03); } // 0xF6D733C32076AD03 0xD909C107 b323 - // Converts radio station index to string. Use HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION to get the user-readable text. - inline String GET_RADIO_STATION_NAME(int radioStation) { return _i(0xB28ECA15046CA8B9, radioStation); } // 0xB28ECA15046CA8B9 0x3DF493BC b323 - inline int GetPlayerRadioStationGenre() { return _i(0xA571991A7FE6CCEB); } // 0xa571991a7fe6cceb0x872cf0eaB323 - inline BOOL IsRadioRetuning() { return _i(0xA151A7394A214E65); } // 0xa151a7394a214e650xcf29097bB323 - inline BOOL IsRadioFadedOut() { return _i(0x0626A247D2405330); } // 0x0626a247d24053300x815cae99B323 - // Tune Forward... - inline Void SetRadioRetuneUp() { return _i(0xFF266D1D0EB1195D); } // 0xff266d1d0eb1195d0x53db6994B323 - // Tune Backwards... - inline Void SetRadioRetuneDown() { return _i(0xDD6BCF9E94425DF9); } // 0xdd6bcf9e94425df90xd70ecc80B323 - // List of radio stations that are in the wheel, in clockwise order, as of LS Tuners DLC: https://git.io/J8a3k - // An older list including hidden radio stations: https://pastebin.com/Kj9t38KF - inline Void SetRadioToStationName(String stationName) { return _i(0xC69EDA28699D5107, stationName); } // 0xc69eda28699d51070x7b36e35eB323 - // List of radio stations that are in the wheel, in clockwise order, as of LS Tuners DLC: https://git.io/J8a3k - // An older list including hidden radio stations: https://pastebin.com/Kj9t38KF - inline Void SetVehRadioStation(Vehicle vehicle, String radioStation) { return _i(0x1B9C0099CB942AC6, vehicle, radioStation); } // 0x1b9c0099cb942ac60xe391f55fB323 - inline Void SetVehHasNormalRadio(Vehicle vehicle) { return _i(0x3E45765F3FBB582F, vehicle); } // 0x3e45765f3fbb582fB2372 - inline BOOL IsVehicleRadioOn(Vehicle vehicle) { return _i(0x0BE4BE946463F917, vehicle); } // 0x0be4be946463f917B505 - inline Void SetVehForcedRadioThisFrame(Vehicle vehicle) { return _i(0xC1805D05E6D4FE10, vehicle); } // 0xc1805d05e6d4fe100x7abb89d2B323 - // Full list of inline emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/inlineEmitters.json - inline Void SetEmitterRadioStation(String emitterName, String radioStation, Any p2) { return _i(0xACF57305B12AF907, emitterName, radioStation, p2); } // 0xacf57305b12af9070x87431585B323 - // Example: - // AUDIO::SetinlineEmitterEnabled((Any*)"LOS_SANTOS_VANILLA_UNICORN_01_STAGE", false); AUDIO::SetinlineEmitterEnabled((Any*)"LOS_SANTOS_VANILLA_UNICORN_02_MAIN_ROOM", false); AUDIO::SetinlineEmitterEnabled((Any*)"LOS_SANTOS_VANILLA_UNICORN_03_BACK_ROOM", false); - // - // This turns off surrounding sounds not connected directly to peds. - // - // Full list of inline emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/inlineEmitters.json - inline Void SetinlineEmitterEnabled(String emitterName, BOOL toggle) { return _i(0x399D2D3B33F1B8EB, emitterName, toggle); } // 0x399d2d3b33f1b8eb0x91f72e92B323 - // Full list of inline emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/inlineEmitters.json - inline Void LinkinlineEmitterToEntity(String emitterName, Entity entity) { return _i(0x651D3228960D08AF, emitterName, entity); } // 0x651d3228960d08afB505 - // Sets radio station by index. - inline Void SetRadioToStationIndex(int radioStation) { return _i(0xA619B168B8A8570F, radioStation); } // 0xa619b168b8a8570f0x1d82766dB323 - inline Void SetFrontendRadioActive(BOOL active) { return _i(0xF7F26C6E9CC9EBB8, active); } // 0xf7f26c6e9cc9ebb80xb1172075B323 - // "news" that play on the radio after you've done something in story mode(?) - inline Void UnlockMissionNewsStory(int newsStory) { return _i(0xB165AB7C248B2DC1, newsStory); } // 0xb165ab7c248b2dc10xccd9abe4B323 - inline BOOL IsMissionNewsStoryUnlocked(int newsStory) { return _i(0x66E49BF55B4B1874, newsStory); } // 0x66e49bf55b4b18740x27305d37B323 - inline int GetAudibleMusicTrackTextId() { return _i(0x50B196FC9ED6545B); } // 0x50b196fc9ed6545b0xa2b88ca7B323 - inline Void PlayEndCreditsMusic(BOOL play) { return _i(0xCD536C4D33DCC900, play); } // 0xcd536c4d33dcc9000x8e88b3ccB323 - inline Void SkipRadioForward() { return _i(0x6DDBBDD98E2E9C25); } // 0x6ddbbdd98e2e9c250x10d36630B323 - inline Void FreezeRadioStation(String radioStation) { return _i(0x344F393B027E38C3, radioStation); } // 0x344f393b027e38c30x286bf543B323 - inline Void UnfreezeRadioStation(String radioStation) { return _i(0xFC00454CF60B91DD, radioStation); } // 0xfc00454cf60b91dd0x4d46202cB323 - inline Void SetRadioAutoUnfreeze(BOOL toggle) { return _i(0xC1AA9F53CE982990, toggle); } // 0xc1aa9f53ce9829900xa40196bfB323 - inline Void SetInitialPlayerStation(String radioStation) { return _i(0x88795F13FACDA88D, radioStation); } // 0x88795f13facda88d0x9b069233B323 - inline Void SetUserRadioControlEnabled(BOOL toggle) { return _i(0x19F21E63AE6EAE4E, toggle); } // 0x19f21e63ae6eae4e0x52e054ceB323 - // Only found this one in the decompiled scripts: - // - // AUDIO::SetRadioTrack("RADIO_03_HIPHOP_NEW", "ARM1_RADIO_STARTS"); - // - inline Void SetRadioTrack(String radioStation, String radioTrack) { return _i(0xB39786F201FEE30B, radioStation, radioTrack); } // 0xb39786f201fee30b0x76e96212B323 - inline Void SetRadioTrackWithStartOffset(String radioStationName, String mixName, int p2) { return _i(0x2CB0075110BE1E56, radioStationName, mixName, p2); } // 0x2cb0075110be1e56B1493 - inline Void SetNextRadioTrack(String radioName, String radioTrack, String p2, String p3) { return _i(0x55ECF4D13D9903B0, radioName, radioTrack, p2, p3); } // 0x55ecf4d13d9903b0B1868 - inline Void SetVehicleRadioLoud(Vehicle vehicle, BOOL toggle) { return _i(0xBB6F1CAEC68B0BCE, vehicle, toggle); } // 0xbb6f1caec68b0bce0x8d9edd99B323 - inline BOOL CanVehicleReceiveCbRadio(Vehicle vehicle) { return _i(0x032A116663A4D5AC, vehicle); } // 0x032a116663a4d5ac0xcba99f4aB323 - inline Void SetMobileRadioEnabledDuringGameplay(BOOL toggle) { return _i(0x1098355A16064BB3, toggle); } // 0x1098355a16064bb30x990085f0B323 - inline BOOL DoesPlayerVehHaveRadio() { return _i(0x109697E2FFBAC8A1); } // 0x109697e2ffbac8a10x46b0c696B323 - inline BOOL IsPlayerVehRadioEnable() { return _i(0x5F43D83FD6738741); } // 0x5f43d83fd67387410x2a3e5e8bB323 - // can't seem to enable radio on cop cars etc - inline Void SetVehicleRadioEnabled(Vehicle vehicle, BOOL toggle) { return _i(0x3B988190C0AA6C0B, vehicle, toggle); } // 0x3b988190c0aa6c0b0x6f812cabB323 - inline Void SetPositionedPlayerVehicleRadioEmitterEnabled(Any p0) { return _i(0xDA07819E452FFE8F, p0); } // 0xda07819e452ffe8fB505 - // Examples: - // - // AUDIO::SetCustomRadioTrackList("RADIO_01_CLASS_ROCK", "END_CREDITS_KILL_MICHAEL", 1); - // AUDIO::SetCustomRadioTrackList("RADIO_01_CLASS_ROCK", "END_CREDITS_KILL_MICHAEL", 1); - // AUDIO::SetCustomRadioTrackList("RADIO_01_CLASS_ROCK", "END_CREDITS_KILL_TREVOR", 1); - // AUDIO::SetCustomRadioTrackList("RADIO_01_CLASS_ROCK", "END_CREDITS_SAVE_MICHAEL_TREVOR", 1); - // AUDIO::SetCustomRadioTrackList("RADIO_01_CLASS_ROCK", "OFF_ROAD_RADIO_ROCK_LIST", 1); - // AUDIO::SetCustomRadioTrackList("RADIO_06_COUNTRY", "MAGDEMO2_RADIO_DINGHY", 1); - // AUDIO::SetCustomRadioTrackList("RADIO_16_SILVERLAKE", "SEA_RACE_RADIO_PLAYLIST", 1); - // AUDIO::SetCustomRadioTrackList("RADIO_01_CLASS_ROCK", "OFF_ROAD_RADIO_ROCK_LIST", 1); - inline Void SetCustomRadioTrackList(String radioStation, String trackListName, BOOL p2) { return _i(0x4E404A9361F75BB2, radioStation, trackListName, p2); } // 0x4e404a9361f75bb20x128c3873B323 - // 3 calls in the b617d scripts, removed duplicate. - // - // AUDIO::ClearCustomRadioTrackList("RADIO_16_SILVERLAKE"); - // AUDIO::ClearCustomRadioTrackList("RADIO_01_CLASS_ROCK"); - inline Void ClearCustomRadioTrackList(String radioStation) { return _i(0x1654F24A88A8E3FE, radioStation); } // 0x1654f24a88a8e3fe0x1d766976B323 - inline int GetNumUnlockedRadioStations() { return _i(0xF1620ECB50E01DE7); } // 0xf1620ecb50e01de70xcc91fcf5B323 - inline int FindRadioStationIndex(Hash stationNameHash) { return _i(0x8D67489793FF428B, stationNameHash); } // 0x8d67489793ff428b0xeca1512fB323 - // 6 calls in the b617d scripts, removed identical lines: - // - // AUDIO::SetRadioStationMusicOnly("RADIO_01_CLASS_ROCK", 1); - // AUDIO::SetRadioStationMusicOnly(AUDIO::GET_RADIO_STATION_NAME(10), 0); - // AUDIO::SetRadioStationMusicOnly(AUDIO::GET_RADIO_STATION_NAME(10), 1); - inline Void SetRadioStationMusicOnly(String radioStation, BOOL toggle) { return _i(0x774BD811F656A122, radioStation, toggle); } // 0x774bd811f656a1220xb1ff7137B323 - inline Void SetRadioFrontendFadeTime(float fadeTime) { return _i(0x2C96CDB04FCA358E, fadeTime); } // 0x2c96cdb04fca358e0xc8b514e2B323 - // AUDIO::UnlockRadioStationTrackList("RADIO_16_SILVERLAKE", "MIRRORPARK_LOCKED"); - inline Void UnlockRadioStationTrackList(String radioStation, String trackListName) { return _i(0x031ACB6ABA18C729, radioStation, trackListName); } // 0x031acb6aba18c7290xbe998184B323 - inline Void LockRadioStationTrackList(String radioStation, String trackListName) { return _i(0xFF5E5EA2DCEEACF3, radioStation, trackListName); } // 0xff5e5ea2dceeacf3B2372 - // Just a nullsub (i.e. does absolutely nothing) since build 1604. - inline Void UpdateUnlockableDjRadioTracks(BOOL enableMixes) { return _i(0x47AED84213A47510, enableMixes); } // 0x47aed84213a47510B1493 - // Disables the radio station (hides it from the radio wheel). - inline Void LockRadioStation(String radioStationName, BOOL toggle) { return _i(0x477D9DB48F889591, radioStationName, toggle); } // 0x477d9db48f889591B1493 - // Doesn't have an effect in Story Mode. - inline Void SetRadioStationAsFavourite(String radioStation, BOOL toggle) { return _i(0x4CAFEBFA21EC188D, radioStation, toggle); } // 0x4cafebfa21ec188dB2372 - inline BOOL IsRadioStationFavourited(String radioStation) { return _i(0x2B1784DB08AFEA79, radioStation); } // 0x2b1784db08afea79B2699 - inline BOOL GetNextAudibleBeat(float* out1, float* out2, int* out3) { return _i(0xC64A06D939F826F5, out1, out2, out3); } // 0xc64a06d939f826f5B1493 - // Changes start time of a tracklist (milliseconds) - // R* uses a random int: MISC::GetRandomIntInRange(0, 13) * 60000) - inline Void ForceMusicTrackList(String radioStation, String trackListName, int milliseconds) { return _i(0x4E0AF9114608257C, radioStation, trackListName, milliseconds); } // 0x4e0af9114608257cB2372 - inline int GetCurrentTrackPlayTime(String radioStationName) { return _i(0x3E65CDE5215832C1, radioStationName); } // 0x3e65cde5215832c1B1493 - inline Hash GetCurrentTrackSoundName(String radioStationName) { return _i(0x34D66BC058019CE0, radioStationName); } // 0x34d66bc058019ce0B1493 - inline Void SetVehicleMissileWarningEnabled(Vehicle vehicle, BOOL toggle) { return _i(0xF3365489E0DD50F9, vehicle, toggle); } // 0xf3365489e0dd50f90x8afc488dB323 - // Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json - inline Void SetAmbientZoneState(String zoneName, BOOL p1, BOOL p2) { return _i(0xBDA07E5950085E46, zoneName, p1, p2); } // 0xbda07e5950085e460x2849cac9B323 - // This function also has a p2, unknown. Signature AUDIO::ClearAmbientZoneState(String zoneName, bool p1, Any p2); - // - // Still needs more research. - // - // Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json - inline Void ClearAmbientZoneState(String zoneName, BOOL p1) { return _i(0x218DD44AAAC964FF, zoneName, p1); } // 0x218dd44aaac964ff0xcdff3c82B323 - inline Void SetAmbientZoneListState(String ambientZone, BOOL p1, BOOL p2) { return _i(0x9748FA4DE50CCE3E, ambientZone, p1, p2); } // 0x9748fa4de50cce3e0xbf80b412B323 - inline Void ClearAmbientZoneListState(String ambientZone, BOOL p1) { return _i(0x120C48C614909FA4, ambientZone, p1); } // 0x120c48c614909fa40x38b9b8d4B323 - // Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json - inline Void SetAmbientZoneStatePersistent(String ambientZone, BOOL p1, BOOL p2) { return _i(0x1D6650420CEC9D3B, ambientZone, p1, p2); } // 0x1d6650420cec9d3b0xc1ffb672B323 - // Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json - inline Void SetAmbientZoneListStatePersistent(String ambientZone, BOOL p1, BOOL p2) { return _i(0xF3638DAE8C4045E1, ambientZone, p1, p2); } // 0xf3638dae8c4045e10x5f5a2605B323 - // Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json - inline BOOL IsAmbientZoneEnabled(String ambientZone) { return _i(0x01E2817A479A7F9B, ambientZone); } // 0x01e2817a479a7f9b0xbfabd872B323 - inline Void RefreshClosestOceanShoreline() { return _i(0x5D2BFAAB8D956E0E); } // 0x5d2bfaab8d956e0eB573 - // All occurrences found in b617d, sorted alphabetically and identical lines removed: - // - // AUDIO::SetCutsceneAudioOverride("_AK"); - // AUDIO::SetCutsceneAudioOverride("_CUSTOM"); - // AUDIO::SetCutsceneAudioOverride("_TOOTHLESS"); - // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - inline Void SetCutsceneAudioOverride(String name) { return _i(0x3B4BF5F0859204D9, name); } // 0x3b4bf5f0859204d90xce1332b7B323 - inline Void SetVariableOnSynchSceneAudio(String variableName, float value) { return _i(0xBCC29F935ED07688, variableName, value); } // 0xbcc29f935ed076880xd63cf33aB323 - // Plays the given police radio message. - // - // All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/GBnsQ5hr - // Full list of police report names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/policeReportNames.json - inline int PlayPoliceReport(String name, float p1) { return _i(0xDFEBD56D9BD1EB16, name, p1); } // 0xdfebd56d9bd1eb160x3f277b62B323 - inline Void CancelAllPoliceReports() { return _i(0xB4F90FAF7670B16F); } // 0xb4f90faf7670b16fB323 - // Plays the siren sound of a vehicle which is otherwise activated when fastly double-pressing the horn key. - // Only works on vehicles with a police siren. - inline Void BlipSiren(Vehicle vehicle) { return _i(0x1B9025BDA76822B6, vehicle); } // 0x1b9025bda76822b60xc0eb6924B323 - // Overrides the vehicle's horn hash. - // When changing this hash on a vehicle, it will not return the 'overwritten' hash. It will still always return the default horn hash (same as GetVehicleDefaultHorn) - // - // vehicle - the vehicle whose horn should be overwritten - // mute - p1 seems to be an option for muting the horn - // p2 - maybe a horn id, since the function AUDIO::GetVehicleDefaultHorn(veh) exists? - inline Void OverrideVehHorn(Vehicle vehicle, BOOL override, int hornHash) { return _i(0x3CDC1E622CCE0356, vehicle, override, hornHash); } // 0x3cdc1e622cce03560x2acab783B323 - // Checks whether the horn of a vehicle is currently played. - inline BOOL IsHornActive(Vehicle vehicle) { return _i(0x9D6BFC12B05C6121, vehicle); } // 0x9d6bfc12b05c61210x20e2bdd0B323 - // Makes pedestrians sound their horn longer, faster and more agressive when they use their horn. - inline Void SetAggressiveHorns(BOOL toggle) { return _i(0x395BF71085D1B1D9, toggle); } // 0x395bf71085d1b1d90x01d6eabeB323 - // Does nothing (it's a nullsub). - inline Void SetRadioPositionAudioMute(BOOL p0) { return _i(0x02E93C796ABD3A97, p0); } // 0x02e93c796abd3a970x3c395aeeB323 - // SetVehicleConversationsPersist? - inline Void SetVehicleConversationsPersist(BOOL p0, BOOL p1) { return _i(0x58BB377BEC7CD5F4, p0, p1); } // 0x58bb377bec7cd5f40x8ce63fa1B323 - inline Void SetVehicleConversationsPersistNew(BOOL p0, BOOL p1, BOOL p2) { return _i(0x9BD7BD55E4533183, p0, p1, p2); } // 0x9bd7bd55e4533183B1290 - inline BOOL IsStreamPlaying() { return _i(0xD11FA52EB849D978); } // 0xd11fa52eb849d9780xf1f51a14B323 - inline int GetStreamPlayTime() { return _i(0x4E72BBDBCA58A3DB); } // 0x4e72bbdbca58a3db0xb4f0ad56B323 - // Example: - // AUDIO::LoadStream("CAR_STEAL_1_PASSBY", "CAR_STEAL_1_SOUNDSET"); - // - // All found occurrences in the b678d decompiled scripts: https://pastebin.com/3rma6w5w - // - // Stream names often ends with "_MASTER", "_SMALL" or "_STREAM". Also "_IN", "_OUT" and numbers. - // - // soundSet is often set to 0 in the scripts. These are common to end the soundSets: "_SOUNDS", "_SOUNDSET" and numbers. - // - // Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - inline BOOL LoadStream(String streamName, String soundSet) { return _i(0x1F1F957154EC51DF, streamName, soundSet); } // 0x1f1f957154ec51df0x0d89599dB323 - // Example: - // AUDIO::LoadStreamWithStartOffset("STASH_TOXIN_STREAM", 2400, "FBI_05_SOUNDS"); - // - // Only called a few times in the scripts. - // - // Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - inline BOOL LoadStreamWithStartOffset(String streamName, int startOffset, String soundSet) { return _i(0x59C16B79F53B3712, streamName, startOffset, soundSet); } // 0x59c16b79f53b37120xe5b5745cB323 - inline Void PlayStreamFromPed(Ped ped) { return _i(0x89049DD63C08B5D1, ped); } // 0x89049dd63c08b5d10xa1d7fabeB323 - inline Void PlayStreamFromVehicle(Vehicle vehicle) { return _i(0xB70374A758007DFA, vehicle); } // 0xb70374a758007dfa0xf8e4bda2B323 - // Used with AUDIO::LoadStream - // - // Example from finale_heist2b.c4: - // TASK::TaskSynchronizedScene(l_4C8[2/*14*/], l_4C8[2/*14*/]._f7, l_30A, "push_out_vault_l", 4.0, -1.5, 5, 713, 4.0, 0); - // PED::SetSynchronizedScenePhase(l_4C8[2/*14*/]._f7, 0.0); - // PED::ForcePedAiAndAnimationUpdate(l_4C8[2/*14*/], 0, 0); - // PED::SetPedCombatAttributes(l_4C8[2/*14*/], 38, 1); - // PED::SetBlockingOfNonTemporaryEvents(l_4C8[2/*14*/], 1); - // if (AUDIO::LoadStream("Gold_Cart_Push_Anim_01", "BIG_SCORE_3B_SOUNDS")) { - // AUDIO::PlayStreamFromObject(l_36F[0/*1*/]); - // } - inline Void PlayStreamFromObject(Object object) { return _i(0xEBAA9B64D76356FD, object); } // 0xebaa9b64d76356fd0xc5266bf7B323 - inline Void PlayStreamFrontend() { return _i(0x58FCE43488F9F5F4); } // 0x58fce43488f9f5f40x2c2a16bcB323 - inline Void PlayStreamFromPosition(float x, float y, float z) { return _i(0x21442F412E8DE56B, x, y, z); } // 0x21442f412e8de56b0x6fe5d865B323 - inline Void StopStream() { return _i(0xA4718A1419D18151); } // 0xa4718a1419d181510xd1e364deB323 - inline Void StopPedSpeaking(Ped ped, BOOL shaking) { return _i(0x9D64D7405520E3D3, ped, shaking); } // 0x9d64d7405520e3d30xff92b49dB323 - inline Void BlockAllSpeechFromPed(Ped ped, BOOL p1, BOOL p2) { return _i(0xF8AD2EED7C47E8FE, ped, p1, p2); } // 0xf8ad2eed7c47e8feB1734 - inline Void StopPedSpeakingSynced(Ped ped, BOOL p1) { return _i(0xAB6781A5F3101470, ped, p1); } // 0xab6781a5f3101470B1868 - inline Void DisablePedPainAudio(Ped ped, BOOL toggle) { return _i(0xA9A41C1E940FB0E8, ped, toggle); } // 0xa9a41c1e940fb0e80x3b8e2d5fB323 - // Common in the scripts: - // AUDIO::IsAmbientSpeechDisabled(PLAYER::PlayerPedId()); - inline BOOL IsAmbientSpeechDisabled(Ped ped) { return _i(0x932C2D096A2C3FFF, ped); } // 0x932c2d096a2c3fff0x109d1f89B323 - inline Void BlockSpeechContextGroup(String p0, int p1) { return _i(0xA8A7D434AFB4B97B, p0, p1); } // 0xa8a7d434afb4b97bB1493 - inline Void UnblockSpeechContextGroup(String p0) { return _i(0x2ACABED337622DF2, p0); } // 0x2acabed337622df2B1493 - inline Void SetSirenWithNoDriver(Vehicle vehicle, BOOL toggle) { return _i(0x1FEF0683B96EBCF2, vehicle, toggle); } // 0x1fef0683b96ebcf20x77182d58B323 - inline Void SetSirenBypassMpDriverCheck(Vehicle vehicle, BOOL toggle) { return _i(0xF584CF8529B51434, vehicle, toggle); } // 0xf584cf8529b51434B2372 - inline Void TriggerSirenAudio(Vehicle vehicle) { return _i(0x66C3FB05206041BA, vehicle); } // 0x66c3fb05206041baB1290 - inline Void SetHornPermanentlyOn(Vehicle vehicle) { return _i(0x9C11908013EA4715, vehicle); } // 0x9c11908013ea47150xde8ba3cdB323 - inline Void SetHornEnabled(Vehicle vehicle, BOOL toggle) { return _i(0x76D683C108594D0E, vehicle, toggle); } // 0x76d683c108594d0e0x6eb92d05B323 - inline Void SetAudioVehiclePriority(Vehicle vehicle, Any p1) { return _i(0xE5564483E407F914, vehicle, p1); } // 0xe5564483e407f9140x271a9766B323 - inline Void SetHornPermanentlyOnTime(Vehicle vehicle, float time) { return _i(0x9D3AF56E94C9AE98, vehicle, time); } // 0x9d3af56e94c9ae980x2f0a16d1B323 - inline Void UseSirenAsHorn(Vehicle vehicle, BOOL toggle) { return _i(0xFA932DE350266EF8, vehicle, toggle); } // 0xfa932de350266ef80xc6bc16f3B323 - // This native sets the audio of the specified vehicle to the audioName (p1). - // - // Use the audioNameHash found in vehicles.meta - // - // Example: - // _SET_VEHICLE_AUDIO(veh, "ADDER"); - // The selected vehicle will now have the audio of the Adder. - inline Void ForceUseAudioGameObject(Vehicle vehicle, String audioName) { return _i(0x4F0C413926060B38, vehicle, audioName); } // 0x4f0c413926060b380x33b0b007B323 - inline Void PreloadVehicleAudioBank(Hash vehicleModel) { return _i(0xCA4CEA6AE0000A7E, vehicleModel); } // 0xca4cea6ae0000a7eB1180 - inline Void SetVehicleStartupRevSound(Vehicle vehicle, String p1, String p2) { return _i(0xF1F8157B8C3F171C, vehicle, p1, p2); } // 0xf1f8157b8c3f171c0x1c0c5e4cB323 - inline Void ResetVehicleStartupRevSound(Vehicle vehicle) { return _i(0xD2DCCD8E16E20997, vehicle); } // 0xd2dccd8e16e20997B323 - inline Void SetVehicleForceReverseWarning(Any p0, Any p1) { return _i(0x97FFB4ADEED08066, p0, p1); } // 0x97ffb4adeed08066B2372 - inline BOOL IsVehicleAudiblyDamaged(Vehicle vehicle) { return _i(0x5DB8010EE71FDEF2, vehicle); } // 0x5db8010ee71fdef20x6e660d3fB323 - inline Void SetVehicleAudioEngineDamageFactor(Vehicle vehicle, float damageFactor) { return _i(0x59E7B488451F4D3A, vehicle, damageFactor); } // 0x59e7b488451f4d3a0x23be6432B323 - // intensity: 0.0f - 1.0f, only used once with 1.0f in R* Scripts (nigel2) - // Makes an engine rattling noise when you decelerate, you need to be going faster to hear lower values - inline Void SetVehicleAudioBodyDamageFactor(Vehicle vehicle, float intensity) { return _i(0x01BB4D577D38BD9E, vehicle, intensity); } // 0x01bb4d577d38bd9e0xe81fac68B323 - inline Void EnableVehicleFanbeltDamage(Vehicle vehicle, BOOL toggle) { return _i(0x1C073274E065C6D2, vehicle, toggle); } // 0x1c073274e065c6d20x9365e042B323 - inline Void EnableVehicleExhaustPops(Vehicle vehicle, BOOL toggle) { return _i(0x2BE4BC731D039D5A, vehicle, toggle); } // 0x2be4bc731d039d5a0x2a60a90eB323 - // SetVehicleBoostActive(vehicle, 1, 0); - // SetVehicleBoostActive(vehicle, 0, 0); - // - // Will give a boost-soundeffect. - inline Void SetVehicleBoostActive(Vehicle vehicle, BOOL toggle) { return _i(0x4A04DE7CAB2739A1, vehicle, toggle); } // 0x4a04de7cab2739a10x072f15f2B323 - inline Void SetPlayerVehicleAlarmAudioActive(Vehicle vehicle, BOOL toggle) { return _i(0x6FDDAD856E36988A, vehicle, toggle); } // 0x6fddad856e36988a0x934be749B323 - inline Void SetScriptUpdateDoorAudio(Hash doorHash, BOOL toggle) { return _i(0x06C0023BED16DD6B, doorHash, toggle); } // 0x06c0023bed16dd6b0xe61110a2B323 - // doorId: see SetVehicleDoorShut - inline Void PlayVehicleDoorOpenSound(Vehicle vehicle, int doorId) { return _i(0x3A539D52857EA82D, vehicle, doorId); } // 0x3a539d52857ea82d0x84930330B323 - // doorId: see SetVehicleDoorShut - inline Void PlayVehicleDoorCloseSound(Vehicle vehicle, int doorId) { return _i(0x62A456AA4769EF34, vehicle, doorId); } // 0x62a456aa4769ef340xba2cf407B323 - // Works for planes only. - inline Void EnableStallWarningSounds(Vehicle vehicle, BOOL toggle) { return _i(0xC15907D667F7CFB2, vehicle, toggle); } // 0xc15907d667f7cfb20x563b635dB323 - // Hardcoded to return 1 - inline BOOL IsGameInControlOfMusic() { return _i(0x6D28DC1671E334FD); } // 0x6d28dc1671e334fd0x7643170dB323 - inline Void SetGpsActive(BOOL active) { return _i(0x3BD3F52BA9B1E4E8, active); } // 0x3bd3f52ba9b1e4e80x0fc3379aB323 - // Called 38 times in the scripts. There are 5 different audioNames used. - // One unknown removed below. - // - // AUDIO::PlayMissionCompleteAudio("DEAD"); - // AUDIO::PlayMissionCompleteAudio("FRANKLIN_BIG_01"); - // AUDIO::PlayMissionCompleteAudio("GENERIC_FAILED"); - // AUDIO::PlayMissionCompleteAudio("TREVOR_SMALL_01"); - inline Void PlayMissionCompleteAudio(String audioName) { return _i(0xB138AAB8A70D3C69, audioName); } // 0xb138aab8a70d3c690x3033ea1dB323 - inline BOOL IsMissionCompletePlaying() { return _i(0x19A30C23F5827F8A); } // 0x19a30c23f5827f8a0x939982a1B323 - inline BOOL IsMissionCompleteReadyForUi() { return _i(0x6F259F82D873B8B8); } // 0x6f259f82d873b8b80xcbe09aecB323 - inline Void BlockDeathJingle(BOOL toggle) { return _i(0xF154B8D1775B2DEC, toggle); } // 0xf154b8d1775b2dec0xd2858d8aB323 - // Used to prepare a scene where the surrounding sound is muted or a bit changed. This does not play any sound. - // - // List of all usable scene names found in b617d. Sorted alphabetically and identical names removed: https://pastebin.com/MtM9N9CC - // Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json - inline BOOL StartAudioScene(String scene) { return _i(0x013A80FC08F6E4F2, scene); } // 0x013a80fc08f6e4f20xe48d757bB323 - // Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json - inline Void StopAudioScene(String scene) { return _i(0xDFE8422B3B94E688, scene); } // 0xdfe8422b3b94e6880xa08d8c58B323 - // ?? - inline Void StopAudioScenes() { return _i(0xBAC7FC81A75EC1A1); } // 0xbac7fc81a75ec1a10xf6c7342aB323 - // Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json - inline BOOL IsAudioSceneActive(String scene) { return _i(0xB65B60556E2A9225, scene); } // 0xb65b60556e2a92250xacbed05cB323 - // Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json - inline Void SetAudioSceneVariable(String scene, String variable, float value) { return _i(0xEF21A9EF089A2668, scene, variable, value); } // 0xef21a9ef089a26680x19bb3ce8B323 - inline Void SetAudioScriptCleanupTime(int time) { return _i(0xA5F377B175A699C5, time); } // 0xa5f377b175a699c50xe812925dB323 - // All found occurrences in b678d: - // https://pastebin.com/ceu67jz8 - inline Void AddEntityToAudioMixGroup(Entity entity, String groupName, float p2) { return _i(0x153973AB99FE8980, entity, groupName, p2); } // 0x153973ab99fe89800x2bc93264B323 - inline Void RemoveEntityFromAudioMixGroup(Entity entity, float p1) { return _i(0x18EB48CFC41F2EA0, entity, p1); } // 0x18eb48cfc41f2ea00x308ed0ecB323 - inline BOOL AudioIsMusicPlaying() { return _i(0x845FFC3A4FEEFA3E); } // 0x845ffc3a4feefa3eB323 - // This is an alias of AudioIsMusicPlaying. - inline BOOL AudioIsScriptedMusicPlaying() { return _i(0x2DD39BF3E2F9C47F); } // 0x2dd39bf3e2f9c47fB463 - // All music event names found in the b617d scripts: https://pastebin.com/GnYt0R3P - // Full list of music event names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/musicEventNames.json - inline BOOL PrepareMusicEvent(String eventName) { return _i(0x1E5185B72EF5158A, eventName); } // 0x1e5185b72ef5158a0x534a5c1cB323 - // All music event names found in the b617d scripts: https://pastebin.com/GnYt0R3P - // Full list of music event names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/musicEventNames.json - inline BOOL CancelMusicEvent(String eventName) { return _i(0x5B17A90291133DA5, eventName); } // 0x5b17a90291133da50x89ff942dB323 - // List of all usable event names found in b617d used with this native. Sorted alphabetically and identical names removed: https://pastebin.com/RzDFmB1W - // - // All music event names found in the b617d scripts: https://pastebin.com/GnYt0R3P - // Full list of music event names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/musicEventNames.json - inline BOOL TriggerMusicEvent(String eventName) { return _i(0x706D57B0F50DA710, eventName); } // 0x706d57b0f50da7100xb6094948B323 - inline BOOL IsMusicOneshotPlaying() { return _i(0xA097AB275061FB21); } // 0xa097ab275061fb210x2705c4d5B323 - inline int GetMusicPlaytime() { return _i(0xE7A0D23DC414507B); } // 0xe7a0d23dc414507b0xd633c809B323 - inline Void SetGlobalRadioSignalLevel(Any p0) { return _i(0x159B7318403A1CD8, p0); } // 0x159b7318403a1cd8B1103 - inline Void RecordBrokenGlass(float x, float y, float z, float radius) { return _i(0xFBE20329593DEC9D, x, y, z, radius); } // 0xfbe20329593dec9d0x53fc3fecB323 - inline Void ClearAllBrokenGlass() { return _i(0xB32209EFFDC04913); } // 0xb32209effdc049130xe6b033bfB323 - inline Void ScriptOverridesWindElevation(BOOL p0, Any p1) { return _i(0x70B8EC8FC108A634, p0, p1); } // 0x70b8ec8fc108a6340x95050cadB323 - inline Void SetPedWallaDensity(float p0, float p1) { return _i(0x149AEE66F0CB3A99, p0, p1); } // 0x149aee66f0cb3a990xe64f97a0B323 - inline Void SetPedInteriorWallaDensity(float p0, float p1) { return _i(0x8BF907833BE275DE, p0, p1); } // 0x8bf907833be275de0x2cd26d69B323 - inline Void ForcePedPanicWalla() { return _i(0x062D5EAD4DA2FA6A); } // 0x062d5ead4da2fa6a0xd87af337B323 - // Example: - // - // bool prepareAlarm = AUDIO::PrepareAlarm("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS"); - // Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json - inline BOOL PrepareAlarm(String alarmName) { return _i(0x9D74AE343DB65533, alarmName); } // 0x9d74ae343db655330x084932e8B323 - // Example: - // - // This will start the alarm at Fort Zancudo. - // - // AUDIO::StartAlarm("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS", 1); - // - // First parameter (char) is the name of the alarm. - // Second parameter (bool) is unknown, it does not seem to make a difference if this one is 0 or 1. - // - // ---------- - // - // It DOES make a difference but it has to do with the duration or something I dunno yet - // - // ---------- - // - // Found in the b617d scripts: - // - // AUDIO::StartAlarm("AGENCY_HEIST_FIB_TOWER_ALARMS", 0); - // AUDIO::StartAlarm("AGENCY_HEIST_FIB_TOWER_ALARMS_UPPER", 1); - // AUDIO::StartAlarm("AGENCY_HEIST_FIB_TOWER_ALARMS_UPPER_B", 0); - // AUDIO::StartAlarm("BIG_SCORE_HEIST_VAULT_ALARMS", a_0); - // AUDIO::StartAlarm("FBI_01_MORGUE_ALARMS", 1); - // AUDIO::StartAlarm("FIB_05_BIOTECH_LAB_ALARMS", 0); - // AUDIO::StartAlarm("JEWEL_STORE_HEIST_ALARMS", 0); - // AUDIO::StartAlarm("PALETO_BAY_SCORE_ALARM", 1); - // AUDIO::StartAlarm("PALETO_BAY_SCORE_CHICKEN_FACTORY_ALARM", 0); - // AUDIO::StartAlarm("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS", 1); - // AUDIO::StartAlarm("PORT_OF_LS_HEIST_SHIP_ALARMS", 0); - // AUDIO::StartAlarm("PRISON_ALARMS", 0); - // AUDIO::StartAlarm("PROLOGUE_VAULT_ALARMS", 0); - // Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json - inline Void StartAlarm(String alarmName, BOOL p2) { return _i(0x0355EF116C4C97B2, alarmName, p2); } // 0x0355ef116c4c97b20x703f524bB323 - // Example: - // - // This will stop the alarm at Fort Zancudo. - // - // AUDIO::StopAlarm("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS", 1); - // - // First parameter (char) is the name of the alarm. - // Second parameter (bool) has to be true (1) to have any effect. - // Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json - inline Void StopAlarm(String alarmName, BOOL toggle) { return _i(0xA1CADDCD98415A41, alarmName, toggle); } // 0xa1caddcd98415a410xf987be8cB323 - inline Void StopAllAlarms(BOOL stop) { return _i(0x2F794A877ADD4C92, stop); } // 0x2f794a877add4c920xc3cb9dc6B323 - // Example: - // - // bool playing = AUDIO::IsAlarmPlaying("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS"); - // Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json - inline BOOL IsAlarmPlaying(String alarmName) { return _i(0x226435CB96CCFC8C, alarmName); } // 0x226435cb96ccfc8c0x9d8e1d23B323 - // Returns hash of default vehicle horn - // - // Hash is stored in audVehicleAudioEntity - inline Hash GetVehicleDefaultHorn(Vehicle vehicle) { return _i(0x02165D55000219AC, vehicle); } // 0x02165d55000219ac0xe84abc19B323 - inline Hash GetVehicleDefaultHornIgnoreMods(Vehicle vehicle) { return _i(0xACB5DCCA1EC76840, vehicle); } // 0xacb5dcca1ec768400xfd4b5b3bB323 - inline Void ResetPedAudioFlags(Ped ped) { return _i(0xF54BB7B61036F335, ped); } // 0xf54bb7b61036f3350xdf720c86B323 - // Enables/disables ped's "loud" footstep sound. - inline Void SetPedFootstepsEventsEnabled(Ped ped, BOOL toggle) { return _i(0x0653B735BFBDFE87, ped, toggle); } // 0x0653b735bfbdfe87B1493 - // Enables/disables ped's "quiet" footstep sound. - inline Void SetPedClothEventsEnabled(Ped ped, BOOL toggle) { return _i(0x29DA3CA8D8B2692D, ped, toggle); } // 0x29da3ca8d8b2692dB1493 - // Sets audio flag "OverridePlayerGroundMaterial" - inline Void OverridePlayerGroundMaterial(Hash hash, BOOL toggle) { return _i(0xD2CC78CD3D0B50F9, hash, toggle); } // 0xd2cc78cd3d0b50f90xc307d531B323 - inline Void UseFootstepScriptSweeteners(Ped ped, BOOL p1, Hash hash) { return _i(0xBF4DC1784BE94DFA, ped, p1, hash); } // 0xbf4dc1784be94dfa0xd99e275bB323 - // Sets audio flag "OverrideMicrophoneSettings" - inline Void OverrideMicrophoneSettings(Hash hash, BOOL toggle) { return _i(0x75773E11BA459E90, hash, toggle); } // 0x75773e11ba459e90B323 - inline Void FreezeMicrophone() { return _i(0xD57AAAE0E2214D11); } // 0xd57aaae0e2214d110x2b9d91e8B323 - // If value is set to true, and ambient siren sound will be played. - // Appears to enable/disable an audio flag. - inline Void DistantCopCarSirens(BOOL value) { return _i(0x552369F549563AD5, value); } // 0x552369f549563ad50x13eb5861B323 - inline Void SetSirenCanBeControlledByAudio(Vehicle vehicle, BOOL p1) { return _i(0x43FA0DFC5DF87815, vehicle, p1); } // 0x43fa0dfc5df878150x7bed1872B323 - inline Void EnableStuntJumpAudio() { return _i(0xB81CF134AEB56FFB); } // 0xb81cf134aeb56ffbB791 - // Possible flag names: - // "ActivateSwitchWheelAudio" - // "AllowAmbientSpeechInSlowMo" - // "AllowCutsceneOverScreenFade" - // "AllowForceRadioAfterRetune" - // "AllowPainAndAmbientSpeechToPlayDuringCutscene" - // "AllowPlayerAIOnMission" - // "AllowPoliceScannerWhenPlayerHasNoControl" - // "AllowRadioDuringSwitch" - // "AllowRadioOverScreenFade" - // "AllowScoreAndRadio" - // "AllowScriptedSpeechInSlowMo" - // "AVoidMissionCompleteDelay" - // "DisableAbortConversationForDeathAndInjury" - // "DisableAbortConversationForRagdoll" - // "DisableBarks" - // "DisableFlightMusic" - // "DisableReplayScriptStreamRecording" - // "EnableHeadsetBeep" - // "ForceConversationInterrupt" - // "ForceSeamlessRadioSwitch" - // "ForceSniperAudio" - // "FrontendRadioDisabled" - // "HoldMissionCompleteWhenPrepared" - // "IsDirectorModeActive" - // "IsPlayerOnMissionForSpeech" - // "ListenerReverbDisabled" - // "LoadMPData" - // "MobileRadioInGame" - // "OnlyAllowScriptTriggerPoliceScanner" - // "PlayMenuMusic" - // "PoliceScannerDisabled" - // "ScriptedConvListenerMaySpeak" - // "SpeechDucksScore" - // "SuppressPlayerScubaBreathing" - // "WantedMusicDisabled" - // "WantedMusicOnMission" - // - // ------------------------------- - // No added flag names between b393d and b573d, including b573d. - // - // ####################################################################### - // - // "IsDirectorModeActive" is an audio flag which will allow you to play speech infinitely without any pauses like in Director Mode. - // - // ----------------------------------------------------------------------- - // - // All flag IDs and hashes: - // - // ID: 00 | Hash: 0x0FED7A7F - // ID: 01 | Hash: 0x20A7858F - // ID: 02 | Hash: 0xA11C2259 - // ID: 03 | Hash: 0x08DE4700 - // ID: 04 | Hash: 0x989F652F - // ID: 05 | Hash: 0x3C9E76BA - // ID: 06 | Hash: 0xA805FEB0 - // ID: 07 | Hash: 0x4B94EA26 - // ID: 08 | Hash: 0x803ACD34 - // ID: 09 | Hash: 0x7C741226 - // ID: 10 | Hash: 0x31DB9EBD - // ID: 11 | Hash: 0xDF386F18 - // ID: 12 | Hash: 0x669CED42 - // ID: 13 | Hash: 0x51F22743 - // ID: 14 | Hash: 0x2052B35C - // ID: 15 | Hash: 0x071472DC - // ID: 16 | Hash: 0xF9928BCC - // ID: 17 | Hash: 0x7ADBDD48 - // ID: 18 | Hash: 0xA959BA1A - // ID: 19 | Hash: 0xBBE89B60 - // ID: 20 | Hash: 0x87A08871 - // ID: 21 | Hash: 0xED1057CE - // ID: 22 | Hash: 0x1584AD7A - // ID: 23 | Hash: 0x8582CFCB - // ID: 24 | Hash: 0x7E5E2FB0 - // ID: 25 | Hash: 0xAE4F72DB - // ID: 26 | Hash: 0x5D16D1FA - // ID: 27 | Hash: 0x06B2F4B8 - // ID: 28 | Hash: 0x5D4CDC96 - // ID: 29 | Hash: 0x8B5A48BA - // ID: 30 | Hash: 0x98FBD539 - // ID: 31 | Hash: 0xD8CB0473 - // ID: 32 | Hash: 0x5CBB4874 - // ID: 33 | Hash: 0x2E9F93A9 - // ID: 34 | Hash: 0xD93BEA86 - // ID: 35 | Hash: 0x92109B7D - // ID: 36 | Hash: 0xB7EC9E4D - // ID: 37 | Hash: 0xCABDBB1D - // ID: 38 | Hash: 0xB3FD4A52 - // ID: 39 | Hash: 0x370D94E5 - // ID: 40 | Hash: 0xA0F7938F - // ID: 41 | Hash: 0xCBE1CE81 - // ID: 42 | Hash: 0xC27F1271 - // ID: 43 | Hash: 0x9E3258EB - // ID: 44 | Hash: 0x551CDA5B - // ID: 45 | Hash: 0xCB6D663C - // ID: 46 | Hash: 0x7DACE87F - // ID: 47 | Hash: 0xF9DE416F - // ID: 48 | Hash: 0x882E6E9E - // ID: 49 | Hash: 0x16B447E7 - // ID: 50 | Hash: 0xBD867739 - // ID: 51 | Hash: 0xA3A58604 - // ID: 52 | Hash: 0x7E046BBC - // ID: 53 | Hash: 0xD95FDB98 - // ID: 54 | Hash: 0x5842C0ED - // ID: 55 | Hash: 0x285FECC6 - // ID: 56 | Hash: 0x9351AC43 - // ID: 57 | Hash: 0x50032E75 - // ID: 58 | Hash: 0xAE6D0D59 - // ID: 59 | Hash: 0xD6351785 - // ID: 60 | Hash: 0xD25D71BC - // ID: 61 | Hash: 0x1F7F6423 - // ID: 62 | Hash: 0xE24C3AA6 - // ID: 63 | Hash: 0xBFFDD2B7 - inline Void SetAudioFlag(String flagName, BOOL toggle) { return _i(0xB9EFD5C25018725A, flagName, toggle); } // 0xb9efd5c25018725a0x1c09c9e0B323 - // p1 is always 0 in the scripts - inline BOOL PrepareSynchronizedAudioEvent(String audioEvent, Any p1) { return _i(0xC7ABCACA4985A766, audioEvent, p1); } // 0xc7abcaca4985a7660xe1d91fd0B323 - inline BOOL PrepareSynchronizedAudioEventForScene(int sceneID, String audioEvent) { return _i(0x029FE7CD1B7E2E75, sceneID, audioEvent); } // 0x029fe7cd1b7e2e750x7652dd49B323 - inline BOOL PlaySynchronizedAudioEvent(int sceneID) { return _i(0x8B2FD4560E55DD2D, sceneID); } // 0x8b2fd4560e55dd2d0x507f3241B323 - inline BOOL StopSynchronizedAudioEvent(int sceneID) { return _i(0x92D6A88E64A94430, sceneID); } // 0x92d6a88e64a944300xadeed2b4B323 - inline Void InitSynchSceneAudioWithPosition(String audioEvent, float x, float y, float z) { return _i(0xC8EDE9BDBCCBA6D4, audioEvent, x, y, z); } // 0xc8ede9bdbccba6d40x55a21772B323 - inline Void InitSynchSceneAudioWithEntity(String audioEvent, Entity entity) { return _i(0x950A154B8DAB6185, audioEvent, entity); } // 0x950a154b8dab61850xa17f9ab0B323 - // Needs to be called every frame. - // Audio mode to apply this frame: https://alloc8or.re/gta5/doc/enums/audSpecialEffectMode.txt - inline Void SetAudioSpecialEffectMode(int mode) { return _i(0x12561FCBB62D5B9C, mode); } // 0x12561fcbb62d5b9c0x62b43677B323 - // Found in the b617d scripts, duplicates removed: - // - // AUDIO::SetPortalSettingsOverride("V_CARSHOWROOM_PS_WINDOW_UNBROKEN", "V_CARSHOWROOM_PS_WINDOW_BROKEN"); - // - // AUDIO::SetPortalSettingsOverride("V_CIA_PS_WINDOW_UNBROKEN", "V_CIA_PS_WINDOW_BROKEN"); - // - // AUDIO::SetPortalSettingsOverride("V_DLC_HEIST_APARTMENT_DOOR_CLOSED", "V_DLC_HEIST_APARTMENT_DOOR_OPEN"); - // - // AUDIO::SetPortalSettingsOverride("V_FINALEBANK_PS_VAULT_INTACT", "V_FINALEBANK_PS_VAULT_BLOWN"); - // - // AUDIO::SetPortalSettingsOverride("V_MICHAEL_PS_BATHROOM_WITH_WINDOW", "V_MICHAEL_PS_BATHROOM_WITHOUT_WINDOW"); - inline Void SetPortalSettingsOverride(String p0, String p1) { return _i(0x044DBAD7A7FA2BE5, p0, p1); } // 0x044dbad7a7fa2be50x8ad670ecB323 - // Found in the b617d scripts, duplicates removed: - // - // AUDIO::RemovePortalSettingsOverride("V_CARSHOWROOM_PS_WINDOW_UNBROKEN"); - // AUDIO::RemovePortalSettingsOverride("V_CIA_PS_WINDOW_UNBROKEN"); - // AUDIO::RemovePortalSettingsOverride("V_DLC_HEIST_APARTMENT_DOOR_CLOSED"); - // AUDIO::RemovePortalSettingsOverride("V_FINALEBANK_PS_VAULT_INTACT"); - // AUDIO::RemovePortalSettingsOverride("V_MICHAEL_PS_BATHROOM_WITH_WINDOW"); - inline Void RemovePortalSettingsOverride(String p0) { return _i(0xB4BBFD9CD8B3922B, p0); } // 0xb4bbfd9cd8b3922b0xd24b4d0cB323 - // STOP_S[MOKE_GRENADE_EXPLOSION_SOUNDS]? - inline Void StopSmokeGrenadeExplosionSounds() { return _i(0xE4E6DD5566D28C82); } // 0xe4e6dd5566d28c820x7262b5baB323 - inline int GetMusicVolSlider() { return _i(0x3A48AB4445D499BE); } // 0x3a48ab4445d499be0x93a44a1fB323 - inline Void RequestTennisBanks(Ped ped) { return _i(0x4ADA3F19BE4A6047, ped); } // 0x4ada3f19be4a60470x13777a0bB323 - inline Void UnrequestTennisBanks() { return _i(0x0150B6FF25A9E2E5); } // 0x0150b6ff25a9e2e50x1134f68bB323 - inline Void SetSkipMinigunSpinUpAudio(BOOL p0) { return _i(0xBEF34B1D9624D5DD, p0); } // 0xbef34b1d9624d5dd0xe0047bfdB323 - inline Void StopCutsceneAudio() { return _i(0x806058BBDC136E06); } // 0x806058bbdc136e060x55461be6B323 - inline BOOL HasLoadedMpDataSet() { return _i(0x544810ED9DB6BBE6); } // 0x544810ed9db6bbe6B323 - inline BOOL HasLoadedSpDataSet() { return _i(0x5B50ABB1FE3746F4); } // 0x5b50abb1fe3746f4B323 - inline int GetVehicleHornSoundIndex(Vehicle vehicle) { return _i(0xD53F3A29BCE2580E, vehicle); } // 0xd53f3a29bce2580eB1365 - inline Void SetVehicleHornSoundIndex(Vehicle vehicle, int value) { return _i(0x0350E7E17BA767D0, vehicle, value); } // 0x0350e7e17ba767d0B1365 + // All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/RFb4GTny + // + // AUDIO::PlayPedRingtone("Remote_Ring", PLAYER::PlayerPedId(), 1); + // AUDIO::PlayPedRingtone("Dial_and_Remote_Ring", PLAYER::PlayerPedId(), 1); + // + inline Void PlayPedRingtone(String ringtoneName, Ped ped, BOOL p2) { return _i(0xF9E56683CA8E11A5, ringtoneName, ped, p2); } // 0xf9e56683ca8e11a50x1d530e47B323 + inline BOOL IsPedRingtonePlaying(Ped ped) { return _i(0x1E8E5E20937E3137, ped); } // 0x1e8e5e20937e31370xfe576ee4B323 + inline Void StopPedRingtone(Ped ped) { return _i(0x6C5AE23EFA885092, ped); } // 0x6c5ae23efa8850920xfeea107cB323 + inline BOOL IsMobilePhoneCallOngoing() { return _i(0x7497D2CE2C30D24C); } // 0x7497d2ce2c30d24c0x4ed1400aB323 + inline BOOL IsMobileInterferenceActive() { return _i(0xC8B1B2425604CDD0); } // 0xc8b1b2425604cdd00x16fb88b5B323 + inline int GetCurrentTvShowPlayTime() { return _i(0xDD3AA743AB7D4D75); } // 0xdd3aa743ab7d4d75B3095 + inline Void CreateNewScriptedConversation() { return _i(0xD2C91A0B572AAE56); } // 0xd2c91a0b572aae560xb2bc25f8B323 + // NOTE: ones that are -1, 0 - 35 are determined by a function where it gets a TextLabel from a global then runs, + // GetCharacterFromAudioConversationFilename and depending on what the result is it goes in check order of 0 - 9 then A - Z then z (lowercase). So it will then return 0 - 35 or -1 if it's 'z'. The func to handle that ^^ is func_67 in dialog_handler.c atleast in TU27 Xbox360 scripts. + // + // p0 is -1, 0 - 35 + // p1 is a char or string (whatever you wanna call it) + // p2 is Global 10597 + i * 6. 'i' is a while(i < 70) loop + // p3 is again -1, 0 - 35 + // p4 is again -1, 0 - 35 + // p5 is either 0 or 1 (BOOL ?) + // p6 is either 0 or 1 (The func to determine this is BOOL) + // p7 is either 0 or 1 (The func to determine this is BOOL) + // p8 is either 0 or 1 (The func to determine this is BOOL) + // p9 is 0 - 3 (Determined by func_60 in dialogue_handler.c) + // p10 is either 0 or 1 (The func to determine this is BOOL) + // p11 is either 0 or 1 (The func to determine this is BOOL) + // p12 is unknown as in TU27 X360 scripts it only goes to p11. + inline Void AddLineToConversation(int index, String p1, String p2, int p3, int p4, BOOL p5, BOOL p6, BOOL p7, BOOL p8, int p9, BOOL p10, BOOL p11, BOOL p12) { return _i(0xC5EF963405593646, index, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } // 0xc5ef9634055936460x96cd0513B323 + // 4 calls in the b617d scripts. The only one with p0 and p2 in clear text: + // + // AUDIO::AddPedToConversation(5, l_AF, "DINAPOLI"); + // + // ================================================= + // One of the 2 calls in dialogue_handler.c p0 is in a while-loop, and so is determined to also possibly be 0 - 15. + inline Void AddPedToConversation(int index, Ped ped, String p2) { return _i(0x95D9F4BC443956E7, index, ped, p2); } // 0x95d9f4bc443956e70xf8d5eb86B323 + inline Void SetPositionForNullConvPed(Any p0, float p1, float p2, float p3) { return _i(0x33E3C6C6F2F0B506, p0, p1, p2, p3); } // 0x33e3c6c6f2f0b5060x73c6f979B323 + inline Void SetEntityForNullConvPed(int p0, Entity entity) { return _i(0x892B6AB8F33606F5, p0, entity); } // 0x892b6ab8f33606f50x88203ddaB323 + // This native controls where the game plays audio from. By default the microphone is positioned on the player. + // When p0 is true the game will play audio from the 3 positions inputted. + // It is recommended to set all 3 positions to the same value as mixing different positions doesn't seem to work well. + // The scripts mostly use it with only one position such as in fbi3.c: + // AUDIO::SetMicrophonePosition(true, ENTITY::GetEntityCoords(iLocal_3091, true), ENTITY::GetEntityCoords(iLocal_3091, true), ENTITY::GetEntityCoords(iLocal_3091, true)); + inline Void SetMicrophonePosition(BOOL toggle, float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3) { return _i(0xB6AE90EDDE95C762, toggle, x1, y1, z1, x2, y2, z2, x3, y3, z3); } // 0xb6ae90edde95c7620xad7bb191B323 + inline Void SetConversationAudioControlledByAnim(BOOL p0) { return _i(0x0B568201DD99F0EB, p0); } // 0x0b568201dd99f0eb0x1193ed6eB323 + inline Void SetConversationAudioPlaceholder(BOOL p0) { return _i(0x61631F5DF50D1C34, p0); } // 0x61631f5df50d1c34B323 + inline Void StartScriptPhoneConversation(BOOL p0, BOOL p1) { return _i(0x252E5F915EABB675, p0, p1); } // 0x252e5f915eabb6750x38e42d07B323 + inline Void PreloadScriptPhoneConversation(BOOL p0, BOOL p1) { return _i(0x6004BCB0E226AAEA, p0, p1); } // 0x6004bcb0e226aaea0x9acb213aB323 + inline Void StartScriptConversation(BOOL p0, BOOL p1, BOOL p2, BOOL p3) { return _i(0x6B17C62C9635D2DC, p0, p1, p2, p3); } // 0x6b17c62c9635d2dc0xe5de7d9dB323 + inline Void PreloadScriptConversation(BOOL p0, BOOL p1, BOOL p2, BOOL p3) { return _i(0x3B3CAD6166916D87, p0, p1, p2, p3); } // 0x3b3cad6166916d870xddf5c579B323 + inline Void StartPreloadedConversation() { return _i(0x23641AFE870AF385); } // 0x23641afe870af3850xa170261bB323 + inline BOOL GetIsPreloadedConversationReady() { return _i(0xE73364DB90778FFA); } // 0xe73364db90778ffa0x336f3d35B323 + inline BOOL IsScriptedConversationOngoing() { return _i(0x16754C556D2EDE3D); } // 0x16754c556d2ede3d0xcb8fd96fB323 + inline BOOL IsScriptedConversationLoaded() { return _i(0xDF0D54BE7A776737); } // 0xdf0d54be7a7767370xe1870ea9B323 + inline int GetCurrentScriptedConversationLine() { return _i(0x480357EE890C295A); } // 0x480357ee890c295a0x9620e41fB323 + inline Void PauseScriptedConversation(BOOL p0) { return _i(0x8530AD776CD72B12, p0); } // 0x8530ad776cd72b120xe2c9c6f8B323 + inline Void RestartScriptedConversation() { return _i(0x9AEB285D1818C9AC); } // 0x9aeb285d1818c9ac0x6cb24b56B323 + inline int StopScriptedConversation(BOOL p0) { return _i(0xD79DEEFB53455EBA, p0); } // 0xd79deefb53455eba0xab77da7dB323 + inline Void SkipToNextScriptedConversationLine() { return _i(0x9663FE6B7A61EB00); } // 0x9663fe6b7a61eb000x85c98304B323 + // Example from carsteal3.c: AUDIO::InterruptConversation(PLAYER::PlayerPedId(), "CST4_CFAA", "FRANKLIN"); + // Voicelines can be found in GTAV\x64\audio\sfx in files starting with "SS_" which seems to mean scripted speech. + inline Void InterruptConversation(Ped ped, String voiceline, String speaker) { return _i(0xA018A12E5C5C2FA6, ped, voiceline, speaker); } // 0xa018a12e5c5c2fa60xf3a67af3B323 + // One call found in the b617d scripts: + // + // AUDIO::InterruptConversationAndPause(NETWORK::NetToPed(l_3989._f26F[0/*1*/]), "CONV_INTERRUPT_QUIT_IT", "LESTER"); + inline Void InterruptConversationAndPause(Ped ped, String p1, String speaker) { return _i(0x8A694D7A68F8DC38, ped, p1, speaker); } // 0x8a694d7a68f8dc380xdd4a3f1fB323 + inline int GetVariationChosenForScriptedLine(Any* p0) { return _i(0xAA19F5572C38B564, p0); } // 0xaa19f5572c38b5640xb58b8ff3B323 + inline Void SetNoDuckingForConversation(BOOL p0) { return _i(0xB542DE8C3D1CB210, p0); } // 0xb542de8c3d1cb2100x789d8c6cB323 + // This native does absolutely nothing, just a nullsub + inline Void RegisterScriptWithAudio(int p0) { return _i(0xC6ED9D5092438D91, p0); } // 0xc6ed9d5092438d910xa6203643B323 + // This native does absolutely nothing, just a nullsub + inline Void UnregisterScriptWithAudio() { return _i(0xA8638BE228D4751A); } // 0xa8638be228d4751a0x66728efeB323 + // All occurrences and usages found in b617d: https://pastebin.com/NzZZ2Tmm + // Full list of mission audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/missionAudioBankNames.json + // p2 is always -1 + inline BOOL RequestMissionAudioBank(String audioBank, BOOL p1, Any p2) { return _i(0x7345BDD95E62E0F2, audioBank, p1, p2); } // 0x7345bdd95e62e0f20x916e37caB323 + // All occurrences and usages found in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/XZ1tmGEz + // Full list of ambient audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientAudioBankNames.json + // p2 is always -1 + inline BOOL RequestAmbientAudioBank(String audioBank, BOOL p1, Any p2) { return _i(0xFE02FFBED8CA9D99, audioBank, p1, p2); } // 0xfe02ffbed8ca9d990x23c88bc7B323 + // All occurrences and usages found in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/AkmDAVn6 + // Full list of script audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scriptAudioBankNames.json + // p2 is always -1 + inline BOOL RequestScriptAudioBank(String audioBank, BOOL p1, Any p2) { return _i(0x2F844A8B08D76685, audioBank, p1, p2); } // 0x2f844a8b08d766850x21322887B323 + // p2 is always -1 + inline BOOL HintMissionAudioBank(String audioBank, BOOL p1, Any p2) { return _i(0x40763EA7B9B783E7, audioBank, p1, p2); } // 0x40763ea7b9b783e7B573 + // p2 is always -1 + inline BOOL HintAmbientAudioBank(String audioBank, BOOL p1, Any p2) { return _i(0x8F8C0E370AE62F5C, audioBank, p1, p2); } // 0x8f8c0e370ae62f5c0xf1850ddcB323 + // p2 is always -1 + inline BOOL HintScriptAudioBank(String audioBank, BOOL p1, Any p2) { return _i(0xFB380A29641EC31A, audioBank, p1, p2); } // 0xfb380a29641ec31a0x41fa0e51B323 + inline Void ReleaseMissionAudioBank() { return _i(0x0EC92A1BF0857187); } // 0x0ec92a1bf08571870x8e8824c7B323 + inline Void ReleaseAmbientAudioBank() { return _i(0x65475A218FFAA93D); } // 0x65475a218ffaa93d0x8c938784B323 + // Full list of script audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scriptAudioBankNames.json + inline Void ReleaseNamedScriptAudioBank(String audioBank) { return _i(0x77ED170667F50170, audioBank); } // 0x77ed170667f501700x16707abcB323 + inline Void ReleaseScriptAudioBank() { return _i(0x7A2D8AD0A9EB9C3F); } // 0x7a2d8ad0a9eb9c3f0x22f865e5B323 + inline Void UnhintAmbientAudioBank() { return _i(0x19AF7ED9B9D23058); } // 0x19af7ed9b9d230580xa58bbf4fB323 + inline Void UnhintScriptAudioBank() { return _i(0x9AC92EED5E4793AB); } // 0x9ac92eed5e4793ab0xe67446e9B323 + inline Void UnhintNamedScriptAudioBank(String audioBank) { return _i(0x11579D940949C49E, audioBank); } // 0x11579d940949c49eB678 + inline int GetSoundId() { return _i(0x430386FE9BF80B45); } // 0x430386fe9bf80b450x6ae0ad56B323 + inline Void ReleaseSoundId(int soundId) { return _i(0x353FC880830B88FA, soundId); } // 0x353fc880830b88fa0x9c080899B323 + // All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/A8Ny8AHZ + // + // Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json + inline Void PlaySound(int soundId, String audioName, String audioRef, BOOL p3, Any p4, BOOL p5) { return _i(0x7FF4944CC209192D, soundId, audioName, audioRef, p3, p4, p5); } // 0x7ff4944cc209192d0xb6e1917fB323 + // List: https://pastebin.com/DCeRiaLJ + // + // All occurrences as of Cayo Perico Heist DLC (b2189), sorted alphabetically and identical lines removed: https://git.io/JtLxM + // + // Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json + inline Void PlaySoundFrontend(int soundId, String audioName, String audioRef, BOOL p3) { return _i(0x67C540AA08E4A6F5, soundId, audioName, audioRef, p3); } // 0x67c540aa08e4a6f50x2e458f74B323 + // Only call found in the b617d scripts: + // + // AUDIO::PlayDeferredSoundFrontend("BACK", "HUD_FREEMODE_SOUNDSET"); + // + // Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json + inline Void PlayDeferredSoundFrontend(String soundName, String soundsetName) { return _i(0xCADA5A0D0702381E, soundName, soundsetName); } // 0xcada5a0d0702381e0xc70e6cfaB323 + // All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/f2A7vTj0 + // No changes made in b678d. + // + // gtaforums.com/topic/795622-audio-for-mods + // + // Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json + inline Void PlaySoundFromEntity(int soundId, String audioName, Entity entity, String audioRef, BOOL isNetwork, Any p5) { return _i(0xE65F427EB70AB1ED, soundId, audioName, entity, audioRef, isNetwork, p5); } // 0xe65f427eb70ab1ed0x95ae00f8B323 + // Only used with "formation_flying_blips_soundset" and "biker_formation_blips_soundset". + // p1 is always the model of p2 + inline Void PlaySoundFromEntityHash(int soundId, Hash model, Entity entity, Hash soundSetHash, Any p4, Any p5) { return _i(0x5B9853296731E88D, soundId, model, entity, soundSetHash, p4, p5); } // 0x5b9853296731e88dB877 + // All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/eeFc5DiW + // + // gtaforums.com/topic/795622-audio-for-mods + // + // Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json + inline Void PlaySoundFromCoord(int soundId, String audioName, float x, float y, float z, String audioRef, BOOL isNetwork, int range, BOOL p8) { return _i(0x8D8686B622B88120, soundId, audioName, x, y, z, audioRef, isNetwork, range, p8); } // 0x8d8686b622b881200xcad3e2d5B323 + inline Void UpdateSoundCoord(int soundId, float x, float y, float z) { return _i(0x7EC3C679D0E7E46B, soundId, x, y, z); } // 0x7ec3c679d0e7e46bB678 + inline Void StopSound(int soundId) { return _i(0xA3B0C41BA5CC0BB5, soundId); } // 0xa3b0c41ba5cc0bb50xcd7f4030B323 + // Could this be used alongside either, + // SetNetworkIdExistsOnAllMachines or _SET_NETWORK_ID_SYNC_TO_PLAYER to make it so other players can hear the sound while online? It'd be a bit troll-fun to be able to play the Zancudo UFO creepy sounds globally. + inline int GetNetworkIdFromSoundId(int soundId) { return _i(0x2DE3F0A134FFBC0D, soundId); } // 0x2de3f0a134ffbc0d0x2576f610B323 + inline int GetSoundIdFromNetworkId(int netId) { return _i(0x75262FD12D0A1C84, netId); } // 0x75262fd12d0a1c840xd064d4dcB323 + inline Void SetVariableOnSound(int soundId, String variable, float p2) { return _i(0xAD6B3148A78AE9B6, soundId, variable, p2); } // 0xad6b3148a78ae9b60x606ee5faB323 + // From the scripts, p0: + // + // "ArmWrestlingIntensity", + // "INOUT", + // "Monkey_Stream", + // "ZoomLevel" + inline Void SetVariableOnStream(String variable, float p1) { return _i(0x2F9D3834AEB9EF79, variable, p1); } // 0x2f9d3834aeb9ef790xf67bb44cB323 + inline Void OverrideUnderwaterStream(String p0, BOOL p1) { return _i(0xF2A9CDABCEA04BD6, p0, p1); } // 0xf2a9cdabcea04bd60x9a083b7eB323 + // AUDIO::SetVariableOnUnderWaterStream("inTunnel", 1.0); + // AUDIO::SetVariableOnUnderWaterStream("inTunnel", 0.0); + inline Void SetVariableOnUnderWaterStream(String variableName, float value) { return _i(0x733ADF241531E5C2, variableName, value); } // 0x733adf241531e5c20x62d026beB323 + inline BOOL HasSoundFinished(int soundId) { return _i(0xFCBDCE714A7C88E5, soundId); } // 0xfcbdce714a7c88e50xe85aec2eB323 + // Plays ambient speech. See also _0x444180DB. + // + // ped: The ped to play the ambient speech. + // speechName: Name of the speech to play, eg. "GENERIC_HI". + // speechParam: Can be one of the following: + // SPEECH_PARAMS_STANDARD + // SPEECH_PARAMS_ALLOW_REPEAT + // SPEECH_PARAMS_BEAT + // SPEECH_PARAMS_FORCE + // SPEECH_PARAMS_FORCE_FRONTEND + // SPEECH_PARAMS_FORCE_NO_REPEAT_FRONTEND + // SPEECH_PARAMS_FORCE_NORMAL + // SPEECH_PARAMS_FORCE_NORMAL_CLEAR + // SPEECH_PARAMS_FORCE_NORMAL_CRITICAL + // SPEECH_PARAMS_FORCE_SHOUTED + // SPEECH_PARAMS_FORCE_SHOUTED_CLEAR + // SPEECH_PARAMS_FORCE_SHOUTED_CRITICAL + // SPEECH_PARAMS_FORCE_PRELOAD_ONLY + // SPEECH_PARAMS_MEGAPHONE + // SPEECH_PARAMS_HELI + // SPEECH_PARAMS_FORCE_MEGAPHONE + // SPEECH_PARAMS_FORCE_HELI + // SPEECH_PARAMS_INTERRUPT + // SPEECH_PARAMS_INTERRUPT_SHOUTED + // SPEECH_PARAMS_INTERRUPT_SHOUTED_CLEAR + // SPEECH_PARAMS_INTERRUPT_SHOUTED_CRITICAL + // SPEECH_PARAMS_INTERRUPT_NO_FORCE + // SPEECH_PARAMS_INTERRUPT_FRONTEND + // SPEECH_PARAMS_INTERRUPT_NO_FORCE_FRONTEND + // SPEECH_PARAMS_ADD_BLIP + // SPEECH_PARAMS_ADD_BLIP_ALLOW_REPEAT + // SPEECH_PARAMS_ADD_BLIP_FORCE + // SPEECH_PARAMS_ADD_BLIP_SHOUTED + // SPEECH_PARAMS_ADD_BLIP_SHOUTED_FORCE + // SPEECH_PARAMS_ADD_BLIP_INTERRUPT + // SPEECH_PARAMS_ADD_BLIP_INTERRUPT_FORCE + // SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED + // SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED_CLEAR + // SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED_CRITICAL + // SPEECH_PARAMS_SHOUTED + // SPEECH_PARAMS_SHOUTED_CLEAR + // SPEECH_PARAMS_SHOUTED_CRITICAL + // + // Note: A list of Name and Parameters can be found here https://pastebin.com/1GZS5dCL + // + // Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json + inline Void PlayPedAmbientSpeechNative(Ped ped, String speechName, String speechParam, Any p3) { return _i(0x8E04FEDD28D42462, ped, speechName, speechParam, p3); } // 0x8e04fedd28d424620x5c57b85dB323 + // Plays ambient speech. See also _0x5C57B85D. + // + // See PlayPedAmbientSpeechNative for parameter specifications. + // + // Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json + inline Void PlayPedAmbientSpeechAndCloneNative(Ped ped, String speechName, String speechParam, Any p3) { return _i(0xC6941B4A3A8FBBB9, ped, speechName, speechParam, p3); } // 0xc6941b4a3a8fbbb90x444180dbB323 + // This is the same as PlayPedAmbientSpeechNative and PlayPedAmbientSpeechAndCloneNative but it will allow you to play a speech file from a specific voice file. It works on players and all peds, even animals. + // + // EX (C#): + // GTA.Native.Function.Call(Hash.PlayPedAmbientSpeechWithVoiceNative, Game.Player.Character, "GENERIC_INSULT_HIGH", "s_m_y_sheriff_01_white_full_01", "SPEECH_PARAMS_FORCE_SHOUTED", 0); + // + // The first param is the ped you want to play it on, the second is the speech name, the third is the voice name, the fourth is the speech param, and the last param is usually always 0. + // + // Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json + inline Void PlayPedAmbientSpeechWithVoiceNative(Ped ped, String speechName, String voiceName, String speechParam, BOOL p4) { return _i(0x3523634255FC3318, ped, speechName, voiceName, speechParam, p4); } // 0x3523634255fc33180x8386ae28B323 + // Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json + inline Void PlayAmbientSpeechFromPositionNative(String speechName, String voiceName, float x, float y, float z, String speechParam) { return _i(0xED640017ED337E45, speechName, voiceName, x, y, z, speechParam); } // 0xed640017ed337e450xa1a1402eB323 + // This native enables the audio flag "TrevorRageIsOverridden" and sets the voice effect to `voiceEffect` + inline Void OverrideTrevorRage(String voiceEffect) { return _i(0x13AD665062541A7E, voiceEffect); } // 0x13ad665062541a7e0x05b9b5cfB323 + inline Void ResetTrevorRage() { return _i(0xE78503B10C4314E0); } // 0xe78503b10c4314e00xe80cf0d4B323 + inline Void SetPlayerAngry(Ped ped, BOOL toggle) { return _i(0xEA241BB04110F091, ped, toggle); } // 0xea241bb04110f0910x782ca58dB323 + // Needs another parameter [int p2]. The signature is PED::PlayPain(Ped ped, int painID, int p1, int p2); + // + // Last 2 parameters always seem to be 0. + // + // EX: Function.Call(Hash.PlayPain, TestPed, 6, 0, 0); + // + // Known Pain IDs + // ________________________ + // + // 1 - Doesn't seem to do anything. Does NOT crash the game like previously said. (Latest patch) + // 6 - Scream (Short) + // 7 - Scared Scream (Kinda Long) + // 8 - On Fire + // + inline Void PlayPain(Ped ped, int painID, int p1, Any p3) { return _i(0xBC9AE166038A5CEC, ped, painID, p1, p3); } // 0xbc9ae166038a5cec0x874bd6cbB323 + inline Void ReleaseWeaponAudio() { return _i(0xCE4AC0439F607045); } // 0xce4ac0439f6070450x6096504cB323 + // mode can be any of these: + // SLOWMO_T1_TRAILER_SMASH + // SLOWMO_T1_RAYFIRE_EXPLOSION + // SLOWMO_PROLOGUE_VAULT + // NIGEL_02_SLOWMO_SETTING + // JSH_EXIT_TUNNEL_SLOWMO + // SLOWMO_BIG_SCORE_JUMP + // SLOWMO_FIB4_TRUCK_SMASH + // SLOWMO_EXTREME_04 + // SLOW_MO_METH_HOUSE_RAYFIRE + // BARRY_02_SLOWMO + // BARRY_01_SLOWMO + inline Void ActivateAudioSlowmoMode(String mode) { return _i(0xD01005D2BA2EB778, mode); } // 0xd01005d2ba2eb7780x59a3a17dB323 + // see ActivateAudioSlowmoMode for modes + inline Void DeactivateAudioSlowmoMode(String mode) { return _i(0xDDC635D5B3262C56, mode); } // 0xddc635d5b3262c560x0e387bfeB323 + // Audio List + // gtaforums.com/topic/795622-audio-for-mods/ + // + // All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/FTeAj4yZ + inline Void SetAmbientVoiceName(Ped ped, String name) { return _i(0x6C8065A3B780185B, ped, name); } // 0x6c8065a3b780185b0xbd2ea1a1B323 + inline Void SetAmbientVoiceNameHash(Ped ped, Hash hash) { return _i(0x9A53DED9921DE990, ped, hash); } // 0x9a53ded9921de990B463 + inline Hash GetAmbientVoiceNameHash(Ped ped) { return _i(0x5E203DA2BA15D436, ped); } // 0x5e203da2ba15d436B463 + // Assigns some ambient voice to the ped. + inline Void SetPedVoiceFull(Ped ped) { return _i(0x40CF0D12D142A9E8, ped); } // 0x40cf0d12d142a9e8B323 + inline Void SetPedRaceAndVoiceGroup(Ped ped, int p1, Hash voiceGroup) { return _i(0x1B7ABE26CBCBF8C7, ped, p1, voiceGroup); } // 0x1b7abe26cbcbf8c7B372 + // From the scripts: + // + // AUDIO::SetPedVoiceGroup(PLAYER::PlayerPedId(), MISC::GetHashKey("PAIGE_PVG")); + // AUDIO::SetPedVoiceGroup(PLAYER::PlayerPedId(), MISC::GetHashKey("TALINA_PVG")); + // AUDIO::SetPedVoiceGroup(PLAYER::PlayerPedId(), MISC::GetHashKey("FEMALE_LOST_BLACK_PVG")); + // AUDIO::SetPedVoiceGroup(PLAYER::PlayerPedId(), MISC::GetHashKey("FEMALE_LOST_WHITE_PVG")); + inline Void SetPedVoiceGroup(Ped ped, Hash voiceGroupHash) { return _i(0x7CDC8C3B89F661B3, ped, voiceGroupHash); } // 0x7cdc8c3b89f661b3B323 + // Dat151RelType == 29 + inline Void SetPedVoiceGroupFromRaceToPvg(Ped ped, Hash voiceGroupHash) { return _i(0x0BABC1345ABBFB16, ped, voiceGroupHash); } // 0x0babc1345abbfb16B2699 + // BOOL p1: 0 = Female; 1 = Male + inline Void SetPedGender(Ped ped, BOOL p1) { return _i(0xA5342D390CDA41D6, ped, p1); } // 0xa5342d390cda41d6B323 + inline Void StopCurrentPlayingSpeech(Ped ped) { return _i(0x7A73D05A607734C7, ped); } // 0x7a73d05a607734c70x5b7463f4B323 + inline Void StopCurrentPlayingAmbientSpeech(Ped ped) { return _i(0xB8BEC0CA6F0EDB0F, ped); } // 0xb8bec0ca6f0edb0f0xbb8e64bfB323 + inline BOOL IsAmbientSpeechPlaying(Ped ped) { return _i(0x9072C8B49907BFAD, ped); } // 0x9072c8b49907bfad0x1972e8aaB323 + inline BOOL IsScriptedSpeechPlaying(Ped p0) { return _i(0xCC9AA18DCC7084F4, p0); } // 0xcc9aa18dcc7084f40x2c653904B323 + inline BOOL IsAnySpeechPlaying(Ped ped) { return _i(0x729072355FA39EC9, ped); } // 0x729072355fa39ec90x2b74a6d6B323 + inline BOOL IsAnyPositionalSpeechPlaying() { return _i(0x30CA2EF91D15ADF8); } // 0x30ca2ef91d15adf8B2189 + // Checks if the ped can play the speech or has the speech file, p2 is usually false. + inline BOOL DoesContextExistForThisPed(Ped ped, String speechName, BOOL p2) { return _i(0x49B99BF3FDA89A7A, ped, speechName, p2); } // 0x49b99bf3fda89a7a0x8bd5f11eB323 + inline BOOL IsPedInCurrentConversation(Ped ped) { return _i(0x049E937F18F4020C, ped); } // 0x049e937f18f4020c0x7b2f0743B323 + // Sets the ped drunk sounds. Only works with PlayerPedId + // + // ==================================================== + // + // As mentioned above, this only sets the drunk sound to ped/player. + // + // To give the Ped a drunk effect with drunk walking animation try using SetPedMovementClipset + // + // Below is an example + // + // if (!Function.Call(Hash.HasAnimSetLoaded, "move_m@drunk@verydrunk")) + // { + // Function.Call(Hash.RequestAnimSet, "move_m@drunk@verydrunk"); + // } + // Function.Call(Hash.SetPedMovementClipset, Ped.Handle, "move_m@drunk@verydrunk", 0x3E800000); + // + // + // + // And to stop the effect use + // ResetPedMovementClipset + inline Void SetPedIsDrunk(Ped ped, BOOL toggle) { return _i(0x95D2D383D5396B8A, ped, toggle); } // 0x95d2d383d5396b8a0xd2ea77a3B323 + // Plays sounds from a ped with chop model. For example it used to play bark or sniff sounds. p1 is always 3 or 4294967295 in decompiled scripts. By a quick disassembling I can assume that this arg is unused. + // This native is works only when you call it on the ped with right model (ac_chop only ?) + // Speech Name can be: CHOP_SNIFF_SEQ CHOP_WHINE CHOP_LICKS_MOUTH CHOP_PANT bark GROWL SNARL BARK_SEQ + inline Void PlayAnimalVocalization(Ped pedHandle, int p1, String speechName) { return _i(0xEE066C7006C49C0A, pedHandle, p1, speechName); } // 0xee066c7006c49c0a0x498849f3B323 + inline BOOL IsAnimalVocalizationPlaying(Ped pedHandle) { return _i(0xC265DF9FB44A9FBD, pedHandle); } // 0xc265df9fb44a9fbd0x0cbaf2efB323 + // mood can be 0 or 1 (it's not a boolean value!). Effects audio of the animal. + inline Void SetAnimalMood(Ped animal, int mood) { return _i(0xCC97B29285B1DC3B, animal, mood); } // 0xcc97b29285b1dc3b0x3ea7c6cbB323 + inline BOOL IsMobilePhoneRadioActive() { return _i(0xB35CE999E8EF317E); } // 0xb35ce999e8ef317e0x6e502a5bB323 + inline Void SetMobilePhoneRadioState(BOOL state) { return _i(0xBF286C554784F3DF, state); } // 0xbf286c554784f3df0xe1e0ed34B323 + // Returns 255 (radio off index) if the function fails. + inline int GetPlayerRadioStationIndex() { return _i(0xE8AF77C4C06ADC93); } // 0xe8af77c4c06adc930x1c4946acB323 + // Returns active radio station name + inline String GetPlayerRadioStationName() { return _i(0xF6D733C32076AD03); } // 0xf6d733c32076ad030xd909c107B323 + // Converts radio station index to string. Use HUD::GetFilenameForAudioConversation to get the user-readable text. + inline String GetRadioStationName(int radioStation) { return _i(0xB28ECA15046CA8B9, radioStation); } // 0xb28eca15046ca8b90x3df493bcB323 + inline int GetPlayerRadioStationGenre() { return _i(0xA571991A7FE6CCEB); } // 0xa571991a7fe6cceb0x872cf0eaB323 + inline BOOL IsRadioRetuning() { return _i(0xA151A7394A214E65); } // 0xa151a7394a214e650xcf29097bB323 + inline BOOL IsRadioFadedOut() { return _i(0x0626A247D2405330); } // 0x0626a247d24053300x815cae99B323 + // Tune Forward... + inline Void SetRadioRetuneUp() { return _i(0xFF266D1D0EB1195D); } // 0xff266d1d0eb1195d0x53db6994B323 + // Tune Backwards... + inline Void SetRadioRetuneDown() { return _i(0xDD6BCF9E94425DF9); } // 0xdd6bcf9e94425df90xd70ecc80B323 + // List of radio stations that are in the wheel, in clockwise order, as of LS Tuners DLC: https://git.io/J8a3k + // An older list including hidden radio stations: https://pastebin.com/Kj9t38KF + inline Void SetRadioToStationName(String stationName) { return _i(0xC69EDA28699D5107, stationName); } // 0xc69eda28699d51070x7b36e35eB323 + // List of radio stations that are in the wheel, in clockwise order, as of LS Tuners DLC: https://git.io/J8a3k + // An older list including hidden radio stations: https://pastebin.com/Kj9t38KF + inline Void SetVehRadioStation(Vehicle vehicle, String radioStation) { return _i(0x1B9C0099CB942AC6, vehicle, radioStation); } // 0x1b9c0099cb942ac60xe391f55fB323 + inline Void SetVehHasNormalRadio(Vehicle vehicle) { return _i(0x3E45765F3FBB582F, vehicle); } // 0x3e45765f3fbb582fB2372 + inline BOOL IsVehicleRadioOn(Vehicle vehicle) { return _i(0x0BE4BE946463F917, vehicle); } // 0x0be4be946463f917B505 + inline Void SetVehForcedRadioThisFrame(Vehicle vehicle) { return _i(0xC1805D05E6D4FE10, vehicle); } // 0xc1805d05e6d4fe100x7abb89d2B323 + // Full list of static emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/staticEmitters.json + inline Void SetEmitterRadioStation(String emitterName, String radioStation, Any p2) { return _i(0xACF57305B12AF907, emitterName, radioStation, p2); } // 0xacf57305b12af9070x87431585B323 + // Example: + // AUDIO::SetStaticEmitterEnabled((Any*)"LOS_SANTOS_VANILLA_UNICORN_01_STAGE", false); AUDIO::SetStaticEmitterEnabled((Any*)"LOS_SANTOS_VANILLA_UNICORN_02_MAIN_ROOM", false); AUDIO::SetStaticEmitterEnabled((Any*)"LOS_SANTOS_VANILLA_UNICORN_03_BACK_ROOM", false); + // + // This turns off surrounding sounds not connected directly to peds. + // + // Full list of static emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/staticEmitters.json + inline Void SetStaticEmitterEnabled(String emitterName, BOOL toggle) { return _i(0x399D2D3B33F1B8EB, emitterName, toggle); } // 0x399d2d3b33f1b8eb0x91f72e92B323 + // Full list of static emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/staticEmitters.json + inline Void LinkStaticEmitterToEntity(String emitterName, Entity entity) { return _i(0x651D3228960D08AF, emitterName, entity); } // 0x651d3228960d08afB505 + // Sets radio station by index. + inline Void SetRadioToStationIndex(int radioStation) { return _i(0xA619B168B8A8570F, radioStation); } // 0xa619b168b8a8570f0x1d82766dB323 + inline Void SetFrontendRadioActive(BOOL active) { return _i(0xF7F26C6E9CC9EBB8, active); } // 0xf7f26c6e9cc9ebb80xb1172075B323 + // "news" that play on the radio after you've done something in story mode(?) + inline Void UnlockMissionNewsStory(int newsStory) { return _i(0xB165AB7C248B2DC1, newsStory); } // 0xb165ab7c248b2dc10xccd9abe4B323 + inline BOOL IsMissionNewsStoryUnlocked(int newsStory) { return _i(0x66E49BF55B4B1874, newsStory); } // 0x66e49bf55b4b18740x27305d37B323 + inline int GetAudibleMusicTrackTextId() { return _i(0x50B196FC9ED6545B); } // 0x50b196fc9ed6545b0xa2b88ca7B323 + inline Void PlayEndCreditsMusic(BOOL play) { return _i(0xCD536C4D33DCC900, play); } // 0xcd536c4d33dcc9000x8e88b3ccB323 + inline Void SkipRadioForward() { return _i(0x6DDBBDD98E2E9C25); } // 0x6ddbbdd98e2e9c250x10d36630B323 + inline Void FreezeRadioStation(String radioStation) { return _i(0x344F393B027E38C3, radioStation); } // 0x344f393b027e38c30x286bf543B323 + inline Void UnfreezeRadioStation(String radioStation) { return _i(0xFC00454CF60B91DD, radioStation); } // 0xfc00454cf60b91dd0x4d46202cB323 + inline Void SetRadioAutoUnfreeze(BOOL toggle) { return _i(0xC1AA9F53CE982990, toggle); } // 0xc1aa9f53ce9829900xa40196bfB323 + inline Void SetInitialPlayerStation(String radioStation) { return _i(0x88795F13FACDA88D, radioStation); } // 0x88795f13facda88d0x9b069233B323 + inline Void SetUserRadioControlEnabled(BOOL toggle) { return _i(0x19F21E63AE6EAE4E, toggle); } // 0x19f21e63ae6eae4e0x52e054ceB323 + // Only found this one in the decompiled scripts: + // + // AUDIO::SetRadioTrack("RADIO_03_HIPHOP_NEW", "ARM1_RADIO_STARTS"); + // + inline Void SetRadioTrack(String radioStation, String radioTrack) { return _i(0xB39786F201FEE30B, radioStation, radioTrack); } // 0xb39786f201fee30b0x76e96212B323 + inline Void SetRadioTrackWithStartOffset(String radioStationName, String mixName, int p2) { return _i(0x2CB0075110BE1E56, radioStationName, mixName, p2); } // 0x2cb0075110be1e56B1493 + inline Void SetNextRadioTrack(String radioName, String radioTrack, String p2, String p3) { return _i(0x55ECF4D13D9903B0, radioName, radioTrack, p2, p3); } // 0x55ecf4d13d9903b0B1868 + inline Void SetVehicleRadioLoud(Vehicle vehicle, BOOL toggle) { return _i(0xBB6F1CAEC68B0BCE, vehicle, toggle); } // 0xbb6f1caec68b0bce0x8d9edd99B323 + inline BOOL CanVehicleReceiveCbRadio(Vehicle vehicle) { return _i(0x032A116663A4D5AC, vehicle); } // 0x032a116663a4d5ac0xcba99f4aB323 + inline Void SetMobileRadioEnabledDuringGameplay(BOOL toggle) { return _i(0x1098355A16064BB3, toggle); } // 0x1098355a16064bb30x990085f0B323 + inline BOOL DoesPlayerVehHaveRadio() { return _i(0x109697E2FFBAC8A1); } // 0x109697e2ffbac8a10x46b0c696B323 + inline BOOL IsPlayerVehRadioEnable() { return _i(0x5F43D83FD6738741); } // 0x5f43d83fd67387410x2a3e5e8bB323 + // can't seem to enable radio on cop cars etc + inline Void SetVehicleRadioEnabled(Vehicle vehicle, BOOL toggle) { return _i(0x3B988190C0AA6C0B, vehicle, toggle); } // 0x3b988190c0aa6c0b0x6f812cabB323 + inline Void SetPositionedPlayerVehicleRadioEmitterEnabled(Any p0) { return _i(0xDA07819E452FFE8F, p0); } // 0xda07819e452ffe8fB505 + // Examples: + // + // AUDIO::SetCustomRadioTrackList("RADIO_01_CLASS_ROCK", "END_CREDITS_KILL_MICHAEL", 1); + // AUDIO::SetCustomRadioTrackList("RADIO_01_CLASS_ROCK", "END_CREDITS_KILL_MICHAEL", 1); + // AUDIO::SetCustomRadioTrackList("RADIO_01_CLASS_ROCK", "END_CREDITS_KILL_TREVOR", 1); + // AUDIO::SetCustomRadioTrackList("RADIO_01_CLASS_ROCK", "END_CREDITS_SAVE_MICHAEL_TREVOR", 1); + // AUDIO::SetCustomRadioTrackList("RADIO_01_CLASS_ROCK", "OFF_ROAD_RADIO_ROCK_LIST", 1); + // AUDIO::SetCustomRadioTrackList("RADIO_06_COUNTRY", "MAGDEMO2_RADIO_DINGHY", 1); + // AUDIO::SetCustomRadioTrackList("RADIO_16_SILVERLAKE", "SEA_RACE_RADIO_PLAYLIST", 1); + // AUDIO::SetCustomRadioTrackList("RADIO_01_CLASS_ROCK", "OFF_ROAD_RADIO_ROCK_LIST", 1); + inline Void SetCustomRadioTrackList(String radioStation, String trackListName, BOOL p2) { return _i(0x4E404A9361F75BB2, radioStation, trackListName, p2); } // 0x4e404a9361f75bb20x128c3873B323 + // 3 calls in the b617d scripts, removed duplicate. + // + // AUDIO::ClearCustomRadioTrackList("RADIO_16_SILVERLAKE"); + // AUDIO::ClearCustomRadioTrackList("RADIO_01_CLASS_ROCK"); + inline Void ClearCustomRadioTrackList(String radioStation) { return _i(0x1654F24A88A8E3FE, radioStation); } // 0x1654f24a88a8e3fe0x1d766976B323 + inline int GetNumUnlockedRadioStations() { return _i(0xF1620ECB50E01DE7); } // 0xf1620ecb50e01de70xcc91fcf5B323 + inline int FindRadioStationIndex(Hash stationNameHash) { return _i(0x8D67489793FF428B, stationNameHash); } // 0x8d67489793ff428b0xeca1512fB323 + // 6 calls in the b617d scripts, removed identical lines: + // + // AUDIO::SetRadioStationMusicOnly("RADIO_01_CLASS_ROCK", 1); + // AUDIO::SetRadioStationMusicOnly(AUDIO::GetRadioStationName(10), 0); + // AUDIO::SetRadioStationMusicOnly(AUDIO::GetRadioStationName(10), 1); + inline Void SetRadioStationMusicOnly(String radioStation, BOOL toggle) { return _i(0x774BD811F656A122, radioStation, toggle); } // 0x774bd811f656a1220xb1ff7137B323 + inline Void SetRadioFrontendFadeTime(float fadeTime) { return _i(0x2C96CDB04FCA358E, fadeTime); } // 0x2c96cdb04fca358e0xc8b514e2B323 + // AUDIO::UnlockRadioStationTrackList("RADIO_16_SILVERLAKE", "MIRRORPARK_LOCKED"); + inline Void UnlockRadioStationTrackList(String radioStation, String trackListName) { return _i(0x031ACB6ABA18C729, radioStation, trackListName); } // 0x031acb6aba18c7290xbe998184B323 + inline Void LockRadioStationTrackList(String radioStation, String trackListName) { return _i(0xFF5E5EA2DCEEACF3, radioStation, trackListName); } // 0xff5e5ea2dceeacf3B2372 + // Just a nullsub (i.e. does absolutely nothing) since build 1604. + inline Void UpdateUnlockableDjRadioTracks(BOOL enableMixes) { return _i(0x47AED84213A47510, enableMixes); } // 0x47aed84213a47510B1493 + // Disables the radio station (hides it from the radio wheel). + inline Void LockRadioStation(String radioStationName, BOOL toggle) { return _i(0x477D9DB48F889591, radioStationName, toggle); } // 0x477d9db48f889591B1493 + // Doesn't have an effect in Story Mode. + inline Void SetRadioStationAsFavourite(String radioStation, BOOL toggle) { return _i(0x4CAFEBFA21EC188D, radioStation, toggle); } // 0x4cafebfa21ec188dB2372 + inline BOOL IsRadioStationFavourited(String radioStation) { return _i(0x2B1784DB08AFEA79, radioStation); } // 0x2b1784db08afea79B2699 + inline BOOL GetNextAudibleBeat(float* out1, float* out2, int* out3) { return _i(0xC64A06D939F826F5, out1, out2, out3); } // 0xc64a06d939f826f5B1493 + // Changes start time of a tracklist (milliseconds) + // R* uses a random int: MISC::GetRandomIntInRange(0, 13) * 60000) + inline Void ForceMusicTrackList(String radioStation, String trackListName, int milliseconds) { return _i(0x4E0AF9114608257C, radioStation, trackListName, milliseconds); } // 0x4e0af9114608257cB2372 + inline int GetCurrentTrackPlayTime(String radioStationName) { return _i(0x3E65CDE5215832C1, radioStationName); } // 0x3e65cde5215832c1B1493 + inline Hash GetCurrentTrackSoundName(String radioStationName) { return _i(0x34D66BC058019CE0, radioStationName); } // 0x34d66bc058019ce0B1493 + inline Void SetVehicleMissileWarningEnabled(Vehicle vehicle, BOOL toggle) { return _i(0xF3365489E0DD50F9, vehicle, toggle); } // 0xf3365489e0dd50f90x8afc488dB323 + // Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json + inline Void SetAmbientZoneState(String zoneName, BOOL p1, BOOL p2) { return _i(0xBDA07E5950085E46, zoneName, p1, p2); } // 0xbda07e5950085e460x2849cac9B323 + // This function also has a p2, unknown. Signature AUDIO::ClearAmbientZoneState(String zoneName, BOOL p1, Any p2); + // + // Still needs more research. + // + // Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json + inline Void ClearAmbientZoneState(String zoneName, BOOL p1) { return _i(0x218DD44AAAC964FF, zoneName, p1); } // 0x218dd44aaac964ff0xcdff3c82B323 + inline Void SetAmbientZoneListState(String ambientZone, BOOL p1, BOOL p2) { return _i(0x9748FA4DE50CCE3E, ambientZone, p1, p2); } // 0x9748fa4de50cce3e0xbf80b412B323 + inline Void ClearAmbientZoneListState(String ambientZone, BOOL p1) { return _i(0x120C48C614909FA4, ambientZone, p1); } // 0x120c48c614909fa40x38b9b8d4B323 + // Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json + inline Void SetAmbientZoneStatePersistent(String ambientZone, BOOL p1, BOOL p2) { return _i(0x1D6650420CEC9D3B, ambientZone, p1, p2); } // 0x1d6650420cec9d3b0xc1ffb672B323 + // Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json + inline Void SetAmbientZoneListStatePersistent(String ambientZone, BOOL p1, BOOL p2) { return _i(0xF3638DAE8C4045E1, ambientZone, p1, p2); } // 0xf3638dae8c4045e10x5f5a2605B323 + // Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json + inline BOOL IsAmbientZoneEnabled(String ambientZone) { return _i(0x01E2817A479A7F9B, ambientZone); } // 0x01e2817a479a7f9b0xbfabd872B323 + inline Void RefreshClosestOceanShoreline() { return _i(0x5D2BFAAB8D956E0E); } // 0x5d2bfaab8d956e0eB573 + // All occurrences found in b617d, sorted alphabetically and identical lines removed: + // + // AUDIO::SetCutsceneAudioOverride("_AK"); + // AUDIO::SetCutsceneAudioOverride("_CUSTOM"); + // AUDIO::SetCutsceneAudioOverride("_TOOTHLESS"); + // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json + inline Void SetCutsceneAudioOverride(String name) { return _i(0x3B4BF5F0859204D9, name); } // 0x3b4bf5f0859204d90xce1332b7B323 + inline Void SetVariableOnSynchSceneAudio(String variableName, float value) { return _i(0xBCC29F935ED07688, variableName, value); } // 0xbcc29f935ed076880xd63cf33aB323 + // Plays the given police radio message. + // + // All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/GBnsQ5hr + // Full list of police report names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/policeReportNames.json + inline int PlayPoliceReport(String name, float p1) { return _i(0xDFEBD56D9BD1EB16, name, p1); } // 0xdfebd56d9bd1eb160x3f277b62B323 + inline Void CancelAllPoliceReports() { return _i(0xB4F90FAF7670B16F); } // 0xb4f90faf7670b16fB323 + // Plays the siren sound of a vehicle which is otherwise activated when fastly double-pressing the horn key. + // Only works on vehicles with a police siren. + inline Void BlipSiren(Vehicle vehicle) { return _i(0x1B9025BDA76822B6, vehicle); } // 0x1b9025bda76822b60xc0eb6924B323 + // Overrides the vehicle's horn hash. + // When changing this hash on a vehicle, it will not return the 'overwritten' hash. It will still always return the default horn hash (same as GetVehicleDefaultHorn) + // + // vehicle - the vehicle whose horn should be overwritten + // mute - p1 seems to be an option for muting the horn + // p2 - maybe a horn id, since the function AUDIO::GetVehicleDefaultHorn(veh) exists? + inline Void OverrideVehHorn(Vehicle vehicle, BOOL override, int hornHash) { return _i(0x3CDC1E622CCE0356, vehicle, override, hornHash); } // 0x3cdc1e622cce03560x2acab783B323 + // Checks whether the horn of a vehicle is currently played. + inline BOOL IsHornActive(Vehicle vehicle) { return _i(0x9D6BFC12B05C6121, vehicle); } // 0x9d6bfc12b05c61210x20e2bdd0B323 + // Makes pedestrians sound their horn longer, faster and more agressive when they use their horn. + inline Void SetAggressiveHorns(BOOL toggle) { return _i(0x395BF71085D1B1D9, toggle); } // 0x395bf71085d1b1d90x01d6eabeB323 + // Does nothing (it's a nullsub). + inline Void SetRadioPositionAudioMute(BOOL p0) { return _i(0x02E93C796ABD3A97, p0); } // 0x02e93c796abd3a970x3c395aeeB323 + // SetVehicleConversationsPersist? + inline Void SetVehicleConversationsPersist(BOOL p0, BOOL p1) { return _i(0x58BB377BEC7CD5F4, p0, p1); } // 0x58bb377bec7cd5f40x8ce63fa1B323 + inline Void SetVehicleConversationsPersistNew(BOOL p0, BOOL p1, BOOL p2) { return _i(0x9BD7BD55E4533183, p0, p1, p2); } // 0x9bd7bd55e4533183B1290 + inline BOOL IsStreamPlaying() { return _i(0xD11FA52EB849D978); } // 0xd11fa52eb849d9780xf1f51a14B323 + inline int GetStreamPlayTime() { return _i(0x4E72BBDBCA58A3DB); } // 0x4e72bbdbca58a3db0xb4f0ad56B323 + // Example: + // AUDIO::LoadStream("CAR_STEAL_1_PASSBY", "CAR_STEAL_1_SOUNDSET"); + // + // All found occurrences in the b678d decompiled scripts: https://pastebin.com/3rma6w5w + // + // Stream names often ends with "_MASTER", "_SMALL" or "_STREAM". Also "_IN", "_OUT" and numbers. + // + // soundSet is often set to 0 in the scripts. These are common to end the soundSets: "_SOUNDS", "_SOUNDSET" and numbers. + // + // Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json + inline BOOL LoadStream(String streamName, String soundSet) { return _i(0x1F1F957154EC51DF, streamName, soundSet); } // 0x1f1f957154ec51df0x0d89599dB323 + // Example: + // AUDIO::LoadStreamWithStartOffset("STASH_TOXIN_STREAM", 2400, "FBI_05_SOUNDS"); + // + // Only called a few times in the scripts. + // + // Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json + inline BOOL LoadStreamWithStartOffset(String streamName, int startOffset, String soundSet) { return _i(0x59C16B79F53B3712, streamName, startOffset, soundSet); } // 0x59c16b79f53b37120xe5b5745cB323 + inline Void PlayStreamFromPed(Ped ped) { return _i(0x89049DD63C08B5D1, ped); } // 0x89049dd63c08b5d10xa1d7fabeB323 + inline Void PlayStreamFromVehicle(Vehicle vehicle) { return _i(0xB70374A758007DFA, vehicle); } // 0xb70374a758007dfa0xf8e4bda2B323 + // Used with AUDIO::LoadStream + // + // Example from finale_heist2b.c4: + // TASK::TaskSynchronizedScene(l_4C8[2/*14*/], l_4C8[2/*14*/]._f7, l_30A, "push_out_vault_l", 4.0, -1.5, 5, 713, 4.0, 0); + // PED::SetSynchronizedScenePhase(l_4C8[2/*14*/]._f7, 0.0); + // PED::ForcePedAiAndAnimationUpdate(l_4C8[2/*14*/], 0, 0); + // PED::SetPedCombatAttributes(l_4C8[2/*14*/], 38, 1); + // PED::SetBlockingOfNonTemporaryEvents(l_4C8[2/*14*/], 1); + // if (AUDIO::LoadStream("Gold_Cart_Push_Anim_01", "BIG_SCORE_3B_SOUNDS")) { + // AUDIO::PlayStreamFromObject(l_36F[0/*1*/]); + // } + inline Void PlayStreamFromObject(Object object) { return _i(0xEBAA9B64D76356FD, object); } // 0xebaa9b64d76356fd0xc5266bf7B323 + inline Void PlayStreamFrontend() { return _i(0x58FCE43488F9F5F4); } // 0x58fce43488f9f5f40x2c2a16bcB323 + inline Void PlayStreamFromPosition(float x, float y, float z) { return _i(0x21442F412E8DE56B, x, y, z); } // 0x21442f412e8de56b0x6fe5d865B323 + inline Void StopStream() { return _i(0xA4718A1419D18151); } // 0xa4718a1419d181510xd1e364deB323 + inline Void StopPedSpeaking(Ped ped, BOOL shaking) { return _i(0x9D64D7405520E3D3, ped, shaking); } // 0x9d64d7405520e3d30xff92b49dB323 + inline Void BlockAllSpeechFromPed(Ped ped, BOOL p1, BOOL p2) { return _i(0xF8AD2EED7C47E8FE, ped, p1, p2); } // 0xf8ad2eed7c47e8feB1734 + inline Void StopPedSpeakingSynced(Ped ped, BOOL p1) { return _i(0xAB6781A5F3101470, ped, p1); } // 0xab6781a5f3101470B1868 + inline Void DisablePedPainAudio(Ped ped, BOOL toggle) { return _i(0xA9A41C1E940FB0E8, ped, toggle); } // 0xa9a41c1e940fb0e80x3b8e2d5fB323 + // Common in the scripts: + // AUDIO::IsAmbientSpeechDisabled(PLAYER::PlayerPedId()); + inline BOOL IsAmbientSpeechDisabled(Ped ped) { return _i(0x932C2D096A2C3FFF, ped); } // 0x932c2d096a2c3fff0x109d1f89B323 + inline Void BlockSpeechContextGroup(String p0, int p1) { return _i(0xA8A7D434AFB4B97B, p0, p1); } // 0xa8a7d434afb4b97bB1493 + inline Void UnblockSpeechContextGroup(String p0) { return _i(0x2ACABED337622DF2, p0); } // 0x2acabed337622df2B1493 + inline Void SetSirenWithNoDriver(Vehicle vehicle, BOOL toggle) { return _i(0x1FEF0683B96EBCF2, vehicle, toggle); } // 0x1fef0683b96ebcf20x77182d58B323 + inline Void SetSirenBypassMpDriverCheck(Vehicle vehicle, BOOL toggle) { return _i(0xF584CF8529B51434, vehicle, toggle); } // 0xf584cf8529b51434B2372 + inline Void TriggerSirenAudio(Vehicle vehicle) { return _i(0x66C3FB05206041BA, vehicle); } // 0x66c3fb05206041baB1290 + inline Void SetHornPermanentlyOn(Vehicle vehicle) { return _i(0x9C11908013EA4715, vehicle); } // 0x9c11908013ea47150xde8ba3cdB323 + inline Void SetHornEnabled(Vehicle vehicle, BOOL toggle) { return _i(0x76D683C108594D0E, vehicle, toggle); } // 0x76d683c108594d0e0x6eb92d05B323 + inline Void SetAudioVehiclePriority(Vehicle vehicle, Any p1) { return _i(0xE5564483E407F914, vehicle, p1); } // 0xe5564483e407f9140x271a9766B323 + inline Void SetHornPermanentlyOnTime(Vehicle vehicle, float time) { return _i(0x9D3AF56E94C9AE98, vehicle, time); } // 0x9d3af56e94c9ae980x2f0a16d1B323 + inline Void UseSirenAsHorn(Vehicle vehicle, BOOL toggle) { return _i(0xFA932DE350266EF8, vehicle, toggle); } // 0xfa932de350266ef80xc6bc16f3B323 + // This native sets the audio of the specified vehicle to the audioName (p1). + // + // Use the audioNameHash found in vehicles.meta + // + // Example: + // _SET_VEHICLE_AUDIO(veh, "ADDER"); + // The selected vehicle will now have the audio of the Adder. + inline Void ForceUseAudioGameObject(Vehicle vehicle, String audioName) { return _i(0x4F0C413926060B38, vehicle, audioName); } // 0x4f0c413926060b380x33b0b007B323 + inline Void PreloadVehicleAudioBank(Hash vehicleModel) { return _i(0xCA4CEA6AE0000A7E, vehicleModel); } // 0xca4cea6ae0000a7eB1180 + inline Void SetVehicleStartupRevSound(Vehicle vehicle, String p1, String p2) { return _i(0xF1F8157B8C3F171C, vehicle, p1, p2); } // 0xf1f8157b8c3f171c0x1c0c5e4cB323 + inline Void ResetVehicleStartupRevSound(Vehicle vehicle) { return _i(0xD2DCCD8E16E20997, vehicle); } // 0xd2dccd8e16e20997B323 + inline Void SetVehicleForceReverseWarning(Any p0, Any p1) { return _i(0x97FFB4ADEED08066, p0, p1); } // 0x97ffb4adeed08066B2372 + inline BOOL IsVehicleAudiblyDamaged(Vehicle vehicle) { return _i(0x5DB8010EE71FDEF2, vehicle); } // 0x5db8010ee71fdef20x6e660d3fB323 + inline Void SetVehicleAudioEngineDamageFactor(Vehicle vehicle, float damageFactor) { return _i(0x59E7B488451F4D3A, vehicle, damageFactor); } // 0x59e7b488451f4d3a0x23be6432B323 + // intensity: 0.0f - 1.0f, only used once with 1.0f in R* Scripts (nigel2) + // Makes an engine rattling noise when you decelerate, you need to be going faster to hear lower values + inline Void SetVehicleAudioBodyDamageFactor(Vehicle vehicle, float intensity) { return _i(0x01BB4D577D38BD9E, vehicle, intensity); } // 0x01bb4d577d38bd9e0xe81fac68B323 + inline Void EnableVehicleFanbeltDamage(Vehicle vehicle, BOOL toggle) { return _i(0x1C073274E065C6D2, vehicle, toggle); } // 0x1c073274e065c6d20x9365e042B323 + inline Void EnableVehicleExhaustPops(Vehicle vehicle, BOOL toggle) { return _i(0x2BE4BC731D039D5A, vehicle, toggle); } // 0x2be4bc731d039d5a0x2a60a90eB323 + // SetVehicleBoostActive(vehicle, 1, 0); + // SetVehicleBoostActive(vehicle, 0, 0); + // + // Will give a boost-soundeffect. + inline Void SetVehicleBoostActive(Vehicle vehicle, BOOL toggle) { return _i(0x4A04DE7CAB2739A1, vehicle, toggle); } // 0x4a04de7cab2739a10x072f15f2B323 + inline Void SetPlayerVehicleAlarmAudioActive(Vehicle vehicle, BOOL toggle) { return _i(0x6FDDAD856E36988A, vehicle, toggle); } // 0x6fddad856e36988a0x934be749B323 + inline Void SetScriptUpdateDoorAudio(Hash doorHash, BOOL toggle) { return _i(0x06C0023BED16DD6B, doorHash, toggle); } // 0x06c0023bed16dd6b0xe61110a2B323 + // doorId: see SetVehicleDoorShut + inline Void PlayVehicleDoorOpenSound(Vehicle vehicle, int doorId) { return _i(0x3A539D52857EA82D, vehicle, doorId); } // 0x3a539d52857ea82d0x84930330B323 + // doorId: see SetVehicleDoorShut + inline Void PlayVehicleDoorCloseSound(Vehicle vehicle, int doorId) { return _i(0x62A456AA4769EF34, vehicle, doorId); } // 0x62a456aa4769ef340xba2cf407B323 + // Works for planes only. + inline Void EnableStallWarningSounds(Vehicle vehicle, BOOL toggle) { return _i(0xC15907D667F7CFB2, vehicle, toggle); } // 0xc15907d667f7cfb20x563b635dB323 + inline Void EnableDragRaceStationaryWarningSounds(Vehicle vehicle, BOOL enable) { return _i(0xBEFB80290414FD4F, vehicle, enable); } // 0xbefb80290414fd4fB3095 + // Hardcoded to return 1 + inline BOOL IsGameInControlOfMusic() { return _i(0x6D28DC1671E334FD); } // 0x6d28dc1671e334fd0x7643170dB323 + inline Void SetGpsActive(BOOL active) { return _i(0x3BD3F52BA9B1E4E8, active); } // 0x3bd3f52ba9b1e4e80x0fc3379aB323 + // Called 38 times in the scripts. There are 5 different audioNames used. + // One unknown removed below. + // + // AUDIO::PlayMissionCompleteAudio("DEAD"); + // AUDIO::PlayMissionCompleteAudio("FRANKLIN_BIG_01"); + // AUDIO::PlayMissionCompleteAudio("GENERIC_FAILED"); + // AUDIO::PlayMissionCompleteAudio("TREVOR_SMALL_01"); + inline Void PlayMissionCompleteAudio(String audioName) { return _i(0xB138AAB8A70D3C69, audioName); } // 0xb138aab8a70d3c690x3033ea1dB323 + inline BOOL IsMissionCompletePlaying() { return _i(0x19A30C23F5827F8A); } // 0x19a30c23f5827f8a0x939982a1B323 + inline BOOL IsMissionCompleteReadyForUi() { return _i(0x6F259F82D873B8B8); } // 0x6f259f82d873b8b80xcbe09aecB323 + inline Void BlockDeathJingle(BOOL toggle) { return _i(0xF154B8D1775B2DEC, toggle); } // 0xf154b8d1775b2dec0xd2858d8aB323 + // Used to prepare a scene where the surrounding sound is muted or a bit changed. This does not play any sound. + // + // List of all usable scene names found in b617d. Sorted alphabetically and identical names removed: https://pastebin.com/MtM9N9CC + // Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json + inline BOOL StartAudioScene(String scene) { return _i(0x013A80FC08F6E4F2, scene); } // 0x013a80fc08f6e4f20xe48d757bB323 + // Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json + inline Void StopAudioScene(String scene) { return _i(0xDFE8422B3B94E688, scene); } // 0xdfe8422b3b94e6880xa08d8c58B323 + // ?? + inline Void StopAudioScenes() { return _i(0xBAC7FC81A75EC1A1); } // 0xbac7fc81a75ec1a10xf6c7342aB323 + // Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json + inline BOOL IsAudioSceneActive(String scene) { return _i(0xB65B60556E2A9225, scene); } // 0xb65b60556e2a92250xacbed05cB323 + // Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json + inline Void SetAudioSceneVariable(String scene, String variable, float value) { return _i(0xEF21A9EF089A2668, scene, variable, value); } // 0xef21a9ef089a26680x19bb3ce8B323 + inline Void SetAudioScriptCleanupTime(int time) { return _i(0xA5F377B175A699C5, time); } // 0xa5f377b175a699c50xe812925dB323 + // All found occurrences in b678d: + // https://pastebin.com/ceu67jz8 + inline Void AddEntityToAudioMixGroup(Entity entity, String groupName, float p2) { return _i(0x153973AB99FE8980, entity, groupName, p2); } // 0x153973ab99fe89800x2bc93264B323 + inline Void RemoveEntityFromAudioMixGroup(Entity entity, float p1) { return _i(0x18EB48CFC41F2EA0, entity, p1); } // 0x18eb48cfc41f2ea00x308ed0ecB323 + inline BOOL AudioIsMusicPlaying() { return _i(0x845FFC3A4FEEFA3E); } // 0x845ffc3a4feefa3eB323 + // This is an alias of AudioIsMusicPlaying. + inline BOOL AudioIsScriptedMusicPlaying() { return _i(0x2DD39BF3E2F9C47F); } // 0x2dd39bf3e2f9c47fB463 + // All music event names found in the b617d scripts: https://pastebin.com/GnYt0R3P + // Full list of music event names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/musicEventNames.json + inline BOOL PrepareMusicEvent(String eventName) { return _i(0x1E5185B72EF5158A, eventName); } // 0x1e5185b72ef5158a0x534a5c1cB323 + // All music event names found in the b617d scripts: https://pastebin.com/GnYt0R3P + // Full list of music event names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/musicEventNames.json + inline BOOL CancelMusicEvent(String eventName) { return _i(0x5B17A90291133DA5, eventName); } // 0x5b17a90291133da50x89ff942dB323 + // List of all usable event names found in b617d used with this native. Sorted alphabetically and identical names removed: https://pastebin.com/RzDFmB1W + // + // All music event names found in the b617d scripts: https://pastebin.com/GnYt0R3P + // Full list of music event names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/musicEventNames.json + inline BOOL TriggerMusicEvent(String eventName) { return _i(0x706D57B0F50DA710, eventName); } // 0x706d57b0f50da7100xb6094948B323 + inline BOOL IsMusicOneshotPlaying() { return _i(0xA097AB275061FB21); } // 0xa097ab275061fb210x2705c4d5B323 + inline int GetMusicPlaytime() { return _i(0xE7A0D23DC414507B); } // 0xe7a0d23dc414507b0xd633c809B323 + inline Void SetGlobalRadioSignalLevel(Any p0) { return _i(0x159B7318403A1CD8, p0); } // 0x159b7318403a1cd8B1103 + inline Void RecordBrokenGlass(float x, float y, float z, float radius) { return _i(0xFBE20329593DEC9D, x, y, z, radius); } // 0xfbe20329593dec9d0x53fc3fecB323 + inline Void ClearAllBrokenGlass() { return _i(0xB32209EFFDC04913); } // 0xb32209effdc049130xe6b033bfB323 + inline Void ScriptOverridesWindElevation(BOOL p0, Any p1) { return _i(0x70B8EC8FC108A634, p0, p1); } // 0x70b8ec8fc108a6340x95050cadB323 + inline Void SetPedWallaDensity(float p0, float p1) { return _i(0x149AEE66F0CB3A99, p0, p1); } // 0x149aee66f0cb3a990xe64f97a0B323 + inline Void SetPedInteriorWallaDensity(float p0, float p1) { return _i(0x8BF907833BE275DE, p0, p1); } // 0x8bf907833be275de0x2cd26d69B323 + inline Void ForcePedPanicWalla() { return _i(0x062D5EAD4DA2FA6A); } // 0x062d5ead4da2fa6a0xd87af337B323 + // Example: + // + // BOOL prepareAlarm = AUDIO::PrepareAlarm("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS"); + // Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json + inline BOOL PrepareAlarm(String alarmName) { return _i(0x9D74AE343DB65533, alarmName); } // 0x9d74ae343db655330x084932e8B323 + // Example: + // + // This will start the alarm at Fort Zancudo. + // + // AUDIO::StartAlarm("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS", 1); + // + // First parameter (char) is the name of the alarm. + // Second parameter (BOOL) is unknown, it does not seem to make a difference if this one is 0 or 1. + // + // ---------- + // + // It DOES make a difference but it has to do with the duration or something I dunno yet + // + // ---------- + // + // Found in the b617d scripts: + // + // AUDIO::StartAlarm("AGENCY_HEIST_FIB_TOWER_ALARMS", 0); + // AUDIO::StartAlarm("AGENCY_HEIST_FIB_TOWER_ALARMS_UPPER", 1); + // AUDIO::StartAlarm("AGENCY_HEIST_FIB_TOWER_ALARMS_UPPER_B", 0); + // AUDIO::StartAlarm("BIG_SCORE_HEIST_VAULT_ALARMS", a_0); + // AUDIO::StartAlarm("FBI_01_MORGUE_ALARMS", 1); + // AUDIO::StartAlarm("FIB_05_BIOTECH_LAB_ALARMS", 0); + // AUDIO::StartAlarm("JEWEL_STORE_HEIST_ALARMS", 0); + // AUDIO::StartAlarm("PALETO_BAY_SCORE_ALARM", 1); + // AUDIO::StartAlarm("PALETO_BAY_SCORE_CHICKEN_FACTORY_ALARM", 0); + // AUDIO::StartAlarm("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS", 1); + // AUDIO::StartAlarm("PORT_OF_LS_HEIST_SHIP_ALARMS", 0); + // AUDIO::StartAlarm("PRISON_ALARMS", 0); + // AUDIO::StartAlarm("PROLOGUE_VAULT_ALARMS", 0); + // Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json + inline Void StartAlarm(String alarmName, BOOL p2) { return _i(0x0355EF116C4C97B2, alarmName, p2); } // 0x0355ef116c4c97b20x703f524bB323 + // Example: + // + // This will stop the alarm at Fort Zancudo. + // + // AUDIO::StopAlarm("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS", 1); + // + // First parameter (char) is the name of the alarm. + // Second parameter (BOOL) has to be true (1) to have any effect. + // Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json + inline Void StopAlarm(String alarmName, BOOL toggle) { return _i(0xA1CADDCD98415A41, alarmName, toggle); } // 0xa1caddcd98415a410xf987be8cB323 + inline Void StopAllAlarms(BOOL stop) { return _i(0x2F794A877ADD4C92, stop); } // 0x2f794a877add4c920xc3cb9dc6B323 + // Example: + // + // BOOL playing = AUDIO::IsAlarmPlaying("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS"); + // Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json + inline BOOL IsAlarmPlaying(String alarmName) { return _i(0x226435CB96CCFC8C, alarmName); } // 0x226435cb96ccfc8c0x9d8e1d23B323 + // Returns hash of default vehicle horn + // + // Hash is stored in audVehicleAudioEntity + inline Hash GetVehicleDefaultHorn(Vehicle vehicle) { return _i(0x02165D55000219AC, vehicle); } // 0x02165d55000219ac0xe84abc19B323 + inline Hash GetVehicleDefaultHornIgnoreMods(Vehicle vehicle) { return _i(0xACB5DCCA1EC76840, vehicle); } // 0xacb5dcca1ec768400xfd4b5b3bB323 + inline Void ResetPedAudioFlags(Ped ped) { return _i(0xF54BB7B61036F335, ped); } // 0xf54bb7b61036f3350xdf720c86B323 + // Enables/disables ped's "loud" footstep sound. + inline Void SetPedFootstepsEventsEnabled(Ped ped, BOOL toggle) { return _i(0x0653B735BFBDFE87, ped, toggle); } // 0x0653b735bfbdfe87B1493 + // Enables/disables ped's "quiet" footstep sound. + inline Void SetPedClothEventsEnabled(Ped ped, BOOL toggle) { return _i(0x29DA3CA8D8B2692D, ped, toggle); } // 0x29da3ca8d8b2692dB1493 + // Sets audio flag "OverridePlayerGroundMaterial" + inline Void OverridePlayerGroundMaterial(Hash hash, BOOL toggle) { return _i(0xD2CC78CD3D0B50F9, hash, toggle); } // 0xd2cc78cd3d0b50f90xc307d531B323 + inline Void UseFootstepScriptSweeteners(Ped ped, BOOL p1, Hash hash) { return _i(0xBF4DC1784BE94DFA, ped, p1, hash); } // 0xbf4dc1784be94dfa0xd99e275bB323 + // Sets audio flag "OverrideMicrophoneSettings" + inline Void OverrideMicrophoneSettings(Hash hash, BOOL toggle) { return _i(0x75773E11BA459E90, hash, toggle); } // 0x75773e11ba459e90B323 + inline Void FreezeMicrophone() { return _i(0xD57AAAE0E2214D11); } // 0xd57aaae0e2214d110x2b9d91e8B323 + // If value is set to true, and ambient siren sound will be played. + // Appears to enable/disable an audio flag. + inline Void DistantCopCarSirens(BOOL value) { return _i(0x552369F549563AD5, value); } // 0x552369f549563ad50x13eb5861B323 + inline Void SetSirenCanBeControlledByAudio(Vehicle vehicle, BOOL p1) { return _i(0x43FA0DFC5DF87815, vehicle, p1); } // 0x43fa0dfc5df878150x7bed1872B323 + inline Void EnableStuntJumpAudio() { return _i(0xB81CF134AEB56FFB); } // 0xb81cf134aeb56ffbB791 + // Possible flag names: + // "ActivateSwitchWheelAudio" + // "AllowAmbientSpeechInSlowMo" + // "AllowCutsceneOverScreenFade" + // "AllowForceRadioAfterRetune" + // "AllowPainAndAmbientSpeechToPlayDuringCutscene" + // "AllowPlayerAIOnMission" + // "AllowPoliceScannerWhenPlayerHasNoControl" + // "AllowRadioDuringSwitch" + // "AllowRadioOverScreenFade" + // "AllowScoreAndRadio" + // "AllowScriptedSpeechInSlowMo" + // "AvoidMissionCompleteDelay" + // "DisableAbortConversationForDeathAndInjury" + // "DisableAbortConversationForRagdoll" + // "DisableBarks" + // "DisableFlightMusic" + // "DisableReplayScriptStreamRecording" + // "EnableHeadsetBeep" + // "ForceConversationInterrupt" + // "ForceSeamlessRadioSwitch" + // "ForceSniperAudio" + // "FrontendRadioDisabled" + // "HoldMissionCompleteWhenPrepared" + // "IsDirectorModeActive" + // "IsPlayerOnMissionForSpeech" + // "ListenerReverbDisabled" + // "LoadMPData" + // "MobileRadioInGame" + // "OnlyAllowScriptTriggerPoliceScanner" + // "PlayMenuMusic" + // "PoliceScannerDisabled" + // "ScriptedConvListenerMaySpeak" + // "SpeechDucksScore" + // "SuppressPlayerScubaBreathing" + // "WantedMusicDisabled" + // "WantedMusicOnMission" + // + // ------------------------------- + // No added flag names between b393d and b573d, including b573d. + // + // ####################################################################### + // + // "IsDirectorModeActive" is an audio flag which will allow you to play speech infinitely without any pauses like in Director Mode. + // + // ----------------------------------------------------------------------- + // + // All flag IDs and hashes: + // + // ID: 00 | Hash: 0x0FED7A7F + // ID: 01 | Hash: 0x20A7858F + // ID: 02 | Hash: 0xA11C2259 + // ID: 03 | Hash: 0x08DE4700 + // ID: 04 | Hash: 0x989F652F + // ID: 05 | Hash: 0x3C9E76BA + // ID: 06 | Hash: 0xA805FEB0 + // ID: 07 | Hash: 0x4B94EA26 + // ID: 08 | Hash: 0x803ACD34 + // ID: 09 | Hash: 0x7C741226 + // ID: 10 | Hash: 0x31DB9EBD + // ID: 11 | Hash: 0xDF386F18 + // ID: 12 | Hash: 0x669CED42 + // ID: 13 | Hash: 0x51F22743 + // ID: 14 | Hash: 0x2052B35C + // ID: 15 | Hash: 0x071472DC + // ID: 16 | Hash: 0xF9928BCC + // ID: 17 | Hash: 0x7ADBDD48 + // ID: 18 | Hash: 0xA959BA1A + // ID: 19 | Hash: 0xBBE89B60 + // ID: 20 | Hash: 0x87A08871 + // ID: 21 | Hash: 0xED1057CE + // ID: 22 | Hash: 0x1584AD7A + // ID: 23 | Hash: 0x8582CFCB + // ID: 24 | Hash: 0x7E5E2FB0 + // ID: 25 | Hash: 0xAE4F72DB + // ID: 26 | Hash: 0x5D16D1FA + // ID: 27 | Hash: 0x06B2F4B8 + // ID: 28 | Hash: 0x5D4CDC96 + // ID: 29 | Hash: 0x8B5A48BA + // ID: 30 | Hash: 0x98FBD539 + // ID: 31 | Hash: 0xD8CB0473 + // ID: 32 | Hash: 0x5CBB4874 + // ID: 33 | Hash: 0x2E9F93A9 + // ID: 34 | Hash: 0xD93BEA86 + // ID: 35 | Hash: 0x92109B7D + // ID: 36 | Hash: 0xB7EC9E4D + // ID: 37 | Hash: 0xCABDBB1D + // ID: 38 | Hash: 0xB3FD4A52 + // ID: 39 | Hash: 0x370D94E5 + // ID: 40 | Hash: 0xA0F7938F + // ID: 41 | Hash: 0xCBE1CE81 + // ID: 42 | Hash: 0xC27F1271 + // ID: 43 | Hash: 0x9E3258EB + // ID: 44 | Hash: 0x551CDA5B + // ID: 45 | Hash: 0xCB6D663C + // ID: 46 | Hash: 0x7DACE87F + // ID: 47 | Hash: 0xF9DE416F + // ID: 48 | Hash: 0x882E6E9E + // ID: 49 | Hash: 0x16B447E7 + // ID: 50 | Hash: 0xBD867739 + // ID: 51 | Hash: 0xA3A58604 + // ID: 52 | Hash: 0x7E046BBC + // ID: 53 | Hash: 0xD95FDB98 + // ID: 54 | Hash: 0x5842C0ED + // ID: 55 | Hash: 0x285FECC6 + // ID: 56 | Hash: 0x9351AC43 + // ID: 57 | Hash: 0x50032E75 + // ID: 58 | Hash: 0xAE6D0D59 + // ID: 59 | Hash: 0xD6351785 + // ID: 60 | Hash: 0xD25D71BC + // ID: 61 | Hash: 0x1F7F6423 + // ID: 62 | Hash: 0xE24C3AA6 + // ID: 63 | Hash: 0xBFFDD2B7 + inline Void SetAudioFlag(String flagName, BOOL toggle) { return _i(0xB9EFD5C25018725A, flagName, toggle); } // 0xb9efd5c25018725a0x1c09c9e0B323 + // p1 is always 0 in the scripts + inline BOOL PrepareSynchronizedAudioEvent(String audioEvent, Any p1) { return _i(0xC7ABCACA4985A766, audioEvent, p1); } // 0xc7abcaca4985a7660xe1d91fd0B323 + inline BOOL PrepareSynchronizedAudioEventForScene(int sceneID, String audioEvent) { return _i(0x029FE7CD1B7E2E75, sceneID, audioEvent); } // 0x029fe7cd1b7e2e750x7652dd49B323 + inline BOOL PlaySynchronizedAudioEvent(int sceneID) { return _i(0x8B2FD4560E55DD2D, sceneID); } // 0x8b2fd4560e55dd2d0x507f3241B323 + inline BOOL StopSynchronizedAudioEvent(int sceneID) { return _i(0x92D6A88E64A94430, sceneID); } // 0x92d6a88e64a944300xadeed2b4B323 + inline Void InitSynchSceneAudioWithPosition(String audioEvent, float x, float y, float z) { return _i(0xC8EDE9BDBCCBA6D4, audioEvent, x, y, z); } // 0xc8ede9bdbccba6d40x55a21772B323 + inline Void InitSynchSceneAudioWithEntity(String audioEvent, Entity entity) { return _i(0x950A154B8DAB6185, audioEvent, entity); } // 0x950a154b8dab61850xa17f9ab0B323 + // Needs to be called every frame. + // Audio mode to apply this frame: https://alloc8or.re/gta5/doc/enums/audSpecialEffectMode.txt + inline Void SetAudioSpecialEffectMode(int mode) { return _i(0x12561FCBB62D5B9C, mode); } // 0x12561fcbb62d5b9c0x62b43677B323 + // Found in the b617d scripts, duplicates removed: + // + // AUDIO::SetPortalSettingsOverride("V_CARSHOWROOM_PS_WINDOW_UNBROKEN", "V_CARSHOWROOM_PS_WINDOW_BROKEN"); + // + // AUDIO::SetPortalSettingsOverride("V_CIA_PS_WINDOW_UNBROKEN", "V_CIA_PS_WINDOW_BROKEN"); + // + // AUDIO::SetPortalSettingsOverride("V_DLC_HEIST_APARTMENT_DOOR_CLOSED", "V_DLC_HEIST_APARTMENT_DOOR_OPEN"); + // + // AUDIO::SetPortalSettingsOverride("V_FINALEBANK_PS_VAULT_INTACT", "V_FINALEBANK_PS_VAULT_BLOWN"); + // + // AUDIO::SetPortalSettingsOverride("V_MICHAEL_PS_BATHROOM_WITH_WINDOW", "V_MICHAEL_PS_BATHROOM_WITHOUT_WINDOW"); + inline Void SetPortalSettingsOverride(String p0, String p1) { return _i(0x044DBAD7A7FA2BE5, p0, p1); } // 0x044dbad7a7fa2be50x8ad670ecB323 + // Found in the b617d scripts, duplicates removed: + // + // AUDIO::RemovePortalSettingsOverride("V_CARSHOWROOM_PS_WINDOW_UNBROKEN"); + // AUDIO::RemovePortalSettingsOverride("V_CIA_PS_WINDOW_UNBROKEN"); + // AUDIO::RemovePortalSettingsOverride("V_DLC_HEIST_APARTMENT_DOOR_CLOSED"); + // AUDIO::RemovePortalSettingsOverride("V_FINALEBANK_PS_VAULT_INTACT"); + // AUDIO::RemovePortalSettingsOverride("V_MICHAEL_PS_BATHROOM_WITH_WINDOW"); + inline Void RemovePortalSettingsOverride(String p0) { return _i(0xB4BBFD9CD8B3922B, p0); } // 0xb4bbfd9cd8b3922b0xd24b4d0cB323 + // STOP_S[MOKE_GRENADE_EXPLOSION_SOUNDS]? + inline Void StopSmokeGrenadeExplosionSounds() { return _i(0xE4E6DD5566D28C82); } // 0xe4e6dd5566d28c820x7262b5baB323 + inline int GetMusicVolSlider() { return _i(0x3A48AB4445D499BE); } // 0x3a48ab4445d499be0x93a44a1fB323 + inline Void RequestTennisBanks(Ped ped) { return _i(0x4ADA3F19BE4A6047, ped); } // 0x4ada3f19be4a60470x13777a0bB323 + inline Void UnrequestTennisBanks() { return _i(0x0150B6FF25A9E2E5); } // 0x0150b6ff25a9e2e50x1134f68bB323 + inline Void SetSkipMinigunSpinUpAudio(BOOL p0) { return _i(0xBEF34B1D9624D5DD, p0); } // 0xbef34b1d9624d5dd0xe0047bfdB323 + inline Void StopCutsceneAudio() { return _i(0x806058BBDC136E06); } // 0x806058bbdc136e060x55461be6B323 + inline BOOL HasLoadedMpDataSet() { return _i(0x544810ED9DB6BBE6); } // 0x544810ed9db6bbe6B323 + inline BOOL HasLoadedSpDataSet() { return _i(0x5B50ABB1FE3746F4); } // 0x5b50abb1fe3746f4B323 + inline int GetVehicleHornSoundIndex(Vehicle vehicle) { return _i(0xD53F3A29BCE2580E, vehicle); } // 0xd53f3a29bce2580eB1365 + inline Void SetVehicleHornSoundIndex(Vehicle vehicle, int value) { return _i(0x0350E7E17BA767D0, vehicle, value); } // 0x0350e7e17ba767d0B1365 } namespace BRAIN { - // BRAIN::AddScriptToRandomPed("pb_prostitute", ${s_f_y_hooker_01}, 100, 0); - // - // - Nacorpio - // - // ----- - // - // Hardcoded to not work in Multiplayer. - inline Void AddScriptToRandomPed(String name, Hash model, float p2, float p3) { return _i(0x4EE5367468A65CCC, name, model, p2, p3); } // 0x4ee5367468a65ccc0xecc76c3dB323 - // Registers a script for any object with a specific model hash. - // - // BRAIN::RegisterObjectScriptBrain("ob_telescope", ${prop_telescope_01}, 100, 4.0, -1, 9); - // - // - Nacorpio - inline Void RegisterObjectScriptBrain(String scriptName, Hash modelHash, int p2, float activationRange, int p4, int p5) { return _i(0x0BE84C318BA6EC22, scriptName, modelHash, p2, activationRange, p4, p5); } // 0x0be84c318ba6ec220xb6bcc608B323 - inline BOOL IsObjectWithinBrainActivationRange(Object object) { return _i(0xCCBA154209823057, object); } // 0xccba1542098230570xba4caa56B323 - inline Void RegisterWorldPointScriptBrain(String scriptName, float activationRange, int p2) { return _i(0x3CDC7136613284BD, scriptName, activationRange, p2); } // 0x3cdc7136613284bd0x725d91f7B323 - // Gets whether the world point the calling script is registered to is within desired range of the player. - inline BOOL IsWorldPointWithinBrainActivationRange() { return _i(0xC5042CC6F5E3D450); } // 0xc5042cc6f5e3d4500x2cf305a0B323 - inline Void EnableScriptBrainSet(int brainSet) { return _i(0x67AA4D73F0CFA86B, brainSet); } // 0x67aa4d73f0cfa86b0x2765919fB323 - inline Void DisableScriptBrainSet(int brainSet) { return _i(0x14D8518E9760F08F, brainSet); } // 0x14d8518e9760f08f0xfbd13fadB323 - inline Void ReactivateAllWorldBrainsThatAreWaitingTillOutOfRange() { return _i(0x0B40ED49D7D6FF84); } // 0x0b40ed49d7d6ff840x19b27825B323 - inline Void ReactivateAllObjectBrainsThatAreWaitingTillOutOfRange() { return _i(0x4D953DF78EBF8158); } // 0x4d953df78ebf81580xf3a3ab08B323 - // Possible values: - // - // act_cinema - // am_mp_carwash_launch - // am_mp_carwash_control - // am_mp_property_ext - // chop - // fairgroundHub - // launcher_BasejumpHeli - // launcher_BasejumpPack - // launcher_CarWash - // launcher_golf - // launcher_Hunting_Ambient - // launcher_MrsPhilips - // launcher_OffroadRacing - // launcher_pilotschool - // launcher_Racing - // launcher_rampage - // launcher_rampage - // launcher_range - // launcher_stunts - // launcher_stunts - // launcher_tennis - // launcher_Tonya - // launcher_Triathlon - // launcher_Yoga - // ob_mp_bed_low - // ob_mp_bed_med - inline Void ReactivateNamedWorldBrainsWaitingTillOutOfRange(String scriptName) { return _i(0x6D6840CEE8845831, scriptName); } // 0x6d6840cee88458310x949fe53eB323 - // Looks like a cousin of above function _6D6840CEE8845831 as it was found among them. Must be similar - // - // Here are possible values of argument - - // - // "ob_tv" - // "launcher_Darts" - inline Void ReactivateNamedObjectBrainsWaitingTillOutOfRange(String scriptName) { return _i(0x6E91B04E08773030, scriptName); } // 0x6e91b04e087730300x29ce8baaB323 + // BRAIN::AddScriptToRandomPed("pb_prostitute", ${s_f_y_hooker_01}, 100, 0); + // + // - Nacorpio + // + // ----- + // + // Hardcoded to not work in Multiplayer. + inline Void AddScriptToRandomPed(String name, Hash model, float p2, float p3) { return _i(0x4EE5367468A65CCC, name, model, p2, p3); } // 0x4ee5367468a65ccc0xecc76c3dB323 + // Registers a script for any object with a specific model hash. + // + // BRAIN::RegisterObjectScriptBrain("ob_telescope", ${prop_telescope_01}, 100, 4.0, -1, 9); + // + // - Nacorpio + inline Void RegisterObjectScriptBrain(String scriptName, Hash modelHash, int p2, float activationRange, int p4, int p5) { return _i(0x0BE84C318BA6EC22, scriptName, modelHash, p2, activationRange, p4, p5); } // 0x0be84c318ba6ec220xb6bcc608B323 + inline BOOL IsObjectWithinBrainActivationRange(Object object) { return _i(0xCCBA154209823057, object); } // 0xccba1542098230570xba4caa56B323 + inline Void RegisterWorldPointScriptBrain(String scriptName, float activationRange, int p2) { return _i(0x3CDC7136613284BD, scriptName, activationRange, p2); } // 0x3cdc7136613284bd0x725d91f7B323 + // Gets whether the world point the calling script is registered to is within desired range of the player. + inline BOOL IsWorldPointWithinBrainActivationRange() { return _i(0xC5042CC6F5E3D450); } // 0xc5042cc6f5e3d4500x2cf305a0B323 + inline Void EnableScriptBrainSet(int brainSet) { return _i(0x67AA4D73F0CFA86B, brainSet); } // 0x67aa4d73f0cfa86b0x2765919fB323 + inline Void DisableScriptBrainSet(int brainSet) { return _i(0x14D8518E9760F08F, brainSet); } // 0x14d8518e9760f08f0xfbd13fadB323 + inline Void ReactivateAllWorldBrainsThatAreWaitingTillOutOfRange() { return _i(0x0B40ED49D7D6FF84); } // 0x0b40ed49d7d6ff840x19b27825B323 + inline Void ReactivateAllObjectBrainsThatAreWaitingTillOutOfRange() { return _i(0x4D953DF78EBF8158); } // 0x4d953df78ebf81580xf3a3ab08B323 + // Possible values: + // + // act_cinema + // am_mp_carwash_launch + // am_mp_carwash_control + // am_mp_property_ext + // chop + // fairgroundHub + // launcher_BasejumpHeli + // launcher_BasejumpPack + // launcher_CarWash + // launcher_golf + // launcher_Hunting_Ambient + // launcher_MrsPhilips + // launcher_OffroadRacing + // launcher_pilotschool + // launcher_Racing + // launcher_rampage + // launcher_rampage + // launcher_range + // launcher_stunts + // launcher_stunts + // launcher_tennis + // launcher_Tonya + // launcher_Triathlon + // launcher_Yoga + // ob_mp_bed_low + // ob_mp_bed_med + inline Void ReactivateNamedWorldBrainsWaitingTillOutOfRange(String scriptName) { return _i(0x6D6840CEE8845831, scriptName); } // 0x6d6840cee88458310x949fe53eB323 + // Looks like a cousin of above function _6D6840CEE8845831 as it was found among them. Must be similar + // + // Here are possible values of argument - + // + // "ob_tv" + // "launcher_Darts" + inline Void ReactivateNamedObjectBrainsWaitingTillOutOfRange(String scriptName) { return _i(0x6E91B04E08773030, scriptName); } // 0x6e91b04e087730300x29ce8baaB323 } namespace CAM { - // ease - smooth transition between the camera's positions - // easeTime - Time in milliseconds for the transition to happen - // - // If you have created a script (rendering) camera, and want to go back to the - // character (gameplay) camera, call this native with render set to 0. - // Setting ease to 1 will smooth the transition. - inline Void RenderScriptCams(BOOL render, BOOL ease, int easeTime, BOOL p3, BOOL p4, Any p5) { return _i(0x07E5B515DB0636FC, render, ease, easeTime, p3, p4, p5); } // 0x07e5b515db0636fc0x74337969B323 - // This native makes the gameplay camera zoom into first person/third person with a special effect. - inline Void StopRenderingScriptCamsUsingCatchUp(BOOL render, float p1, int p2, Any p3) { return _i(0xC819F3CBB62BF692, render, p1, p2, p3); } // 0xc819f3cbb62bf6920xd3c08183B323 - // "DEFAULT_SCRIPTED_CAMERA" - // "DEFAULT_ANIMATED_CAMERA" - // "DEFAULT_SPLINE_CAMERA" - // "DEFAULT_SCRIPTED_FLY_CAMERA" - // "TIMED_SPLINE_CAMERA" - inline Cam CreateCam(String camName, BOOL p1) { return _i(0xC3981DCE61D9E13F, camName, p1); } // 0xc3981dce61d9e13f0xe9bf2a7dB323 - // camName is always set to "DEFAULT_SCRIPTED_CAMERA" in Rockstar's scripts. - // ------------ - // Camera names found in the b617d scripts: - // "DEFAULT_ANIMATED_CAMERA" - // "DEFAULT_SCRIPTED_CAMERA" - // "DEFAULT_SCRIPTED_FLY_CAMERA" - // "DEFAULT_SPLINE_CAMERA" - // ------------ - // Side Note: It seems p8 is basically to represent what would be the bool p1 within CreateCam native. As well as the p9 since it's always 2 in scripts seems to represent what would be the last param within SetCamRot native which normally would be 2. - inline Cam CreateCamWithParams(String camName, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, float fov, BOOL p8, int p9) { return _i(0xB51194800B257161, camName, posX, posY, posZ, rotX, rotY, rotZ, fov, p8, p9); } // 0xb51194800b2571610x23b02f15B323 - inline Cam CreateCamera(Hash camHash, BOOL p1) { return _i(0x5E3CF89C6BCCA67D, camHash, p1); } // 0x5e3cf89c6bcca67d0x5d6739aeB323 - // p9 uses 2 by default - inline Cam CreateCameraWithParams(Hash camHash, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, float fov, BOOL p8, Any p9) { return _i(0x6ABFA3E16460F22D, camHash, posX, posY, posZ, rotX, rotY, rotZ, fov, p8, p9); } // 0x6abfa3e16460f22d0x0688be9aB323 - // BOOL param indicates whether the cam should be destroyed if it belongs to the calling script. - inline Void DestroyCam(Cam cam, BOOL bScriptHostCam) { return _i(0x865908C81A2C22E9, cam, bScriptHostCam); } // 0x865908c81a2c22e90xc39302bdB323 - // BOOL param indicates whether the cam should be destroyed if it belongs to the calling script. - inline Void DestroyAllCams(BOOL bScriptHostCam) { return _i(0x8E5FB15663F79120, bScriptHostCam); } // 0x8e5fb15663f791200x10c151ceB323 - // Returns whether or not the passed camera handle exists. - inline BOOL DoesCamExist(Cam cam) { return _i(0xA7A932170592B50E, cam); } // 0xa7a932170592b50e0x1ef89dc0B323 - // Set camera as active/inactive. - inline Void SetCamActive(Cam cam, BOOL active) { return _i(0x026FB97D0A425F84, cam, active); } // 0x026fb97d0a425f840x064659c2B323 - // Returns whether or not the passed camera handle is active. - inline BOOL IsCamActive(Cam cam) { return _i(0xDFB2B516207D3534, cam); } // 0xdfb2b516207d35340x4b58f177B323 - inline BOOL IsCamRendering(Cam cam) { return _i(0x02EC0AF5C5A49B7A, cam); } // 0x02ec0af5c5a49b7a0x6ec6b5b2B323 - inline Cam GetRenderingCam() { return _i(0x5234F9F10919EABA); } // 0x5234f9f10919eaba0x0fcf4df1B323 - inline Vector3 GetCamCoord(Cam cam) { return _i(0xBAC038F7459AE5AE, cam); } // 0xbac038f7459ae5ae0x7c40f09cB323 - // The last parameter, as in other "ROT" methods, is usually 2. - inline Vector3 GetCamRot(Cam cam, int rotationOrder) { return _i(0x7D304C1C955E3E12, cam, rotationOrder); } // 0x7d304c1c955e3e120xdac84c9fB323 - inline float GetCamFov(Cam cam) { return _i(0xC3330A45CCCDB26A, cam); } // 0xc3330a45cccdb26a0xd6e9fcf5B323 - inline float GetCamNearClip(Cam cam) { return _i(0xC520A34DAFBF24B1, cam); } // 0xc520a34dafbf24b10xcfcd35eeB323 - inline float GetCamFarClip(Cam cam) { return _i(0xB60A9CFEB21CA6AA, cam); } // 0xb60a9cfeb21ca6aa0x09f119b8B323 - inline float GetCamNearDof(Cam cam) { return _i(0xC2612D223D915A1C, cam); } // 0xc2612d223d915a1cB2699 - inline float GetCamFarDof(Cam cam) { return _i(0x255F8DAFD540D397, cam); } // 0x255f8dafd540d3970x98c5cce9B323 - inline float GetCamDofStrength(Cam cam) { return _i(0x06D153C0B99B6128, cam); } // 0x06d153c0b99b6128B2699 - inline Void SetCamParams(Cam cam, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, float fieldOfView, Any p8, int p9, int p10, int p11) { return _i(0xBFD8727AEA3CCEBA, cam, posX, posY, posZ, rotX, rotY, rotZ, fieldOfView, p8, p9, p10, p11); } // 0xbfd8727aea3cceba0x2167cebfB323 - // Sets the position of the cam. - inline Void SetCamCoord(Cam cam, float posX, float posY, float posZ) { return _i(0x4D41783FB745E42E, cam, posX, posY, posZ); } // 0x4d41783fb745e42e0x7a8053afB323 - // Sets the rotation of the cam. - // Last parameter unknown. - // - // Last parameter seems to always be set to 2. - inline Void SetCamRot(Cam cam, float rotX, float rotY, float rotZ, int rotationOrder) { return _i(0x85973643155D0B07, cam, rotX, rotY, rotZ, rotationOrder); } // 0x85973643155d0b070xee38b3c1B323 - // Sets the field of view of the cam. - // --------------------------------------------- - // Min: 1.0f - // Max: 130.0f - inline Void SetCamFov(Cam cam, float fieldOfView) { return _i(0xB13C14F66A00D047, cam, fieldOfView); } // 0xb13c14f66a00d0470xd3d5d74fB323 - inline Void SetCamNearClip(Cam cam, float nearClip) { return _i(0xC7848EFCCC545182, cam, nearClip); } // 0xc7848efccc5451820x46db13b1B323 - inline Void SetCamFarClip(Cam cam, float farClip) { return _i(0xAE306F2A904BF86E, cam, farClip); } // 0xae306f2a904bf86e0x0d23e381B323 - inline Void ForceCamFarClip(Cam cam, float p1) { return _i(0xAABD62873FFB1A33, cam, p1); } // 0xaabd62873ffb1a33B2189 - inline Void SetCamMotionBlurStrength(Cam cam, float strength) { return _i(0x6F0F77FBA9A8F2E6, cam, strength); } // 0x6f0f77fba9a8f2e60xfd6e0d67B323 - inline Void SetCamNearDof(Cam cam, float nearDOF) { return _i(0x3FA4BF0A7AB7DE2C, cam, nearDOF); } // 0x3fa4bf0a7ab7de2c0xf28254dfB323 - inline Void SetCamFarDof(Cam cam, float farDOF) { return _i(0xEDD91296CD01AEE0, cam, farDOF); } // 0xedd91296cd01aee00x58515e8eB323 - inline Void SetCamDofStrength(Cam cam, float dofStrength) { return _i(0x5EE29B4D7D5DF897, cam, dofStrength); } // 0x5ee29b4d7d5df8970x3cc4eb3fB323 - inline Void SetCamDofPlanes(Cam cam, float p1, float p2, float p3, float p4) { return _i(0x3CF48F6F96E749DC, cam, p1, p2, p3, p4); } // 0x3cf48f6f96e749dc0xad6c2b8fB323 - inline Void SetCamUseShallowDofMode(Cam cam, BOOL toggle) { return _i(0x16A96863A17552BB, cam, toggle); } // 0x16a96863a17552bb0x8306c256B323 - inline Void SetUseHiDof() { return _i(0xA13B0222F3D94A94); } // 0xa13b0222f3d94a940x8bbf2950B323 - // Only used in R* Script fm_mission_controller_2020 - inline Void SetUseHiDofOnSyncedSceneThisUpdate() { return _i(0x731A880555DA3647); } // 0x731a880555da3647B2699 - inline Void SetCamDofOverriddenFocusDistance(Cam camera, float p1) { return _i(0xF55E4046F6F831DC, camera, p1); } // 0xf55e4046f6f831dcB323 - inline Void SetCamDofOverriddenFocusDistanceBlendLevel(Any p0, float p1) { return _i(0xE111A7C0D200CBC5, p0, p1); } // 0xe111a7c0d200cbc5B323 - // This native has its name defined inside its codE - // - inline Void SetCamDofFnumberOfLens(Cam camera, float p1) { return _i(0x7DD234D6F3914C5B, camera, p1); } // 0x7dd234d6f3914c5bB323 - // Native name labeled within its code - inline Void SetCamDofFocalLengthMultiplier(Cam camera, float multiplier) { return _i(0x47B595D60664CFFA, camera, multiplier); } // 0x47b595d60664cffaB1011 - // This native has a name defined inside its code - inline Void SetCamDofFocusDistanceBias(Cam camera, float p1) { return _i(0xC669EEA5D031B7DE, camera, p1); } // 0xc669eea5d031b7deB323 - // This native has a name defined inside its code - inline Void SetCamDofMaxNearInFocusDistance(Cam camera, float p1) { return _i(0xC3654A441402562D, camera, p1); } // 0xc3654a441402562dB323 - // This native has a name defined inside its code - inline Void SetCamDofMaxNearInFocusDistanceBlendLevel(Cam camera, float p1) { return _i(0x2C654B4943BDDF7C, camera, p1); } // 0x2c654b4943bddf7cB323 - // This native has a name defined inside its code - inline Void SetCamDofShouldKeepLookAtTargetInFocus(Cam camera, BOOL state) { return _i(0x7CF3AF51DCFE4108, camera, state); } // 0x7cf3af51dcfe4108B2944 - // Last param determines if its relative to the Entity - inline Void AttachCamToEntity(Cam cam, Entity entity, float xOffset, float yOffset, float zOffset, BOOL isRelative) { return _i(0xFEDB7D269E8C60E3, cam, entity, xOffset, yOffset, zOffset, isRelative); } // 0xfedb7d269e8c60e30xad7c45f6B323 - inline Void AttachCamToPedBone(Cam cam, Ped ped, int boneIndex, float x, float y, float z, BOOL heading) { return _i(0x61A3DBA14AB7F411, cam, ped, boneIndex, x, y, z, heading); } // 0x61a3dba14ab7f4110x506bb35cB323 - inline Void HardAttachCamToPedBone(Cam cam, Ped ped, int boneIndex, float p3, float p4, float p5, float p6, float p7, float p8, BOOL p9) { return _i(0x149916F50C34A40D, cam, ped, boneIndex, p3, p4, p5, p6, p7, p8, p9); } // 0x149916f50c34a40dB1180 - // Example from am_mp_drone script: - // - // CAM::HardAttachCamToEntity(Local_190.f_169, NETWORK::NetToObj(Local_190.f_159), 0f, 0f, 180f, Var0, 1); - inline Void HardAttachCamToEntity(Cam cam, Entity entity, float xRot, float yRot, float zRot, float xOffset, float yOffset, float zOffset, BOOL isRelative) { return _i(0x202A5ED9CE01D6E7, cam, entity, xRot, yRot, zRot, xOffset, yOffset, zOffset, isRelative); } // 0x202a5ed9ce01d6e7B2189 - // This native works with vehicles only. Bone indexes are usually given by this native GetEntityBoneIndexByName. - inline Void AttachCamToVehicleBone(Cam cam, Vehicle vehicle, int boneIndex, BOOL relativeRotation, float rotX, float rotY, float rotZ, float offsetX, float offsetY, float offsetZ, BOOL fixedDirection) { return _i(0x8DB3F12A02CAEF72, cam, vehicle, boneIndex, relativeRotation, rotX, rotY, rotZ, offsetX, offsetY, offsetZ, fixedDirection); } // 0x8db3f12a02caef72B1290 - inline Void DetachCam(Cam cam) { return _i(0xA2FABBE87F4BAD82, cam); } // 0xa2fabbe87f4bad820xf4fbf14aB323 - // The native seems to only be called once. - // - // The native is used as so, - // CAM::SetCamInheritRollVehicle(l_544, getElem(2, &l_525, 4)); - // In the exile1 script. - inline Void SetCamInheritRollVehicle(Cam cam, BOOL p1) { return _i(0x45F1DE9C34B93AE6, cam, p1); } // 0x45f1de9c34b93ae60xe4bd5342B323 - inline Void PointCamAtCoord(Cam cam, float x, float y, float z) { return _i(0xF75497BB865F0803, cam, x, y, z); } // 0xf75497bb865f08030x914bc21aB323 - // p5 always seems to be 1 i.e TRUE - inline Void PointCamAtEntity(Cam cam, Entity entity, float p2, float p3, float p4, BOOL p5) { return _i(0x5640BFF86B16E8DC, cam, entity, p2, p3, p4, p5); } // 0x5640bff86b16e8dc0x7597a0f7B323 - // Parameters p0-p5 seems correct. The bool p6 is unknown, but through every X360 script it's always 1. Please correct p0-p5 if any prove to be wrong. - inline Void PointCamAtPedBone(Cam cam, Ped ped, int boneIndex, float x, float y, float z, BOOL p6) { return _i(0x68B2B5F33BA63C41, cam, ped, boneIndex, x, y, z, p6); } // 0x68b2b5f33ba63c410x09f47049B323 - inline Void StopCamPointing(Cam cam) { return _i(0xF33AB75780BA57DE, cam); } // 0xf33ab75780ba57de0x5435f6a5B323 - // Allows you to aim and shoot at the direction the camera is facing. - inline Void SetCamAffectsAiming(Cam cam, BOOL toggle) { return _i(0x8C1DC7770C51DC8D, cam, toggle); } // 0x8c1dc7770c51dc8d0x0c74f9afB323 - // Rotates the radar to match the camera's Z rotation - inline Void SetCamControlsMiniMapHeading(Cam cam, BOOL toggle) { return _i(0x661B5C8654ADD825, cam, toggle); } // 0x661b5c8654add8250xe1a0b2f1B323 - // When set to true shadows appear more smooth but less detailed. - // Set to false by default. - inline Void SetCamIsInsideVehicle(Cam cam, BOOL toggle) { return _i(0xA2767257A320FC82, cam, toggle); } // 0xa2767257a320fc82B323 - inline Void AllowMotionBlurDecay(Any p0, BOOL p1) { return _i(0x271017B9BA825366, p0, p1); } // 0x271017b9ba8253660x43220969B323 - // NOTE: Debugging functions are not present in the retail version of the game. - inline Void SetCamDebugName(Cam camera, String name) { return _i(0x1B93E0107865DD40, camera, name); } // 0x1b93e0107865dd400x9b00df3fB323 - inline Cam GetDebugCam() { return _i(0x77C3CEC46BE286F6); } // 0x77c3cec46be286f6B2372 - // I filled p1-p6 (the floats) as they are as other natives with 6 floats in a row are similar and I see no other method. So if a test from anyone proves them wrong please correct. - // - // p7 (length) determines the length of the spline, affects camera path and duration of transition between previous node and this one - // - // p8 big values ~100 will slow down the camera movement before reaching this node - // - // p9 != 0 seems to override the rotation/pitch (bool?) - inline Void AddCamSplineNode(Cam camera, float x, float y, float z, float xRot, float yRot, float zRot, int length, int smoothingStyle, int rotationOrder) { return _i(0x8609C75EC438FB3B, camera, x, y, z, xRot, yRot, zRot, length, smoothingStyle, rotationOrder); } // 0x8609c75ec438fb3b0xad3c7eaaB323 - // p0 is the spline camera to which the node is being added. - // p1 is the camera used to create the node. - // p3 is always 3 in scripts. It might be smoothing style or rotation order. - inline Void AddCamSplineNodeUsingCameraFrame(Cam cam, Cam cam2, int length, int p3) { return _i(0x0A9F2A468B328E74, cam, cam2, length, p3); } // 0x0a9f2a468b328e740x30510511B323 - // p0 is the spline camera to which the node is being added. - // p1 is the camera used to create the node. - // p3 is always 3 in scripts. It might be smoothing style or rotation order. - inline Void AddCamSplineNodeUsingCamera(Cam cam, Cam cam2, int length, int p3) { return _i(0x0FB82563989CF4FB, cam, cam2, length, p3); } // 0x0fb82563989cf4fb0xba6c085bB323 - // p2 is always 2 in scripts. It might be smoothing style or rotation order. - inline Void AddCamSplineNodeUsingGameplayFrame(Cam cam, int length, int p2) { return _i(0x609278246A29CA34, cam, length, p2); } // 0x609278246a29ca340xb4737f03B323 - inline Void SetCamSplinePhase(Cam cam, float p1) { return _i(0x242B5874F0A4E052, cam, p1); } // 0x242b5874f0a4e0520xf0aed233B323 - // Can use this with SetCamSplinePhase to set the float it this native returns. - // - // (returns 1.0f when no nodes has been added, reached end of non existing spline) - inline float GetCamSplinePhase(Cam cam) { return _i(0xB5349E36C546509A, cam); } // 0xb5349e36c546509a0x39784dd9B323 - // I'm pretty sure the parameter is the camera as usual, but I am not certain so I'm going to leave it as is. - inline float GetCamSplineNodePhase(Cam cam) { return _i(0xD9D0E694C8282C96, cam); } // 0xd9d0e694c8282c960x7b9522f6B323 - // I named p1 as timeDuration as it is obvious. I'm assuming tho it is ran in ms(Milliseconds) as usual. - inline Void SetCamSplineDuration(Cam cam, int timeDuration) { return _i(0x1381539FEE034CDA, cam, timeDuration); } // 0x1381539fee034cda0x3e91fc8aB323 - inline Void SetCamSplineSmoothingStyle(Cam cam, int smoothingStyle) { return _i(0xD1B0F412F109EA5D, cam, smoothingStyle); } // 0xd1b0f412f109ea5d0x15e141ceB323 - inline int GetCamSplineNodeIndex(Cam cam) { return _i(0xB22B17DF858716A6, cam); } // 0xb22b17df858716a60xf8aeb6bdB323 - inline Void SetCamSplineNodeEase(Cam cam, int easingFunction, int p2, float p3) { return _i(0x83B8201ED82A9A2D, cam, easingFunction, p2, p3); } // 0x83b8201ed82a9a2d0x21d275daB323 - inline Void SetCamSplineNodeVelocityScale(Cam cam, int p1, float scale) { return _i(0xA6385DEB180F319F, cam, p1, scale); } // 0xa6385deb180f319f0xa3bd9e94B323 - inline Void OverrideCamSplineVelocity(Cam cam, int p1, float p2, float p3) { return _i(0x40B62FA033EB0346, cam, p1, p2, p3); } // 0x40b62fa033eb03460x326a17e2B323 - // Max value for p1 is 15. - inline Void OverrideCamSplineMotionBlur(Cam cam, int p1, float p2, float p3) { return _i(0x7DCF7C708D292D55, cam, p1, p2, p3); } // 0x7dcf7c708d292d550x633179e6B323 - inline Void SetCamSplineNodeExtraFlags(Cam cam, int p1, int flags) { return _i(0x7BF1A54AE67AC070, cam, p1, flags); } // 0x7bf1a54ae67ac0700xc90b2ddcB323 - inline BOOL IsCamSplinePaused(Cam cam) { return _i(0x0290F35C0AD97864, cam); } // 0x0290f35c0ad978640x60b34ff5B323 - // Previous declaration Void SetCamActiveWithInterp(Cam camTo, Cam camFrom, int duration, BOOL easeLocation, BOOL easeRotation) is completely wrong. The last two params are integers not BOOLs... - // - inline Void SetCamActiveWithInterp(Cam camTo, Cam camFrom, int duration, int easeLocation, int easeRotation) { return _i(0x9FBDA379383A52A4, camTo, camFrom, duration, easeLocation, easeRotation); } // 0x9fbda379383a52a40x7983e7f0B323 - inline BOOL IsCamInterpolating(Cam cam) { return _i(0x036F97C908C2B52C, cam); } // 0x036f97c908c2b52c0x7159cb5dB323 - // Possible shake types (updated b617d): - // - // DEATH_FAIL_IN_EFFECT_SHAKE - // DRUNK_SHAKE - // FAMILY5_DRUG_TRIP_SHAKE - // HAND_SHAKE - // JOLT_SHAKE - // LARGE_EXPLOSION_SHAKE - // MEDIUM_EXPLOSION_SHAKE - // SMALL_EXPLOSION_SHAKE - // ROAD_VIBRATION_SHAKE - // SKY_DIVING_SHAKE - // VIBRATE_SHAKE - // - // Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json - inline Void ShakeCam(Cam cam, String type, float amplitude) { return _i(0x6A25241C340D3822, cam, type, amplitude); } // 0x6a25241c340d38220x1d4211b0B323 - // Example from michael2 script. - // - // CAM::AnimatedShakeCam(l_5069, "shake_cam_all@", "light", "", 1f); - inline Void AnimatedShakeCam(Cam cam, String p1, String p2, String p3, float amplitude) { return _i(0xA2746EEAE3E577CD, cam, p1, p2, p3, amplitude); } // 0xa2746eeae3e577cd0xe1168767B323 - inline BOOL IsCamShaking(Cam cam) { return _i(0x6B24BFE83A2BE47B, cam); } // 0x6b24bfe83a2be47b0x0961fd9bB323 - inline Void SetCamShakeAmplitude(Cam cam, float amplitude) { return _i(0xD93DB43B82BC0D00, cam, amplitude); } // 0xd93db43b82bc0d000x60ff6382B323 - inline Void StopCamShaking(Cam cam, BOOL p1) { return _i(0xBDECF64367884AC3, cam, p1); } // 0xbdecf64367884ac30x40d0eb87B323 - // CAM::ShakeScriptGlobal("HAND_SHAKE", 0.2); - // - // Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json - inline Void ShakeScriptGlobal(String p0, float p1) { return _i(0xF4C8CF9E353AFECA, p0, p1); } // 0xf4c8cf9e353afeca0x2b0f05cdB323 - // CAM::AnimatedShakeScriptGlobal("SHAKE_CAM_medium", "medium", "", 0.5f); - // - // Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json - inline Void AnimatedShakeScriptGlobal(String p0, String p1, String p2, float p3) { return _i(0xC2EAE3FB8CDBED31, p0, p1, p2, p3); } // 0xc2eae3fb8cdbed310xcb75bd9cB323 - // In drunk_controller.c4, sub_309 - // if (CAM::IsScriptGlobalShaking()) { - // CAM::StopScriptGlobalShaking(0); - // } - inline BOOL IsScriptGlobalShaking() { return _i(0xC912AF078AF19212); } // 0xc912af078af192120x6aefe6a5B323 - // In drunk_controller.c4, sub_309 - // if (CAM::IsScriptGlobalShaking()) { - // CAM::StopScriptGlobalShaking(0); - // } - inline Void StopScriptGlobalShaking(BOOL p0) { return _i(0x1C9D7949FA533490, p0); } // 0x1c9d7949fa5334900x26fcfb96B323 - // p1: 0..16 - inline Void TriggerVehiclePartBrokenCameraShake(Vehicle vehicle, int p1, float p2) { return _i(0x5D96CFB59DA076A0, vehicle, p1, p2); } // 0x5d96cfb59da076a0B2060 - // Atleast one time in a script for the zRot Rockstar uses GetEntityHeading to help fill the parameter. - // - // p9 is unknown at this time. - // p10 throughout all the X360 Scripts is always 2. - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline BOOL PlayCamAnim(Cam cam, String animName, String animDictionary, float x, float y, float z, float xRot, float yRot, float zRot, BOOL p9, int p10) { return _i(0x9A2D0FB2E7852392, cam, animName, animDictionary, x, y, z, xRot, yRot, zRot, p9, p10); } // 0x9a2d0fb2e78523920xbcefb87eB323 - inline BOOL IsCamPlayingAnim(Cam cam, String animName, String animDictionary) { return _i(0xC90621D8A0CEECF2, cam, animName, animDictionary); } // 0xc90621d8a0ceecf20xb998cb49B323 - inline Void SetCamAnimCurrentPhase(Cam cam, float phase) { return _i(0x4145A4C44FF3B5A6, cam, phase); } // 0x4145a4c44ff3b5a60x3cb1d17fB323 - inline float GetCamAnimCurrentPhase(Cam cam) { return _i(0xA10B2DB49E92A6B0, cam); } // 0xa10b2db49e92a6b00x345f72d0B323 - // Examples: - // - // CAM::PlaySynchronizedCamAnim(l_2734, NETWORK::NetworkGetLocalSceneFromNetworkId(l_2739), "PLAYER_EXIT_L_CAM", "mp_doorbell"); - // - // CAM::PlaySynchronizedCamAnim(l_F0D[7/*1*/], l_F4D[15/*1*/], "ah3b_attackheli_cam2", "missheistfbi3b_helicrash"); - inline BOOL PlaySynchronizedCamAnim(Any p0, Any p1, String animName, String animDictionary) { return _i(0xE32EFE9AB4A9AA0C, p0, p1, animName, animDictionary); } // 0xe32efe9ab4a9aa0c0x9458459eB323 - inline Void SetFlyCamHorizontalResponse(Cam cam, float p1, float p2, float p3) { return _i(0x503F5920162365B2, cam, p1, p2, p3); } // 0x503f5920162365b20x56f9ed27B323 - inline Void SetFlyCamVerticalResponse(Cam cam, float p1, float p2, float p3) { return _i(0xE827B9382CFB41BA, cam, p1, p2, p3); } // 0xe827b9382cfb41baB791 - inline Void SetFlyCamMaxHeight(Cam cam, float height) { return _i(0xF9D02130ECDD1D77, cam, height); } // 0xf9d02130ecdd1d770x71570dbaB323 - inline Void SetFlyCamCoordAndConstrain(Cam cam, float x, float y, float z) { return _i(0xC91C6C55199308CA, cam, x, y, z); } // 0xc91c6c55199308ca0x60b345deB323 - inline Void SetFlyCamVerticalControlsThisUpdate(Cam cam) { return _i(0xC8B5C4A79CC18B94, cam); } // 0xc8b5c4a79cc18b940x44473efcB323 - inline BOOL WasFlyCamConstrainedOnPreviousUdpate(Cam cam) { return _i(0x5C48A1D6E3B33179, cam); } // 0x5c48a1d6e3b331790xda931d65B323 - inline BOOL IsScreenFadedOut() { return _i(0xB16FCE9DDC7BA182); } // 0xb16fce9ddc7ba1820x9caa05faB323 - inline BOOL IsScreenFadedIn() { return _i(0x5A859503B0C08678); } // 0x5a859503b0c086780x4f37276dB323 - inline BOOL IsScreenFadingOut() { return _i(0x797AC7CB535BA28F); } // 0x797ac7cb535ba28f0x79275a57B323 - inline BOOL IsScreenFadingIn() { return _i(0x5C544BC6C57AC575); } // 0x5c544bc6c57ac5750xc7c82800B323 - // Fades the screen in. - // - // duration: The time the fade should take, in milliseconds. - inline Void DoScreenFadeIn(int duration) { return _i(0xD4E8E24955024033, duration); } // 0xd4e8e249550240330x66c1bdeeB323 - // Fades the screen out. - // - // duration: The time the fade should take, in milliseconds. - inline Void DoScreenFadeOut(int duration) { return _i(0x891B5B39AC6302AF, duration); } // 0x891b5b39ac6302af0x89d01805B323 - inline Void SetWidescreenBorders(BOOL p0, int p1) { return _i(0xDCD4EA924F42D01A, p0, p1); } // 0xdcd4ea924f42d01a0x1a75dc9aB323 - inline BOOL AreWidescreenBordersActive() { return _i(0x4879E4FE39074CDF); } // 0x4879e4fe39074cdfB372 - inline Vector3 GetGameplayCamCoord() { return _i(0x14D6F5678D8F1B37); } // 0x14d6f5678d8f1b370x9388cf79B323 - // p0 dosen't seem to change much, I tried it with 0, 1, 2: - // 0-Pitch(X): -70.000092 - // 0-Roll(Y): -0.000001 - // 0-Yaw(Z): -43.886459 - // 1-Pitch(X): -70.000092 - // 1-Roll(Y): -0.000001 - // 1-Yaw(Z): -43.886463 - // 2-Pitch(X): -70.000092 - // 2-Roll(Y): -0.000002 - // 2-Yaw(Z): -43.886467 - inline Vector3 GetGameplayCamRot(int rotationOrder) { return _i(0x837765A25378F0BB, rotationOrder); } // 0x837765a25378f0bb0x13a010b5B323 - inline float GetGameplayCamFov() { return _i(0x65019750A0324133); } // 0x65019750a03241330x4d6b3bfaB323 - // some camera effect that is used in the drunk-cheat, and turned off (by setting it to 0.0) along with the shaking effects once the drunk cheat is disabled. - inline Void SetGameplayCamMotionBlurScalingThisUpdate(float p0) { return _i(0x487A82C650EB7799, p0); } // 0x487a82c650eb77990xa6e73135B323 - // some camera effect that is (also) used in the drunk-cheat, and turned off (by setting it to 0.0) along with the shaking effects once the drunk cheat is disabled. - inline Void SetGameplayCamMaxMotionBlurStrengthThisUpdate(float p0) { return _i(0x0225778816FDC28C, p0); } // 0x0225778816fdc28c0x1126e37cB323 - inline float GetGameplayCamRelativeHeading() { return _i(0x743607648ADD4587); } // 0x743607648add45870xcaf839c2B323 - // Sets the camera position relative to heading in float from -360 to +360. - // - // Heading is alwyas 0 in aiming camera. - inline Void SetGameplayCamRelativeHeading(float heading) { return _i(0xB4EC2312F4E5B1F1, heading); } // 0xb4ec2312f4e5b1f10x20c6217cB323 - inline float GetGameplayCamRelativePitch() { return _i(0x3A6867B4845BEDA2); } // 0x3a6867b4845beda20xfc5a4946B323 - // This native sets the camera's pitch (rotation on the x-axis). - inline Void SetGameplayCamRelativePitch(float angle, float scalingFactor) { return _i(0x6D0858B8EDFD2B7D, angle, scalingFactor); } // 0x6d0858b8edfd2b7d0x6381b963B323 - inline Void ResetGameplayCamFullAttachParentTransformTimer() { return _i(0x7295C203DD659DFE); } // 0x7295c203dd659dfeB2699 - inline Void ForceCameraRelativeHeadingAndPitch(float roll, float pitch, float yaw) { return _i(0x48608C3464F58AB4, roll, pitch, yaw); } // 0x48608c3464f58ab4B505 - inline Void ForceBonnetCameraRelativeHeadingAndPitch(float p0, float p1) { return _i(0x28B022A17B068A3A, p0, p1); } // 0x28b022a17b068a3aB1734 - // Does nothing - inline Void SetFirstPersonShooterCameraHeading(float yaw) { return _i(0x103991D4A307D472, yaw); } // 0x103991d4a307d472B323 - inline Void SetFirstPersonShooterCameraPitch(float pitch) { return _i(0x759E13EBC1C15C5A, pitch); } // 0x759e13ebc1c15c5aB323 - inline Void SetScriptedCameraIsFirstPersonThisFrame(BOOL p0) { return _i(0x469F2ECDEC046337, p0); } // 0x469f2ecdec046337B323 - // Possible shake types (updated b617d): - // - // DEATH_FAIL_IN_EFFECT_SHAKE - // DRUNK_SHAKE - // FAMILY5_DRUG_TRIP_SHAKE - // HAND_SHAKE - // JOLT_SHAKE - // LARGE_EXPLOSION_SHAKE - // MEDIUM_EXPLOSION_SHAKE - // SMALL_EXPLOSION_SHAKE - // ROAD_VIBRATION_SHAKE - // SKY_DIVING_SHAKE - // VIBRATE_SHAKE - // - // Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json - inline Void ShakeGameplayCam(String shakeName, float intensity) { return _i(0xFD55E49555E017CF, shakeName, intensity); } // 0xfd55e49555e017cf0xf2efe660B323 - inline BOOL IsGameplayCamShaking() { return _i(0x016C090630DF1F89); } // 0x016c090630df1f890x3457d681B323 - // Sets the amplitude for the gameplay (i.e. 3rd or 1st) camera to shake. Used in script "drunk_controller.ysc.c4" to simulate making the player drunk. - inline Void SetGameplayCamShakeAmplitude(float amplitude) { return _i(0xA87E00932DB4D85D, amplitude); } // 0xa87e00932db4d85d0x9219d44aB323 - inline Void StopGameplayCamShaking(BOOL p0) { return _i(0x0EF93E9F3D08C178, p0); } // 0x0ef93e9f3d08c1780xfd569e4eB323 - // Forces gameplay cam to specified ped as if you were the ped or spectating it - inline Void SetGameplayCamFollowPedThisUpdate(Ped ped) { return _i(0x8BBACBF51DA047A8, ped); } // 0x8bbacbf51da047a80x7d3007a2B323 - // Examples when this function will return 0 are: - // - During busted screen. - // - When player is coming out from a hospital. - // - When player is coming out from a police station. - // - When player is buying gun from AmmuNation. - inline BOOL IsGameplayCamRendering() { return _i(0x39B5D1B10383F0C8); } // 0x39b5d1b10383f0c80x0ef276daB323 - inline BOOL IsInterpolatingFromScriptCams() { return _i(0x3044240D2E0FA842); } // 0x3044240d2e0fa8420xc0b00c20B323 - inline BOOL IsInterpolatingToScriptCams() { return _i(0x705A276EBFF3133D); } // 0x705a276ebff3133d0x60c23785B323 - inline Void SetGameplayCamAltitudeFovScalingState(BOOL p0) { return _i(0xDB90C6CCA48940F1, p0); } // 0xdb90c6cca48940f10x20bff6e5B323 - // Shows the crosshair even if it wouldn't show normally. Only works for one frame, so make sure to call it repeatedly. - inline Void DisableGameplayCamAltitudeFovScalingThisUpdate() { return _i(0xEA7F0AD7E9BA676F); } // 0xea7f0ad7e9ba676f0xa61ff9acB323 - inline BOOL IsGameplayCamLookingBehind() { return _i(0x70FDA869F3317EA9); } // 0x70fda869f3317ea90x33c83f17B323 - inline Void SetGameplayCamIgnoreEntityCollisionThisUpdate(Entity entity) { return _i(0x2AED6301F67007D5, entity); } // 0x2aed6301f67007d50x2701a9adB323 - inline Void DisableCamCollisionForObject(Entity entity) { return _i(0x49482F9FCD825AAA, entity); } // 0x49482f9fcd825aaa0xc4736ed3B323 - inline Void BypassCameraCollisionBuoyancyTestThisUpdate() { return _i(0xA7092AFE81944852); } // 0xa7092afe81944852B2189 - inline Void SetGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate(Entity entity) { return _i(0xFD3151CD37EA2245, entity); } // 0xfd3151cd37ea2245B323 - // Sets some flag on cinematic camera - inline Void DisableFirstPersonCameraWaterClippingTestThisUpdate() { return _i(0xB1381B97F70C7B30); } // 0xb1381b97f70c7b30B1180 - inline Void SetFollowCamIgnoreAttachParentMovementThisUpdate() { return _i(0xDD79DF9F4D26E1C9); } // 0xdd79df9f4d26e1c90x6b0e9d57B323 - inline BOOL IsSphereVisible(float x, float y, float z, float radius) { return _i(0xE33D59DA70B58FDF, x, y, z, radius); } // 0xe33d59da70b58fdf0xdd1329e2B323 - inline BOOL IsFollowPedCamActive() { return _i(0xC6D3D26810C8E0F9); } // 0xc6d3d26810c8e0f90x9f9e856cB323 - // From the scripts: - // - // CAM::SetFollowPedCamThisUpdate("FOLLOW_PED_ATTACHED_TO_ROPE_CAMERA", 0); - // CAM::SetFollowPedCamThisUpdate("FOLLOW_PED_ON_EXILE1_LADDER_CAMERA", 1500); - // CAM::SetFollowPedCamThisUpdate("FOLLOW_PED_SKY_DIVING_CAMERA", 0); - // CAM::SetFollowPedCamThisUpdate("FOLLOW_PED_SKY_DIVING_CAMERA", 3000); - // CAM::SetFollowPedCamThisUpdate("FOLLOW_PED_SKY_DIVING_FAMILY5_CAMERA", 0); - // CAM::SetFollowPedCamThisUpdate("FOLLOW_PED_SKY_DIVING_CAMERA", 0); - inline BOOL SetFollowPedCamThisUpdate(String camName, int p1) { return _i(0x44A113DD6FFC48D1, camName, p1); } // 0x44a113dd6ffc48d10x1425f6acB323 - inline Void UseScriptCamForAmbientPopulationOriginThisFrame(BOOL p0, BOOL p1) { return _i(0x271401846BD26E92, p0, p1); } // 0x271401846bd26e920x8dc53629B323 - inline Void SetFollowPedCamLadderAlignThisUpdate() { return _i(0xC8391C309684595A); } // 0xc8391c309684595a0x1f9de6e4B323 - // minimum: Degrees between -180f and 180f. - // maximum: Degrees between -180f and 180f. - // - // Clamps the gameplay camera's current yaw. - // - // Eg. SetThirdPersonCamRelativeHeadingLimitsThisUpdate(0.0f, 0.0f) will set the horizontal angle directly behind the player. - inline Void SetThirdPersonCamRelativeHeadingLimitsThisUpdate(float minimum, float maximum) { return _i(0x8F993D26E0CA5E8E, minimum, maximum); } // 0x8f993d26e0ca5e8e0x749909acB323 - // minimum: Degrees between -90f and 90f. - // maximum: Degrees between -90f and 90f. - // - // Clamps the gameplay camera's current pitch. - // - // Eg. SetThirdPersonCamRelativePitchLimitsThisUpdate(0.0f, 0.0f) will set the vertical angle directly behind the player. - inline Void SetThirdPersonCamRelativePitchLimitsThisUpdate(float minimum, float maximum) { return _i(0xA516C198B7DCA1E1, minimum, maximum); } // 0xa516c198b7dca1e10xfa3a16e7B323 - // Seems to animate the gameplay camera zoom. - // - // Eg. SetThirdPersonCamOrbitDistanceLimitsThisUpdate(1f, 1000f); - // will animate the camera zooming in from 1000 meters away. - // - // Game scripts use it like this: - // - // // Setting this to 1 prevents V key from changing zoom - // PLAYER::SetPlayerForcedZoom(PLAYER::PlayerId(), 1); - // - // // These restrict how far you can move cam up/down left/right - // CAM::SetThirdPersonCamRelativeHeadingLimitsThisUpdate(-20f, 50f); - // CAM::SetThirdPersonCamRelativePitchLimitsThisUpdate(-60f, 0f); - // - // CAM::SetThirdPersonCamOrbitDistanceLimitsThisUpdate(1f, 1f); - inline Void SetThirdPersonCamOrbitDistanceLimitsThisUpdate(float p0, float distance) { return _i(0xDF2E1F7742402E81, p0, distance); } // 0xdf2e1f7742402e810x77340650B323 - // Forces gameplay cam to specified vehicle as if you were in it - inline Void SetInVehicleCamStateThisUpdate(Vehicle p0, int p1) { return _i(0xE9EA16D6E54CDCA4, p0, p1); } // 0xe9ea16d6e54cdca40x4b22c5cbB323 - // Disables first person camera for the current frame. - // - // Found in decompiled scripts: - // GRAPHICS::DrawDebugText2d("Disabling First Person Cam", 0.5, 0.8, 0.0, 0, 0, 255, 255); - // CAM::DisableOnFootFirstPersonViewThisUpdate(); - inline Void DisableOnFootFirstPersonViewThisUpdate() { return _i(0xDE2EF5DA284CC8DF); } // 0xde2ef5da284cc8dfB323 - inline Void DisableFirstPersonFlashEffectThisUpdate() { return _i(0x59424BD75174C9B1); } // 0x59424bd75174c9b1B323 - inline Void BlockFirstPersonOrientationResetThisUpdate() { return _i(0x9F97DA93681F87EA); } // 0x9f97da93681f87eaB1734 - inline int GetFollowPedCamZoomLevel() { return _i(0x33E6C8EFD0CD93E9); } // 0x33e6c8efd0cd93e90x57583df1B323 - // See viewmode enum in CAM.GetFollowVehicleCamViewMode for return value - inline int GetFollowPedCamViewMode() { return _i(0x8D4D46230B2C353A); } // 0x8d4d46230b2c353a0xa65ff946B323 - // Sets the type of Player camera: - // - // 0 - Third Person Close - // 1 - Third Person Mid - // 2 - Third Person Far - // 4 - First Person - inline Void SetFollowPedCamViewMode(int viewMode) { return _i(0x5A4F9EDF1673F704, viewMode); } // 0x5a4f9edf1673f7040x495dbe8dB323 - inline BOOL IsFollowVehicleCamActive() { return _i(0xCBBDE6D335D6D496); } // 0xcbbde6d335d6d4960x8dd49b77B323 - inline Void SetFollowVehicleCamHighAngleModeThisUpdate(BOOL p0) { return _i(0x91EF6EE6419E5B97, p0); } // 0x91ef6ee6419e5b970x9db5d391B323 - inline Void SetFollowVehicleCamHighAngleModeEveryUpdate(BOOL p0, BOOL p1) { return _i(0x9DFE13ECDC1EC196, p0, p1); } // 0x9dfe13ecdc1ec1960x92302899B323 - inline BOOL SetTableGamesCameraThisUpdate(Hash hash) { return _i(0x79C0E43EB9B944E2, hash); } // 0x79c0e43eb9b944e2B1734 - inline int GetFollowVehicleCamZoomLevel() { return _i(0xEE82280AB767B690); } // 0xee82280ab767b6900x8cd67de3B323 - inline Void SetFollowVehicleCamZoomLevel(int zoomLevel) { return _i(0x19464CB6E4078C8A, zoomLevel); } // 0x19464cb6e4078c8a0x8f55ebbeB323 - // Returns the type of camera: - // - // enum _viewmode //0xA11D7CA8 - // { - // THIRD_PERSON_NEAR = 0, - // THIRD_PERSON_MEDIUM = 1, - // THIRD_PERSON_FAR = 2, - // CINEMATIC = 3, - // FIRST_PERSON = 4 - // }; - inline int GetFollowVehicleCamViewMode() { return _i(0xA4FF579AC0E3AAAE); } // 0xa4ff579ac0e3aaae0xa4b4db03B323 - // Sets the type of Player camera in vehicles: - // viewmode: see CAM.GetFollowVehicleCamViewMode - inline Void SetFollowVehicleCamViewMode(int viewMode) { return _i(0xAC253D7842768F48, viewMode); } // 0xac253d7842768f480xc4fbbbd3B323 - // context: see _GET_CAM_ACTIVE_VIEW_MODE_CONTEXT - inline int GetCamViewModeForContext(int context) { return _i(0xEE778F8C7E1142E2, context); } // 0xee778f8c7e1142e20xf3b148a6B323 - // context: see _GET_CAM_ACTIVE_VIEW_MODE_CONTEXT, viewmode: see CAM.GetFollowVehicleCamViewMode - inline Void SetCamViewModeForContext(int context, int viewMode) { return _i(0x2A2173E46DAECD12, context, viewMode); } // 0x2a2173e46daecd120x1debcb45B323 - // enum Context - // { - // ON_FOOT, - // IN_VEHICLE, - // ON_BIKE, - // IN_BOAT, - // IN_AIRCRAFT, - // IN_SUBMARINE, - // IN_HELI, - // IN_TURRET - // }; - inline int GetCamActiveViewModeContext() { return _i(0x19CAFA3C87F7C2FF); } // 0x19cafa3c87f7c2ffB323 - inline Void UseVehicleCamStuntSettingsThisUpdate() { return _i(0x6493CF69859B116A); } // 0x6493cf69859b116aB791 - // Sets gameplay camera to hash - inline Void UseDedicatedStuntCameraThisUpdate(String camName) { return _i(0x425A920FDB9A0DDA, camName); } // 0x425a920fdb9a0ddaB1180 - inline Void ForceVehicleCamStuntSettingsThisUpdate() { return _i(0x0AA27680A0BD43FA); } // 0x0aa27680a0bd43faB1103 - inline Void SetFollowVehicleCamSeatThisUpdate(int seatIndex) { return _i(0x5C90CAB09951A12F, seatIndex); } // 0x5c90cab09951a12fB1365 - inline BOOL IsAimCamActive() { return _i(0x68EDDA28A5976D07); } // 0x68edda28a5976d070xc24b4f6fB323 - inline BOOL IsAimCamActiveInAccurateMode() { return _i(0x74BD83EA840F6BC9); } // 0x74bd83ea840f6bc90x8f320de4B323 - inline BOOL IsFirstPersonAimCamActive() { return _i(0x5E346D934122613F); } // 0x5e346d934122613f0xd6280468B323 - inline Void DisableAimCamThisUpdate() { return _i(0x1A31FE0049E542F6); } // 0x1a31fe0049e542f60x1baa7182B323 - inline float GetFirstPersonAimCamZoomFactor() { return _i(0x7EC52CC40597D170); } // 0x7ec52cc40597d1700x33951005B323 - inline Void SetFirstPersonAimCamZoomFactor(float zoomFactor) { return _i(0x70894BD0915C5BCA, zoomFactor); } // 0x70894bd0915c5bca0x9f4af763B323 - inline Void SetFirstPersonAimCamZoomFactorLimitsThisUpdate(float p0, float p1) { return _i(0xCED08CBE8EBB97C7, p0, p1); } // 0xced08cbe8ebb97c70x68ba0730B323 - inline Void SetFirstPersonAimCamRelativeHeadingLimitsThisUpdate(float p0, float p1) { return _i(0x2F7F2B26DD3F18EE, p0, p1); } // 0x2f7f2b26dd3f18ee0x2f29f0d5B323 - inline Void SetFirstPersonAimCamRelativePitchLimitsThisUpdate(float p0, float p1) { return _i(0xBCFC632DB7673BF0, p0, p1); } // 0xbcfc632db7673bf00x76dac96cB323 - inline Void SetFirstPersonAimCamNearClipThisUpdate(float p0) { return _i(0x0AF7B437918103B3, p0); } // 0x0af7b437918103b30x0e21069dB323 - inline Void SetThirdPersonAimCamNearClipThisUpdate(float p0) { return _i(0x42156508606DE65E, p0); } // 0x42156508606de65e0x71e9c63eB323 - inline Void _0x42156508606DE65E(float p0) { return _i(0x42156508606DE65E, p0); } - inline Void SetAllowCustomVehicleDriveByCamThisUpdate(BOOL p0) { return _i(0x4008EDF7D6E48175, p0); } // 0x4008edf7d6e481750xd1eebc45B323 - inline Void ForceTightspaceCustomFramingThisUpdate() { return _i(0x380B4968D1E09E55); } // 0x380b4968d1e09e55B1290 - inline Vector3 GetFinalRenderedCamCoord() { return _i(0xA200EB1EE790F448); } // 0xa200eb1ee790f4480x9c84bda0B323 - // p0 seems to consistently be 2 across scripts - // - // Function is called faily often by CAM::CreateCamWithParams - inline Vector3 GetFinalRenderedCamRot(int rotationOrder) { return _i(0x5B4E4C817FCC2DFB, rotationOrder); } // 0x5b4e4c817fcc2dfb0x1ffbefc5B323 - inline Vector3 GetFinalRenderedRemotePlayerCamRot(Player player, int rotationOrder) { return _i(0x26903D9CD1175F2C, player, rotationOrder); } // 0x26903d9cd1175f2c0xacadf916B323 - // Gets some camera fov - inline float GetFinalRenderedCamFov() { return _i(0x80EC114669DAEFF4); } // 0x80ec114669daeff40x721b763bB323 - inline float GetFinalRenderedRemotePlayerCamFov(Player player) { return _i(0x5F35F6732C3FBBA0, player); } // 0x5f35f6732c3fbba00x23e3f106B323 - inline float GetFinalRenderedCamNearClip() { return _i(0xD0082607100D7193); } // 0xd0082607100d71930x457ae195B323 - inline float GetFinalRenderedCamFarClip() { return _i(0xDFC8CBC606FDB0FC); } // 0xdfc8cbc606fdb0fc0x46cb3a49B323 - inline float GetFinalRenderedCamNearDof() { return _i(0xA03502FC581F7D9B); } // 0xa03502fc581f7d9b0x19297a7aB323 - inline float GetFinalRenderedCamFarDof() { return _i(0x9780F32BCAF72431); } // 0x9780f32bcaf724310xf24777caB323 - inline float GetFinalRenderedCamMotionBlurStrength() { return _i(0x162F9D995753DC19); } // 0x162f9d995753dc190x38992e83B323 - inline Void SetGameplayCoordHint(float x, float y, float z, int duration, int blendOutDuration, int blendInDuration, int p6) { return _i(0xD51ADCD2D8BC0FB3, x, y, z, duration, blendOutDuration, blendInDuration, p6); } // 0xd51adcd2d8bc0fb30xf27483c9B323 - inline Void SetGameplayPedHint(Ped ped, float x1, float y1, float z1, BOOL p4, int duration, int blendOutDuration, int blendInDuration) { return _i(0x2B486269ACD548D3, ped, x1, y1, z1, p4, duration, blendOutDuration, blendInDuration); } // 0x2b486269acd548d30x7c27343eB323 - // Focuses the camera on the specified vehicle. - inline Void SetGameplayVehicleHint(Vehicle vehicle, float offsetX, float offsetY, float offsetZ, BOOL p4, int time, int easeInTime, int easeOutTime) { return _i(0xA2297E18F3E71C2E, vehicle, offsetX, offsetY, offsetZ, p4, time, easeInTime, easeOutTime); } // 0xa2297e18f3e71c2e0x2c9a11d8B323 - inline Void SetGameplayObjectHint(Object object, float xOffset, float yOffset, float zOffset, BOOL p4, int time, int easeInTime, int easeOutTime) { return _i(0x83E87508A2CA2AC6, object, xOffset, yOffset, zOffset, p4, time, easeInTime, easeOutTime); } // 0x83e87508a2ca2ac60x2ed5e2f8B323 - // p8 could be some sort of flag. Scripts use: - // -244429742 - // 0 - // 1726668277 - // 1844968929 - inline Void SetGameplayEntityHint(Entity entity, float xOffset, float yOffset, float zOffset, BOOL p4, int time, int easeInTime, int easeOutTime, int p8) { return _i(0x189E955A8313E298, entity, xOffset, yOffset, zOffset, p4, time, easeInTime, easeOutTime, p8); } // 0x189e955a8313e2980x66c32306B323 - inline BOOL IsGameplayHintActive() { return _i(0xE520FF1AD2785B40); } // 0xe520ff1ad2785b400xad8da205B323 - inline Void StopGameplayHint(BOOL p0) { return _i(0xF46C581C61718916, p0); } // 0xf46c581c617189160x1bc28b7bB323 - // This native does absolutely nothing, just a nullsub - inline Void StopGameplayHintBeingCancelledThisUpdate(BOOL p0) { return _i(0xCCD078C2665D2973, p0); } // 0xccd078c2665d29730xcafee798B323 - inline Void StopCodeGameplayHint(BOOL p0) { return _i(0x247ACBC4ABBC9D1C, p0); } // 0x247acbc4abbc9d1cB323 - inline BOOL IsCodeGameplayHintActive() { return _i(0xBF72910D0F26F025); } // 0xbf72910d0f26f025B323 - inline Void SetGameplayHintFov(float FOV) { return _i(0x513403FB9C56211F, FOV); } // 0x513403fb9c56211f0x96fd173bB323 - inline Void SetGameplayHintFollowDistanceScalar(float value) { return _i(0xF8BDBF3D573049A1, value); } // 0xf8bdbf3d573049a10x72e8cd3aB323 - inline Void SetGameplayHintBaseOrbitPitchOffset(float value) { return _i(0xD1F8363DFAD03848, value); } // 0xd1f8363dfad038480x79472ae3B323 - inline Void SetGameplayHintCameraRelativeSideOffset(float xOffset) { return _i(0x5D7B620DAE436138, xOffset); } // 0x5d7b620dae4361380xfc7464a0B323 - inline Void SetGameplayHintCameraRelativeVerticalOffset(float yOffset) { return _i(0xC92717EF615B6704, yOffset); } // 0xc92717ef615b67040x3554aa0eB323 - inline Void SetGameplayHintCameraBlendToFollowPedMediumViewMode(BOOL toggle) { return _i(0xE3433EADAAF7EE40, toggle); } // 0xe3433eadaaf7ee400x2f0ce859B323 - inline Void SetCinematicButtonActive(BOOL p0) { return _i(0x51669F7D1FB53D9F, p0); } // 0x51669f7d1fb53d9f0x3fbc5d00B323 - inline BOOL IsCinematicCamRendering() { return _i(0xB15162CB5826E9E8); } // 0xb15162cb5826e9e80x80471ad9B323 - // p0 argument found in the b617d scripts: "DRUNK_SHAKE" - // - // Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json - inline Void ShakeCinematicCam(String shakeType, float amount) { return _i(0xDCE214D9ED58F3CF, shakeType, amount); } // 0xdce214d9ed58f3cf0x61815f31B323 - inline BOOL IsCinematicCamShaking() { return _i(0xBBC08F6B4CB8FF0A); } // 0xbbc08f6b4cb8ff0a0x8376d939B323 - inline Void SetCinematicCamShakeAmplitude(float p0) { return _i(0xC724C701C30B2FE7, p0); } // 0xc724c701c30b2fe70x67510c4bB323 - inline Void StopCinematicCamShaking(BOOL p0) { return _i(0x2238E588E588A6D7, p0); } // 0x2238e588e588a6d70x71c12904B323 - inline Void DisableCinematicBonnetCameraThisUpdate() { return _i(0xADFF1B2A555F5FBA); } // 0xadff1b2a555f5fba0x5ac6dac9B323 - inline Void DisableCinematicVehicleIdleModeThisUpdate() { return _i(0x62ECFCFDEE7885D6); } // 0x62ecfcfdee7885d60x837f8581B323 - // Resets the vehicle idle camera timer. Calling this in a loop will disable the idle camera. - inline Void InvalidateCinematicVehicleIdleMode() { return _i(0x9E4CFFF989258472); } // 0x9e4cfff9892584720x65dde8afB323 - // Resets the idle camera timer. Calling that in a loop once every few seconds is enough to disable the idle cinematic camera. - inline Void InvalidateIdleCam() { return _i(0xF4F2C0D4EE209E20); } // 0xf4f2c0d4ee209e200xd75cdd75B323 - inline BOOL IsCinematicIdleCamRendering() { return _i(0xCA9D2AA3E326D720); } // 0xca9d2aa3e326d7200x96a07066B323 - inline BOOL IsCinematicFirstPersonVehicleInteriorCamRendering() { return _i(0x4F32C0D5A90A9B40); } // 0x4f32c0d5a90a9b40B323 - // hash is always JOAAT("CAMERA_MAN_SHOT") in decompiled scripts - inline Void CreateCinematicShot(Hash p0, int time, BOOL p2, Entity entity) { return _i(0x741B0129D4560F31, p0, time, p2, entity); } // 0x741b0129d4560f310xac494e35B323 - // Hash is always JOAAT("CAMERA_MAN_SHOT") in decompiled scripts - inline BOOL IsCinematicShotActive(Hash p0) { return _i(0xCC9F3371A7C28BC9, p0); } // 0xcc9f3371a7c28bc90xa4049042B323 - // Only used once in carsteal3 with p0 set to -1096069633 (CAMERA_MAN_SHOT) - inline Void StopCinematicShot(Hash p0) { return _i(0x7660C6E75D3A078E, p0); } // 0x7660c6e75d3a078e0xd78358c5B323 - inline Void ForceCinematicRenderingThisUpdate(BOOL toggle) { return _i(0xA41BCD7213805AAC, toggle); } // 0xa41bcd7213805aac0xfbb85e02B323 - inline Void SetCinematicNewsChannelActiveThisUpdate() { return _i(0xDC9DA9E8789F5246); } // 0xdc9da9e8789f52460x4938c82fB323 - // Toggles the vehicle cinematic cam; requires the player ped to be in a vehicle to work. - inline Void SetCinematicModeActive(BOOL toggle) { return _i(0xDCF0754AC3D6FD4E, toggle); } // 0xdcf0754ac3d6fd4e0x2009e747B323 - inline BOOL IsInVehicleMobilePhoneCameraRendering() { return _i(0x1F2300CB7FA7B7F6); } // 0x1f2300cb7fa7b7f60x6739ad55B323 - inline BOOL DisableCinematicSlowMoThisUpdate() { return _i(0x17FCA7199A530203); } // 0x17fca7199a530203B323 - inline BOOL IsBonnetCinematicCamRendering() { return _i(0xD7360051C885628B); } // 0xd7360051c885628b0x1dd55f13B372 - // Tests some cinematic camera flags - inline BOOL IsCinematicCamInputActive() { return _i(0xF5F1E89A970B7796); } // 0xf5f1e89a970b77960x1a900c84B1493 - inline Void IgnoreMenuPreferenceForBonnetCameraThisUpdate() { return _i(0x7B8A361C1813FBEF); } // 0x7b8a361c1813fbefB573 - inline Void BypassCutsceneCamRenderingThisUpdate() { return _i(0xDB629FFD9285FA06); } // 0xdb629ffd9285fa06B323 - inline Void StopCutsceneCamShaking(Any p0) { return _i(0x324C5AA411DA7737, p0); } // 0x324c5aa411da7737B323 - // Hardcoded to only work in multiplayer. - inline Void SetCutsceneCamFarClipThisUpdate(float p0) { return _i(0x12DED8CA53D47EA5, p0); } // 0x12ded8ca53d47ea50x067ba6f5B323 - inline Ped GetFocusPedOnScreen(float p0, int p1, float p2, float p3, float p4, float p5, float p6, int p7, int p8) { return _i(0x89215EC747DF244A, p0, p1, p2, p3, p4, p5, p6, p7, p8); } // 0x89215ec747df244a0xfd99be2bB323 - inline Void DisableNearClipScanThisUpdate() { return _i(0x5A43C76F7FC7BA5F); } // 0x5a43c76f7fc7ba5f0xe206c450B323 - // if p0 is 0, effect is cancelled - // - // if p0 is 1, effect zooms in, gradually tilts cam clockwise apx 30 degrees, wobbles slowly. Motion blur is active until cancelled. - // - // if p0 is 2, effect immediately tilts cam clockwise apx 30 degrees, begins to wobble slowly, then gradually tilts cam back to normal. The wobbling will continue until the effect is cancelled. - inline Void SetCamDeathFailEffectState(int p0) { return _i(0x80C8B1846639BB19, p0); } // 0x80c8b1846639bb190xb06ccd38B323 - inline Void SetFirstPersonFlashEffectType(Any p0) { return _i(0x5C41E6BABC9E2112, p0); } // 0x5c41e6babc9e2112B323 - // From b617 scripts: - // - // CAM::SetFirstPersonFlashEffectVehicleModelName("DINGHY"); - // CAM::SetFirstPersonFlashEffectVehicleModelName("ISSI2"); - // CAM::SetFirstPersonFlashEffectVehicleModelName("SPEEDO"); - inline Void SetFirstPersonFlashEffectVehicleModelName(String vehicleName) { return _i(0x21E253A7F8DA5DFB, vehicleName); } // 0x21e253a7f8da5dfbB323 - inline Void SetFirstPersonFlashEffectVehicleModelHash(Hash vehicleModel) { return _i(0x11FA5D3479C7DD47, vehicleModel); } // 0x11fa5d3479c7dd47B323 - inline BOOL IsAllowedIndependentCameraModes() { return _i(0xEAF0FA793D05C592); } // 0xeaf0fa793d05c592B323 - inline Void CameraPreventCollisionSettingsForTripleheadInInteriorsThisUpdate() { return _i(0x62374889A4D59F72); } // 0x62374889a4d59f72B877 - inline float ReplayGetMaxDistanceAllowedFromPlayer() { return _i(0x8BFCEB5EA1B161B6); } // 0x8bfceb5ea1b161b6B323 + // ease - smooth transition between the camera's positions + // easeTime - Time in milliseconds for the transition to happen + // + // If you have created a script (rendering) camera, and want to go back to the + // character (gameplay) camera, call this native with render set to 0. + // Setting ease to 1 will smooth the transition. + inline Void RenderScriptCams(BOOL render, BOOL ease, int easeTime, BOOL p3, BOOL p4, Any p5) { return _i(0x07E5B515DB0636FC, render, ease, easeTime, p3, p4, p5); } // 0x07e5b515db0636fc0x74337969B323 + // This native makes the gameplay camera zoom into first person/third person with a special effect. + inline Void StopRenderingScriptCamsUsingCatchUp(BOOL render, float p1, int p2, Any p3) { return _i(0xC819F3CBB62BF692, render, p1, p2, p3); } // 0xc819f3cbb62bf6920xd3c08183B323 + // "DEFAULT_SCRIPTED_CAMERA" + // "DEFAULT_ANIMATED_CAMERA" + // "DEFAULT_SPLINE_CAMERA" + // "DEFAULT_SCRIPTED_FLY_CAMERA" + // "TIMED_SPLINE_CAMERA" + inline Cam CreateCam(String camName, BOOL p1) { return _i(0xC3981DCE61D9E13F, camName, p1); } // 0xc3981dce61d9e13f0xe9bf2a7dB323 + // camName is always set to "DEFAULT_SCRIPTED_CAMERA" in Rockstar's scripts. + // ------------ + // Camera names found in the b617d scripts: + // "DEFAULT_ANIMATED_CAMERA" + // "DEFAULT_SCRIPTED_CAMERA" + // "DEFAULT_SCRIPTED_FLY_CAMERA" + // "DEFAULT_SPLINE_CAMERA" + // ------------ + // Side Note: It seems p8 is basically to represent what would be the BOOL p1 within CreateCam native. As well as the p9 since it's always 2 in scripts seems to represent what would be the last param within SetCamRot native which normally would be 2. + inline Cam CreateCamWithParams(String camName, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, float fov, BOOL p8, int p9) { return _i(0xB51194800B257161, camName, posX, posY, posZ, rotX, rotY, rotZ, fov, p8, p9); } // 0xb51194800b2571610x23b02f15B323 + inline Cam CreateCamera(Hash camHash, BOOL p1) { return _i(0x5E3CF89C6BCCA67D, camHash, p1); } // 0x5e3cf89c6bcca67d0x5d6739aeB323 + // p9 uses 2 by default + inline Cam CreateCameraWithParams(Hash camHash, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, float fov, BOOL p8, Any p9) { return _i(0x6ABFA3E16460F22D, camHash, posX, posY, posZ, rotX, rotY, rotZ, fov, p8, p9); } // 0x6abfa3e16460f22d0x0688be9aB323 + // BOOL param indicates whether the cam should be destroyed if it belongs to the calling script. + inline Void DestroyCam(Cam cam, BOOL bScriptHostCam) { return _i(0x865908C81A2C22E9, cam, bScriptHostCam); } // 0x865908c81a2c22e90xc39302bdB323 + // BOOL param indicates whether the cam should be destroyed if it belongs to the calling script. + inline Void DestroyAllCams(BOOL bScriptHostCam) { return _i(0x8E5FB15663F79120, bScriptHostCam); } // 0x8e5fb15663f791200x10c151ceB323 + // Returns whether or not the passed camera handle exists. + inline BOOL DoesCamExist(Cam cam) { return _i(0xA7A932170592B50E, cam); } // 0xa7a932170592b50e0x1ef89dc0B323 + // Set camera as active/inactive. + inline Void SetCamActive(Cam cam, BOOL active) { return _i(0x026FB97D0A425F84, cam, active); } // 0x026fb97d0a425f840x064659c2B323 + // Returns whether or not the passed camera handle is active. + inline BOOL IsCamActive(Cam cam) { return _i(0xDFB2B516207D3534, cam); } // 0xdfb2b516207d35340x4b58f177B323 + inline BOOL IsCamRendering(Cam cam) { return _i(0x02EC0AF5C5A49B7A, cam); } // 0x02ec0af5c5a49b7a0x6ec6b5b2B323 + inline Cam GetRenderingCam() { return _i(0x5234F9F10919EABA); } // 0x5234f9f10919eaba0x0fcf4df1B323 + inline Vector3 GetCamCoord(Cam cam) { return _i(0xBAC038F7459AE5AE, cam); } // 0xbac038f7459ae5ae0x7c40f09cB323 + // The last parameter, as in other "ROT" methods, is usually 2. + inline Vector3 GetCamRot(Cam cam, int rotationOrder) { return _i(0x7D304C1C955E3E12, cam, rotationOrder); } // 0x7d304c1c955e3e120xdac84c9fB323 + inline float GetCamFov(Cam cam) { return _i(0xC3330A45CCCDB26A, cam); } // 0xc3330a45cccdb26a0xd6e9fcf5B323 + inline float GetCamNearClip(Cam cam) { return _i(0xC520A34DAFBF24B1, cam); } // 0xc520a34dafbf24b10xcfcd35eeB323 + inline float GetCamFarClip(Cam cam) { return _i(0xB60A9CFEB21CA6AA, cam); } // 0xb60a9cfeb21ca6aa0x09f119b8B323 + inline float GetCamNearDof(Cam cam) { return _i(0xC2612D223D915A1C, cam); } // 0xc2612d223d915a1cB2699 + inline float GetCamFarDof(Cam cam) { return _i(0x255F8DAFD540D397, cam); } // 0x255f8dafd540d3970x98c5cce9B323 + inline float GetCamDofStrength(Cam cam) { return _i(0x06D153C0B99B6128, cam); } // 0x06d153c0b99b6128B2699 + inline Void SetCamParams(Cam cam, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, float fieldOfView, Any p8, int p9, int p10, int p11) { return _i(0xBFD8727AEA3CCEBA, cam, posX, posY, posZ, rotX, rotY, rotZ, fieldOfView, p8, p9, p10, p11); } // 0xbfd8727aea3cceba0x2167cebfB323 + // Sets the position of the cam. + inline Void SetCamCoord(Cam cam, float posX, float posY, float posZ) { return _i(0x4D41783FB745E42E, cam, posX, posY, posZ); } // 0x4d41783fb745e42e0x7a8053afB323 + // Sets the rotation of the cam. + // Last parameter unknown. + // + // Last parameter seems to always be set to 2. + inline Void SetCamRot(Cam cam, float rotX, float rotY, float rotZ, int rotationOrder) { return _i(0x85973643155D0B07, cam, rotX, rotY, rotZ, rotationOrder); } // 0x85973643155d0b070xee38b3c1B323 + // Sets the field of view of the cam. + // --------------------------------------------- + // Min: 1.0f + // Max: 130.0f + inline Void SetCamFov(Cam cam, float fieldOfView) { return _i(0xB13C14F66A00D047, cam, fieldOfView); } // 0xb13c14f66a00d0470xd3d5d74fB323 + inline Void SetCamNearClip(Cam cam, float nearClip) { return _i(0xC7848EFCCC545182, cam, nearClip); } // 0xc7848efccc5451820x46db13b1B323 + inline Void SetCamFarClip(Cam cam, float farClip) { return _i(0xAE306F2A904BF86E, cam, farClip); } // 0xae306f2a904bf86e0x0d23e381B323 + inline Void ForceCamFarClip(Cam cam, float p1) { return _i(0xAABD62873FFB1A33, cam, p1); } // 0xaabd62873ffb1a33B2189 + inline Void SetCamMotionBlurStrength(Cam cam, float strength) { return _i(0x6F0F77FBA9A8F2E6, cam, strength); } // 0x6f0f77fba9a8f2e60xfd6e0d67B323 + inline Void SetCamNearDof(Cam cam, float nearDOF) { return _i(0x3FA4BF0A7AB7DE2C, cam, nearDOF); } // 0x3fa4bf0a7ab7de2c0xf28254dfB323 + inline Void SetCamFarDof(Cam cam, float farDOF) { return _i(0xEDD91296CD01AEE0, cam, farDOF); } // 0xedd91296cd01aee00x58515e8eB323 + inline Void SetCamDofStrength(Cam cam, float dofStrength) { return _i(0x5EE29B4D7D5DF897, cam, dofStrength); } // 0x5ee29b4d7d5df8970x3cc4eb3fB323 + inline Void SetCamDofPlanes(Cam cam, float p1, float p2, float p3, float p4) { return _i(0x3CF48F6F96E749DC, cam, p1, p2, p3, p4); } // 0x3cf48f6f96e749dc0xad6c2b8fB323 + inline Void SetCamUseShallowDofMode(Cam cam, BOOL toggle) { return _i(0x16A96863A17552BB, cam, toggle); } // 0x16a96863a17552bb0x8306c256B323 + inline Void SetUseHiDof() { return _i(0xA13B0222F3D94A94); } // 0xa13b0222f3d94a940x8bbf2950B323 + // Only used in R* Script fm_mission_controller_2020 + inline Void SetUseHiDofOnSyncedSceneThisUpdate() { return _i(0x731A880555DA3647); } // 0x731a880555da3647B2699 + inline Void SetCamDofOverriddenFocusDistance(Cam camera, float p1) { return _i(0xF55E4046F6F831DC, camera, p1); } // 0xf55e4046f6f831dcB323 + inline Void SetCamDofOverriddenFocusDistanceBlendLevel(Any p0, float p1) { return _i(0xE111A7C0D200CBC5, p0, p1); } // 0xe111a7c0d200cbc5B323 + // This native has its name defined inside its codE + // + inline Void SetCamDofFnumberOfLens(Cam camera, float p1) { return _i(0x7DD234D6F3914C5B, camera, p1); } // 0x7dd234d6f3914c5bB323 + // Native name labeled within its code + inline Void SetCamDofFocalLengthMultiplier(Cam camera, float multiplier) { return _i(0x47B595D60664CFFA, camera, multiplier); } // 0x47b595d60664cffaB1011 + // This native has a name defined inside its code + inline Void SetCamDofFocusDistanceBias(Cam camera, float p1) { return _i(0xC669EEA5D031B7DE, camera, p1); } // 0xc669eea5d031b7deB323 + // This native has a name defined inside its code + inline Void SetCamDofMaxNearInFocusDistance(Cam camera, float p1) { return _i(0xC3654A441402562D, camera, p1); } // 0xc3654a441402562dB323 + // This native has a name defined inside its code + inline Void SetCamDofMaxNearInFocusDistanceBlendLevel(Cam camera, float p1) { return _i(0x2C654B4943BDDF7C, camera, p1); } // 0x2c654b4943bddf7cB323 + // This native has a name defined inside its code + inline Void SetCamDofShouldKeepLookAtTargetInFocus(Cam camera, BOOL state) { return _i(0x7CF3AF51DCFE4108, camera, state); } // 0x7cf3af51dcfe4108B2944 + // Last param determines if its relative to the Entity + inline Void AttachCamToEntity(Cam cam, Entity entity, float xOffset, float yOffset, float zOffset, BOOL isRelative) { return _i(0xFEDB7D269E8C60E3, cam, entity, xOffset, yOffset, zOffset, isRelative); } // 0xfedb7d269e8c60e30xad7c45f6B323 + inline Void AttachCamToPedBone(Cam cam, Ped ped, int boneIndex, float x, float y, float z, BOOL heading) { return _i(0x61A3DBA14AB7F411, cam, ped, boneIndex, x, y, z, heading); } // 0x61a3dba14ab7f4110x506bb35cB323 + inline Void HardAttachCamToPedBone(Cam cam, Ped ped, int boneIndex, float p3, float p4, float p5, float p6, float p7, float p8, BOOL p9) { return _i(0x149916F50C34A40D, cam, ped, boneIndex, p3, p4, p5, p6, p7, p8, p9); } // 0x149916f50c34a40dB1180 + // Example from am_mp_drone script: + // + // CAM::HardAttachCamToEntity(Local_190.f_169, NETWORK::NetToObj(Local_190.f_159), 0f, 0f, 180f, Var0, 1); + inline Void HardAttachCamToEntity(Cam cam, Entity entity, float xRot, float yRot, float zRot, float xOffset, float yOffset, float zOffset, BOOL isRelative) { return _i(0x202A5ED9CE01D6E7, cam, entity, xRot, yRot, zRot, xOffset, yOffset, zOffset, isRelative); } // 0x202a5ed9ce01d6e7B2189 + // This native works with vehicles only. Bone indexes are usually given by this native GetEntityBoneIndexByName. + inline Void AttachCamToVehicleBone(Cam cam, Vehicle vehicle, int boneIndex, BOOL relativeRotation, float rotX, float rotY, float rotZ, float offsetX, float offsetY, float offsetZ, BOOL fixedDirection) { return _i(0x8DB3F12A02CAEF72, cam, vehicle, boneIndex, relativeRotation, rotX, rotY, rotZ, offsetX, offsetY, offsetZ, fixedDirection); } // 0x8db3f12a02caef72B1290 + inline Void DetachCam(Cam cam) { return _i(0xA2FABBE87F4BAD82, cam); } // 0xa2fabbe87f4bad820xf4fbf14aB323 + // The native seems to only be called once. + // + // The native is used as so, + // CAM::SetCamInheritRollVehicle(l_544, getElem(2, &l_525, 4)); + // In the exile1 script. + inline Void SetCamInheritRollVehicle(Cam cam, BOOL p1) { return _i(0x45F1DE9C34B93AE6, cam, p1); } // 0x45f1de9c34b93ae60xe4bd5342B323 + inline Void PointCamAtCoord(Cam cam, float x, float y, float z) { return _i(0xF75497BB865F0803, cam, x, y, z); } // 0xf75497bb865f08030x914bc21aB323 + // p5 always seems to be 1 i.e TRUE + inline Void PointCamAtEntity(Cam cam, Entity entity, float p2, float p3, float p4, BOOL p5) { return _i(0x5640BFF86B16E8DC, cam, entity, p2, p3, p4, p5); } // 0x5640bff86b16e8dc0x7597a0f7B323 + // Parameters p0-p5 seems correct. The BOOL p6 is unknown, but through every X360 script it's always 1. Please correct p0-p5 if any prove to be wrong. + inline Void PointCamAtPedBone(Cam cam, Ped ped, int boneIndex, float x, float y, float z, BOOL p6) { return _i(0x68B2B5F33BA63C41, cam, ped, boneIndex, x, y, z, p6); } // 0x68b2b5f33ba63c410x09f47049B323 + inline Void StopCamPointing(Cam cam) { return _i(0xF33AB75780BA57DE, cam); } // 0xf33ab75780ba57de0x5435f6a5B323 + // Allows you to aim and shoot at the direction the camera is facing. + inline Void SetCamAffectsAiming(Cam cam, BOOL toggle) { return _i(0x8C1DC7770C51DC8D, cam, toggle); } // 0x8c1dc7770c51dc8d0x0c74f9afB323 + // Rotates the radar to match the camera's Z rotation + inline Void SetCamControlsMiniMapHeading(Cam cam, BOOL toggle) { return _i(0x661B5C8654ADD825, cam, toggle); } // 0x661b5c8654add8250xe1a0b2f1B323 + // When set to true shadows appear more smooth but less detailed. + // Set to false by default. + inline Void SetCamIsInsideVehicle(Cam cam, BOOL toggle) { return _i(0xA2767257A320FC82, cam, toggle); } // 0xa2767257a320fc82B323 + inline Void AllowMotionBlurDecay(Any p0, BOOL p1) { return _i(0x271017B9BA825366, p0, p1); } // 0x271017b9ba8253660x43220969B323 + // NOTE: Debugging functions are not present in the retail version of the game. + inline Void SetCamDebugName(Cam camera, String name) { return _i(0x1B93E0107865DD40, camera, name); } // 0x1b93e0107865dd400x9b00df3fB323 + inline Cam GetDebugCam() { return _i(0x77C3CEC46BE286F6); } // 0x77c3cec46be286f6B2372 + // I filled p1-p6 (the floats) as they are as other natives with 6 floats in a row are similar and I see no other method. So if a test from anyone proves them wrong please correct. + // + // p7 (length) determines the length of the spline, affects camera path and duration of transition between previous node and this one + // + // p8 big values ~100 will slow down the camera movement before reaching this node + // + // p9 != 0 seems to override the rotation/pitch (BOOL?) + inline Void AddCamSplineNode(Cam camera, float x, float y, float z, float xRot, float yRot, float zRot, int length, int smoothingStyle, int rotationOrder) { return _i(0x8609C75EC438FB3B, camera, x, y, z, xRot, yRot, zRot, length, smoothingStyle, rotationOrder); } // 0x8609c75ec438fb3b0xad3c7eaaB323 + // p0 is the spline camera to which the node is being added. + // p1 is the camera used to create the node. + // p3 is always 3 in scripts. It might be smoothing style or rotation order. + inline Void AddCamSplineNodeUsingCameraFrame(Cam cam, Cam cam2, int length, int p3) { return _i(0x0A9F2A468B328E74, cam, cam2, length, p3); } // 0x0a9f2a468b328e740x30510511B323 + // p0 is the spline camera to which the node is being added. + // p1 is the camera used to create the node. + // p3 is always 3 in scripts. It might be smoothing style or rotation order. + inline Void AddCamSplineNodeUsingCamera(Cam cam, Cam cam2, int length, int p3) { return _i(0x0FB82563989CF4FB, cam, cam2, length, p3); } // 0x0fb82563989cf4fb0xba6c085bB323 + // p2 is always 2 in scripts. It might be smoothing style or rotation order. + inline Void AddCamSplineNodeUsingGameplayFrame(Cam cam, int length, int p2) { return _i(0x609278246A29CA34, cam, length, p2); } // 0x609278246a29ca340xb4737f03B323 + inline Void SetCamSplinePhase(Cam cam, float p1) { return _i(0x242B5874F0A4E052, cam, p1); } // 0x242b5874f0a4e0520xf0aed233B323 + // Can use this with SetCamSplinePhase to set the float it this native returns. + // + // (returns 1.0f when no nodes has been added, reached end of non existing spline) + inline float GetCamSplinePhase(Cam cam) { return _i(0xB5349E36C546509A, cam); } // 0xb5349e36c546509a0x39784dd9B323 + // I'm pretty sure the parameter is the camera as usual, but I am not certain so I'm going to leave it as is. + inline float GetCamSplineNodePhase(Cam cam) { return _i(0xD9D0E694C8282C96, cam); } // 0xd9d0e694c8282c960x7b9522f6B323 + // I named p1 as timeDuration as it is obvious. I'm assuming tho it is ran in ms(Milliseconds) as usual. + inline Void SetCamSplineDuration(Cam cam, int timeDuration) { return _i(0x1381539FEE034CDA, cam, timeDuration); } // 0x1381539fee034cda0x3e91fc8aB323 + inline Void SetCamSplineSmoothingStyle(Cam cam, int smoothingStyle) { return _i(0xD1B0F412F109EA5D, cam, smoothingStyle); } // 0xd1b0f412f109ea5d0x15e141ceB323 + inline int GetCamSplineNodeIndex(Cam cam) { return _i(0xB22B17DF858716A6, cam); } // 0xb22b17df858716a60xf8aeb6bdB323 + inline Void SetCamSplineNodeEase(Cam cam, int easingFunction, int p2, float p3) { return _i(0x83B8201ED82A9A2D, cam, easingFunction, p2, p3); } // 0x83b8201ed82a9a2d0x21d275daB323 + inline Void SetCamSplineNodeVelocityScale(Cam cam, int p1, float scale) { return _i(0xA6385DEB180F319F, cam, p1, scale); } // 0xa6385deb180f319f0xa3bd9e94B323 + inline Void OverrideCamSplineVelocity(Cam cam, int p1, float p2, float p3) { return _i(0x40B62FA033EB0346, cam, p1, p2, p3); } // 0x40b62fa033eb03460x326a17e2B323 + // Max value for p1 is 15. + inline Void OverrideCamSplineMotionBlur(Cam cam, int p1, float p2, float p3) { return _i(0x7DCF7C708D292D55, cam, p1, p2, p3); } // 0x7dcf7c708d292d550x633179e6B323 + inline Void SetCamSplineNodeExtraFlags(Cam cam, int p1, int flags) { return _i(0x7BF1A54AE67AC070, cam, p1, flags); } // 0x7bf1a54ae67ac0700xc90b2ddcB323 + inline BOOL IsCamSplinePaused(Cam cam) { return _i(0x0290F35C0AD97864, cam); } // 0x0290f35c0ad978640x60b34ff5B323 + // Previous declaration Void SetCamActiveWithInterp(Cam camTo, Cam camFrom, int duration, BOOL easeLocation, BOOL easeRotation) is completely wrong. The last two params are integers not BOOLs... + // + inline Void SetCamActiveWithInterp(Cam camTo, Cam camFrom, int duration, int easeLocation, int easeRotation) { return _i(0x9FBDA379383A52A4, camTo, camFrom, duration, easeLocation, easeRotation); } // 0x9fbda379383a52a40x7983e7f0B323 + inline BOOL IsCamInterpolating(Cam cam) { return _i(0x036F97C908C2B52C, cam); } // 0x036f97c908c2b52c0x7159cb5dB323 + // Possible shake types (updated b617d): + // + // DEATH_FAIL_IN_EFFECT_SHAKE + // DRUNK_SHAKE + // FAMILY5_DRUG_TRIP_SHAKE + // HAND_SHAKE + // JOLT_SHAKE + // LARGE_EXPLOSION_SHAKE + // MEDIUM_EXPLOSION_SHAKE + // SMALL_EXPLOSION_SHAKE + // ROAD_VIBRATION_SHAKE + // SKY_DIVING_SHAKE + // VIBRATE_SHAKE + // + // Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json + inline Void ShakeCam(Cam cam, String type, float amplitude) { return _i(0x6A25241C340D3822, cam, type, amplitude); } // 0x6a25241c340d38220x1d4211b0B323 + // Example from michael2 script. + // + // CAM::AnimatedShakeCam(l_5069, "shake_cam_all@", "light", "", 1f); + inline Void AnimatedShakeCam(Cam cam, String p1, String p2, String p3, float amplitude) { return _i(0xA2746EEAE3E577CD, cam, p1, p2, p3, amplitude); } // 0xa2746eeae3e577cd0xe1168767B323 + inline BOOL IsCamShaking(Cam cam) { return _i(0x6B24BFE83A2BE47B, cam); } // 0x6b24bfe83a2be47b0x0961fd9bB323 + inline Void SetCamShakeAmplitude(Cam cam, float amplitude) { return _i(0xD93DB43B82BC0D00, cam, amplitude); } // 0xd93db43b82bc0d000x60ff6382B323 + inline Void StopCamShaking(Cam cam, BOOL p1) { return _i(0xBDECF64367884AC3, cam, p1); } // 0xbdecf64367884ac30x40d0eb87B323 + // CAM::ShakeScriptGlobal("HAND_SHAKE", 0.2); + // + // Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json + inline Void ShakeScriptGlobal(String p0, float p1) { return _i(0xF4C8CF9E353AFECA, p0, p1); } // 0xf4c8cf9e353afeca0x2b0f05cdB323 + // CAM::AnimatedShakeScriptGlobal("SHAKE_CAM_medium", "medium", "", 0.5f); + // + // Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json + inline Void AnimatedShakeScriptGlobal(String p0, String p1, String p2, float p3) { return _i(0xC2EAE3FB8CDBED31, p0, p1, p2, p3); } // 0xc2eae3fb8cdbed310xcb75bd9cB323 + // In drunk_controller.c4, sub_309 + // if (CAM::IsScriptGlobalShaking()) { + // CAM::StopScriptGlobalShaking(0); + // } + inline BOOL IsScriptGlobalShaking() { return _i(0xC912AF078AF19212); } // 0xc912af078af192120x6aefe6a5B323 + // In drunk_controller.c4, sub_309 + // if (CAM::IsScriptGlobalShaking()) { + // CAM::StopScriptGlobalShaking(0); + // } + inline Void StopScriptGlobalShaking(BOOL p0) { return _i(0x1C9D7949FA533490, p0); } // 0x1c9d7949fa5334900x26fcfb96B323 + // p1: 0..16 + inline Void TriggerVehiclePartBrokenCameraShake(Vehicle vehicle, int p1, float p2) { return _i(0x5D96CFB59DA076A0, vehicle, p1, p2); } // 0x5d96cfb59da076a0B2060 + // Atleast one time in a script for the zRot Rockstar uses GetEntityHeading to help fill the parameter. + // + // p9 is unknown at this time. + // p10 throughout all the X360 Scripts is always 2. + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline BOOL PlayCamAnim(Cam cam, String animName, String animDictionary, float x, float y, float z, float xRot, float yRot, float zRot, BOOL p9, int p10) { return _i(0x9A2D0FB2E7852392, cam, animName, animDictionary, x, y, z, xRot, yRot, zRot, p9, p10); } // 0x9a2d0fb2e78523920xbcefb87eB323 + inline BOOL IsCamPlayingAnim(Cam cam, String animName, String animDictionary) { return _i(0xC90621D8A0CEECF2, cam, animName, animDictionary); } // 0xc90621d8a0ceecf20xb998cb49B323 + inline Void SetCamAnimCurrentPhase(Cam cam, float phase) { return _i(0x4145A4C44FF3B5A6, cam, phase); } // 0x4145a4c44ff3b5a60x3cb1d17fB323 + inline float GetCamAnimCurrentPhase(Cam cam) { return _i(0xA10B2DB49E92A6B0, cam); } // 0xa10b2db49e92a6b00x345f72d0B323 + // Examples: + // + // CAM::PlaySynchronizedCamAnim(l_2734, NETWORK::NetworkGetLocalSceneFromNetworkId(l_2739), "PLAYER_EXIT_L_CAM", "mp_doorbell"); + // + // CAM::PlaySynchronizedCamAnim(l_F0D[7/*1*/], l_F4D[15/*1*/], "ah3b_attackheli_cam2", "missheistfbi3b_helicrash"); + inline BOOL PlaySynchronizedCamAnim(Any p0, Any p1, String animName, String animDictionary) { return _i(0xE32EFE9AB4A9AA0C, p0, p1, animName, animDictionary); } // 0xe32efe9ab4a9aa0c0x9458459eB323 + inline Void SetFlyCamHorizontalResponse(Cam cam, float p1, float p2, float p3) { return _i(0x503F5920162365B2, cam, p1, p2, p3); } // 0x503f5920162365b20x56f9ed27B323 + inline Void SetFlyCamVerticalResponse(Cam cam, float p1, float p2, float p3) { return _i(0xE827B9382CFB41BA, cam, p1, p2, p3); } // 0xe827b9382cfb41baB791 + inline Void SetFlyCamMaxHeight(Cam cam, float height) { return _i(0xF9D02130ECDD1D77, cam, height); } // 0xf9d02130ecdd1d770x71570dbaB323 + inline Void SetFlyCamCoordAndConstrain(Cam cam, float x, float y, float z) { return _i(0xC91C6C55199308CA, cam, x, y, z); } // 0xc91c6c55199308ca0x60b345deB323 + inline Void SetFlyCamVerticalControlsThisUpdate(Cam cam) { return _i(0xC8B5C4A79CC18B94, cam); } // 0xc8b5c4a79cc18b940x44473efcB323 + inline BOOL WasFlyCamConstrainedOnPreviousUdpate(Cam cam) { return _i(0x5C48A1D6E3B33179, cam); } // 0x5c48a1d6e3b331790xda931d65B323 + inline BOOL IsScreenFadedOut() { return _i(0xB16FCE9DDC7BA182); } // 0xb16fce9ddc7ba1820x9caa05faB323 + inline BOOL IsScreenFadedIn() { return _i(0x5A859503B0C08678); } // 0x5a859503b0c086780x4f37276dB323 + inline BOOL IsScreenFadingOut() { return _i(0x797AC7CB535BA28F); } // 0x797ac7cb535ba28f0x79275a57B323 + inline BOOL IsScreenFadingIn() { return _i(0x5C544BC6C57AC575); } // 0x5c544bc6c57ac5750xc7c82800B323 + // Fades the screen in. + // + // duration: The time the fade should take, in milliseconds. + inline Void DoScreenFadeIn(int duration) { return _i(0xD4E8E24955024033, duration); } // 0xd4e8e249550240330x66c1bdeeB323 + // Fades the screen out. + // + // duration: The time the fade should take, in milliseconds. + inline Void DoScreenFadeOut(int duration) { return _i(0x891B5B39AC6302AF, duration); } // 0x891b5b39ac6302af0x89d01805B323 + inline Void SetWidescreenBorders(BOOL p0, int p1) { return _i(0xDCD4EA924F42D01A, p0, p1); } // 0xdcd4ea924f42d01a0x1a75dc9aB323 + inline BOOL AreWidescreenBordersActive() { return _i(0x4879E4FE39074CDF); } // 0x4879e4fe39074cdfB372 + inline Vector3 GetGameplayCamCoord() { return _i(0x14D6F5678D8F1B37); } // 0x14d6f5678d8f1b370x9388cf79B323 + // p0 dosen't seem to change much, I tried it with 0, 1, 2: + // 0-Pitch(X): -70.000092 + // 0-Roll(Y): -0.000001 + // 0-Yaw(Z): -43.886459 + // 1-Pitch(X): -70.000092 + // 1-Roll(Y): -0.000001 + // 1-Yaw(Z): -43.886463 + // 2-Pitch(X): -70.000092 + // 2-Roll(Y): -0.000002 + // 2-Yaw(Z): -43.886467 + inline Vector3 GetGameplayCamRot(int rotationOrder) { return _i(0x837765A25378F0BB, rotationOrder); } // 0x837765a25378f0bb0x13a010b5B323 + inline float GetGameplayCamFov() { return _i(0x65019750A0324133); } // 0x65019750a03241330x4d6b3bfaB323 + // some camera effect that is used in the drunk-cheat, and turned off (by setting it to 0.0) along with the shaking effects once the drunk cheat is disabled. + inline Void SetGameplayCamMotionBlurScalingThisUpdate(float p0) { return _i(0x487A82C650EB7799, p0); } // 0x487a82c650eb77990xa6e73135B323 + // some camera effect that is (also) used in the drunk-cheat, and turned off (by setting it to 0.0) along with the shaking effects once the drunk cheat is disabled. + inline Void SetGameplayCamMaxMotionBlurStrengthThisUpdate(float p0) { return _i(0x0225778816FDC28C, p0); } // 0x0225778816fdc28c0x1126e37cB323 + inline float GetGameplayCamRelativeHeading() { return _i(0x743607648ADD4587); } // 0x743607648add45870xcaf839c2B323 + // Sets the camera position relative to heading in float from -360 to +360. + // + // Heading is alwyas 0 in aiming camera. + inline Void SetGameplayCamRelativeHeading(float heading) { return _i(0xB4EC2312F4E5B1F1, heading); } // 0xb4ec2312f4e5b1f10x20c6217cB323 + inline float GetGameplayCamRelativePitch() { return _i(0x3A6867B4845BEDA2); } // 0x3a6867b4845beda20xfc5a4946B323 + // This native sets the camera's pitch (rotation on the x-axis). + inline Void SetGameplayCamRelativePitch(float angle, float scalingFactor) { return _i(0x6D0858B8EDFD2B7D, angle, scalingFactor); } // 0x6d0858b8edfd2b7d0x6381b963B323 + inline Void ResetGameplayCamFullAttachParentTransformTimer() { return _i(0x7295C203DD659DFE); } // 0x7295c203dd659dfeB2699 + inline Void ForceCameraRelativeHeadingAndPitch(float roll, float pitch, float yaw) { return _i(0x48608C3464F58AB4, roll, pitch, yaw); } // 0x48608c3464f58ab4B505 + inline Void ForceBonnetCameraRelativeHeadingAndPitch(float p0, float p1) { return _i(0x28B022A17B068A3A, p0, p1); } // 0x28b022a17b068a3aB1734 + // Does nothing + inline Void SetFirstPersonShooterCameraHeading(float yaw) { return _i(0x103991D4A307D472, yaw); } // 0x103991d4a307d472B323 + inline Void SetFirstPersonShooterCameraPitch(float pitch) { return _i(0x759E13EBC1C15C5A, pitch); } // 0x759e13ebc1c15c5aB323 + inline Void SetScriptedCameraIsFirstPersonThisFrame(BOOL p0) { return _i(0x469F2ECDEC046337, p0); } // 0x469f2ecdec046337B323 + // Possible shake types (updated b617d): + // + // DEATH_FAIL_IN_EFFECT_SHAKE + // DRUNK_SHAKE + // FAMILY5_DRUG_TRIP_SHAKE + // HAND_SHAKE + // JOLT_SHAKE + // LARGE_EXPLOSION_SHAKE + // MEDIUM_EXPLOSION_SHAKE + // SMALL_EXPLOSION_SHAKE + // ROAD_VIBRATION_SHAKE + // SKY_DIVING_SHAKE + // VIBRATE_SHAKE + // + // Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json + inline Void ShakeGameplayCam(String shakeName, float intensity) { return _i(0xFD55E49555E017CF, shakeName, intensity); } // 0xfd55e49555e017cf0xf2efe660B323 + inline BOOL IsGameplayCamShaking() { return _i(0x016C090630DF1F89); } // 0x016c090630df1f890x3457d681B323 + // Sets the amplitude for the gameplay (i.e. 3rd or 1st) camera to shake. Used in script "drunk_controller.ysc.c4" to simulate making the player drunk. + inline Void SetGameplayCamShakeAmplitude(float amplitude) { return _i(0xA87E00932DB4D85D, amplitude); } // 0xa87e00932db4d85d0x9219d44aB323 + inline Void StopGameplayCamShaking(BOOL p0) { return _i(0x0EF93E9F3D08C178, p0); } // 0x0ef93e9f3d08c1780xfd569e4eB323 + // Forces gameplay cam to specified ped as if you were the ped or spectating it + inline Void SetGameplayCamFollowPedThisUpdate(Ped ped) { return _i(0x8BBACBF51DA047A8, ped); } // 0x8bbacbf51da047a80x7d3007a2B323 + // Examples when this function will return 0 are: + // - During busted screen. + // - When player is coming out from a hospital. + // - When player is coming out from a police station. + // - When player is buying gun from AmmuNation. + inline BOOL IsGameplayCamRendering() { return _i(0x39B5D1B10383F0C8); } // 0x39b5d1b10383f0c80x0ef276daB323 + inline BOOL IsInterpolatingFromScriptCams() { return _i(0x3044240D2E0FA842); } // 0x3044240d2e0fa8420xc0b00c20B323 + inline BOOL IsInterpolatingToScriptCams() { return _i(0x705A276EBFF3133D); } // 0x705a276ebff3133d0x60c23785B323 + inline Void SetGameplayCamAltitudeFovScalingState(BOOL p0) { return _i(0xDB90C6CCA48940F1, p0); } // 0xdb90c6cca48940f10x20bff6e5B323 + // Shows the crosshair even if it wouldn't show normally. Only works for one frame, so make sure to call it repeatedly. + inline Void DisableGameplayCamAltitudeFovScalingThisUpdate() { return _i(0xEA7F0AD7E9BA676F); } // 0xea7f0ad7e9ba676f0xa61ff9acB323 + inline BOOL IsGameplayCamLookingBehind() { return _i(0x70FDA869F3317EA9); } // 0x70fda869f3317ea90x33c83f17B323 + inline Void SetGameplayCamIgnoreEntityCollisionThisUpdate(Entity entity) { return _i(0x2AED6301F67007D5, entity); } // 0x2aed6301f67007d50x2701a9adB323 + inline Void DisableCamCollisionForObject(Entity entity) { return _i(0x49482F9FCD825AAA, entity); } // 0x49482f9fcd825aaa0xc4736ed3B323 + inline Void BypassCameraCollisionBuoyancyTestThisUpdate() { return _i(0xA7092AFE81944852); } // 0xa7092afe81944852B2189 + inline Void SetGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate(Entity entity) { return _i(0xFD3151CD37EA2245, entity); } // 0xfd3151cd37ea2245B323 + // Sets some flag on cinematic camera + inline Void DisableFirstPersonCameraWaterClippingTestThisUpdate() { return _i(0xB1381B97F70C7B30); } // 0xb1381b97f70c7b30B1180 + inline Void SetFollowCamIgnoreAttachParentMovementThisUpdate() { return _i(0xDD79DF9F4D26E1C9); } // 0xdd79df9f4d26e1c90x6b0e9d57B323 + inline BOOL IsSphereVisible(float x, float y, float z, float radius) { return _i(0xE33D59DA70B58FDF, x, y, z, radius); } // 0xe33d59da70b58fdf0xdd1329e2B323 + inline BOOL IsFollowPedCamActive() { return _i(0xC6D3D26810C8E0F9); } // 0xc6d3d26810c8e0f90x9f9e856cB323 + // From the scripts: + // + // CAM::SetFollowPedCamThisUpdate("FOLLOW_PED_ATTACHED_TO_ROPE_CAMERA", 0); + // CAM::SetFollowPedCamThisUpdate("FOLLOW_PED_ON_EXILE1_LADDER_CAMERA", 1500); + // CAM::SetFollowPedCamThisUpdate("FOLLOW_PED_SKY_DIVING_CAMERA", 0); + // CAM::SetFollowPedCamThisUpdate("FOLLOW_PED_SKY_DIVING_CAMERA", 3000); + // CAM::SetFollowPedCamThisUpdate("FOLLOW_PED_SKY_DIVING_FAMILY5_CAMERA", 0); + // CAM::SetFollowPedCamThisUpdate("FOLLOW_PED_SKY_DIVING_CAMERA", 0); + inline BOOL SetFollowPedCamThisUpdate(String camName, int p1) { return _i(0x44A113DD6FFC48D1, camName, p1); } // 0x44a113dd6ffc48d10x1425f6acB323 + inline Void UseScriptCamForAmbientPopulationOriginThisFrame(BOOL p0, BOOL p1) { return _i(0x271401846BD26E92, p0, p1); } // 0x271401846bd26e920x8dc53629B323 + inline Void SetFollowPedCamLadderAlignThisUpdate() { return _i(0xC8391C309684595A); } // 0xc8391c309684595a0x1f9de6e4B323 + // minimum: Degrees between -180f and 180f. + // maximum: Degrees between -180f and 180f. + // + // Clamps the gameplay camera's current yaw. + // + // Eg. SetThirdPersonCamRelativeHeadingLimitsThisUpdate(0.0f, 0.0f) will set the horizontal angle directly behind the player. + inline Void SetThirdPersonCamRelativeHeadingLimitsThisUpdate(float minimum, float maximum) { return _i(0x8F993D26E0CA5E8E, minimum, maximum); } // 0x8f993d26e0ca5e8e0x749909acB323 + // minimum: Degrees between -90f and 90f. + // maximum: Degrees between -90f and 90f. + // + // Clamps the gameplay camera's current pitch. + // + // Eg. SetThirdPersonCamRelativePitchLimitsThisUpdate(0.0f, 0.0f) will set the vertical angle directly behind the player. + inline Void SetThirdPersonCamRelativePitchLimitsThisUpdate(float minimum, float maximum) { return _i(0xA516C198B7DCA1E1, minimum, maximum); } // 0xa516c198b7dca1e10xfa3a16e7B323 + // Seems to animate the gameplay camera zoom. + // + // Eg. SetThirdPersonCamOrbitDistanceLimitsThisUpdate(1f, 1000f); + // will animate the camera zooming in from 1000 meters away. + // + // Game scripts use it like this: + // + // // Setting this to 1 prevents V key from changing zoom + // PLAYER::SetPlayerForcedZoom(PLAYER::PlayerId(), 1); + // + // // These restrict how far you can move cam up/down left/right + // CAM::SetThirdPersonCamRelativeHeadingLimitsThisUpdate(-20f, 50f); + // CAM::SetThirdPersonCamRelativePitchLimitsThisUpdate(-60f, 0f); + // + // CAM::SetThirdPersonCamOrbitDistanceLimitsThisUpdate(1f, 1f); + inline Void SetThirdPersonCamOrbitDistanceLimitsThisUpdate(float p0, float distance) { return _i(0xDF2E1F7742402E81, p0, distance); } // 0xdf2e1f7742402e810x77340650B323 + inline float GetThirdPersonCamMinOrbitDistanceSpring() { return _i(0xBC456FB703431785); } // 0xbc456fb703431785B3095 + inline float GetThirdPersonCamMaxOrbitDistanceSpring() { return _i(0xD4592A16D36673ED); } // 0xd4592a16d36673edB3095 + // Forces gameplay cam to specified vehicle as if you were in it + inline Void SetInVehicleCamStateThisUpdate(Vehicle p0, int p1) { return _i(0xE9EA16D6E54CDCA4, p0, p1); } // 0xe9ea16d6e54cdca40x4b22c5cbB323 + // Disables first person camera for the current frame. + // + // Found in decompiled scripts: + // GRAPHICS::DrawDebugText2d("Disabling First Person Cam", 0.5, 0.8, 0.0, 0, 0, 255, 255); + // CAM::DisableOnFootFirstPersonViewThisUpdate(); + inline Void DisableOnFootFirstPersonViewThisUpdate() { return _i(0xDE2EF5DA284CC8DF); } // 0xde2ef5da284cc8dfB323 + inline Void DisableFirstPersonFlashEffectThisUpdate() { return _i(0x59424BD75174C9B1); } // 0x59424bd75174c9b1B323 + inline Void BlockFirstPersonOrientationResetThisUpdate() { return _i(0x9F97DA93681F87EA); } // 0x9f97da93681f87eaB1734 + inline int GetFollowPedCamZoomLevel() { return _i(0x33E6C8EFD0CD93E9); } // 0x33e6c8efd0cd93e90x57583df1B323 + // See viewmode enum in CAM.GetFollowVehicleCamViewMode for return value + inline int GetFollowPedCamViewMode() { return _i(0x8D4D46230B2C353A); } // 0x8d4d46230b2c353a0xa65ff946B323 + // Sets the type of Player camera: + // + // 0 - Third Person Close + // 1 - Third Person Mid + // 2 - Third Person Far + // 4 - First Person + inline Void SetFollowPedCamViewMode(int viewMode) { return _i(0x5A4F9EDF1673F704, viewMode); } // 0x5a4f9edf1673f7040x495dbe8dB323 + inline BOOL IsFollowVehicleCamActive() { return _i(0xCBBDE6D335D6D496); } // 0xcbbde6d335d6d4960x8dd49b77B323 + inline Void SetFollowVehicleCamHighAngleModeThisUpdate(BOOL p0) { return _i(0x91EF6EE6419E5B97, p0); } // 0x91ef6ee6419e5b970x9db5d391B323 + inline Void SetFollowVehicleCamHighAngleModeEveryUpdate(BOOL p0, BOOL p1) { return _i(0x9DFE13ECDC1EC196, p0, p1); } // 0x9dfe13ecdc1ec1960x92302899B323 + inline BOOL SetTableGamesCameraThisUpdate(Hash hash) { return _i(0x79C0E43EB9B944E2, hash); } // 0x79c0e43eb9b944e2B1734 + inline int GetFollowVehicleCamZoomLevel() { return _i(0xEE82280AB767B690); } // 0xee82280ab767b6900x8cd67de3B323 + inline Void SetFollowVehicleCamZoomLevel(int zoomLevel) { return _i(0x19464CB6E4078C8A, zoomLevel); } // 0x19464cb6e4078c8a0x8f55ebbeB323 + // Returns the type of camera: + // + // enum _viewmode //0xA11D7CA8 + // { + // THIRD_PERSON_NEAR = 0, + // THIRD_PERSON_MEDIUM = 1, + // THIRD_PERSON_FAR = 2, + // CINEMATIC = 3, + // FIRST_PERSON = 4 + // }; + inline int GetFollowVehicleCamViewMode() { return _i(0xA4FF579AC0E3AAAE); } // 0xa4ff579ac0e3aaae0xa4b4db03B323 + // Sets the type of Player camera in vehicles: + // viewmode: see CAM.GetFollowVehicleCamViewMode + inline Void SetFollowVehicleCamViewMode(int viewMode) { return _i(0xAC253D7842768F48, viewMode); } // 0xac253d7842768f480xc4fbbbd3B323 + // context: see _GET_CAM_ACTIVE_VIEW_MODE_CONTEXT + inline int GetCamViewModeForContext(int context) { return _i(0xEE778F8C7E1142E2, context); } // 0xee778f8c7e1142e20xf3b148a6B323 + // context: see _GET_CAM_ACTIVE_VIEW_MODE_CONTEXT, viewmode: see CAM.GetFollowVehicleCamViewMode + inline Void SetCamViewModeForContext(int context, int viewMode) { return _i(0x2A2173E46DAECD12, context, viewMode); } // 0x2a2173e46daecd120x1debcb45B323 + // enum Context + // { + // ON_FOOT, + // IN_VEHICLE, + // ON_BIKE, + // IN_BOAT, + // IN_AIRCRAFT, + // IN_SUBMARINE, + // IN_HELI, + // IN_TURRET + // }; + inline int GetCamActiveViewModeContext() { return _i(0x19CAFA3C87F7C2FF); } // 0x19cafa3c87f7c2ffB323 + inline Void UseVehicleCamStuntSettingsThisUpdate() { return _i(0x6493CF69859B116A); } // 0x6493cf69859b116aB791 + // Sets gameplay camera to hash + inline Void UseDedicatedStuntCameraThisUpdate(String camName) { return _i(0x425A920FDB9A0DDA, camName); } // 0x425a920fdb9a0ddaB1180 + inline Void ForceVehicleCamStuntSettingsThisUpdate() { return _i(0x0AA27680A0BD43FA); } // 0x0aa27680a0bd43faB1103 + inline Void SetFollowVehicleCamSeatThisUpdate(int seatIndex) { return _i(0x5C90CAB09951A12F, seatIndex); } // 0x5c90cab09951a12fB1365 + inline BOOL IsAimCamActive() { return _i(0x68EDDA28A5976D07); } // 0x68edda28a5976d070xc24b4f6fB323 + inline BOOL IsAimCamActiveInAccurateMode() { return _i(0x74BD83EA840F6BC9); } // 0x74bd83ea840f6bc90x8f320de4B323 + inline BOOL IsFirstPersonAimCamActive() { return _i(0x5E346D934122613F); } // 0x5e346d934122613f0xd6280468B323 + inline Void DisableAimCamThisUpdate() { return _i(0x1A31FE0049E542F6); } // 0x1a31fe0049e542f60x1baa7182B323 + inline float GetFirstPersonAimCamZoomFactor() { return _i(0x7EC52CC40597D170); } // 0x7ec52cc40597d1700x33951005B323 + inline Void SetFirstPersonAimCamZoomFactor(float zoomFactor) { return _i(0x70894BD0915C5BCA, zoomFactor); } // 0x70894bd0915c5bca0x9f4af763B323 + inline Void SetFirstPersonAimCamZoomFactorLimitsThisUpdate(float p0, float p1) { return _i(0xCED08CBE8EBB97C7, p0, p1); } // 0xced08cbe8ebb97c70x68ba0730B323 + inline Void SetFirstPersonAimCamRelativeHeadingLimitsThisUpdate(float p0, float p1) { return _i(0x2F7F2B26DD3F18EE, p0, p1); } // 0x2f7f2b26dd3f18ee0x2f29f0d5B323 + inline Void SetFirstPersonAimCamRelativePitchLimitsThisUpdate(float p0, float p1) { return _i(0xBCFC632DB7673BF0, p0, p1); } // 0xbcfc632db7673bf00x76dac96cB323 + inline Void SetFirstPersonAimCamNearClipThisUpdate(float p0) { return _i(0x0AF7B437918103B3, p0); } // 0x0af7b437918103b30x0e21069dB323 + inline Void SetThirdPersonAimCamNearClipThisUpdate(float p0) { return _i(0x42156508606DE65E, p0); } // 0x42156508606de65e0x71e9c63eB323 + inline Void SetAllowCustomVehicleDriveByCamThisUpdate(BOOL p0) { return _i(0x4008EDF7D6E48175, p0); } // 0x4008edf7d6e481750xd1eebc45B323 + inline Void ForceTightspaceCustomFramingThisUpdate() { return _i(0x380B4968D1E09E55); } // 0x380b4968d1e09e55B1290 + inline Vector3 GetFinalRenderedCamCoord() { return _i(0xA200EB1EE790F448); } // 0xa200eb1ee790f4480x9c84bda0B323 + // p0 seems to consistently be 2 across scripts + // + // Function is called faily often by CAM::CreateCamWithParams + inline Vector3 GetFinalRenderedCamRot(int rotationOrder) { return _i(0x5B4E4C817FCC2DFB, rotationOrder); } // 0x5b4e4c817fcc2dfb0x1ffbefc5B323 + inline Vector3 GetFinalRenderedRemotePlayerCamRot(Player player, int rotationOrder) { return _i(0x26903D9CD1175F2C, player, rotationOrder); } // 0x26903d9cd1175f2c0xacadf916B323 + // Gets some camera fov + inline float GetFinalRenderedCamFov() { return _i(0x80EC114669DAEFF4); } // 0x80ec114669daeff40x721b763bB323 + inline float GetFinalRenderedRemotePlayerCamFov(Player player) { return _i(0x5F35F6732C3FBBA0, player); } // 0x5f35f6732c3fbba00x23e3f106B323 + inline float GetFinalRenderedCamNearClip() { return _i(0xD0082607100D7193); } // 0xd0082607100d71930x457ae195B323 + inline float GetFinalRenderedCamFarClip() { return _i(0xDFC8CBC606FDB0FC); } // 0xdfc8cbc606fdb0fc0x46cb3a49B323 + inline float GetFinalRenderedCamNearDof() { return _i(0xA03502FC581F7D9B); } // 0xa03502fc581f7d9b0x19297a7aB323 + inline float GetFinalRenderedCamFarDof() { return _i(0x9780F32BCAF72431); } // 0x9780f32bcaf724310xf24777caB323 + inline float GetFinalRenderedCamMotionBlurStrength() { return _i(0x162F9D995753DC19); } // 0x162f9d995753dc190x38992e83B323 + inline Void SetGameplayCoordHint(float x, float y, float z, int duration, int blendOutDuration, int blendInDuration, int p6) { return _i(0xD51ADCD2D8BC0FB3, x, y, z, duration, blendOutDuration, blendInDuration, p6); } // 0xd51adcd2d8bc0fb30xf27483c9B323 + inline Void SetGameplayPedHint(Ped ped, float x1, float y1, float z1, BOOL p4, int duration, int blendOutDuration, int blendInDuration) { return _i(0x2B486269ACD548D3, ped, x1, y1, z1, p4, duration, blendOutDuration, blendInDuration); } // 0x2b486269acd548d30x7c27343eB323 + // Focuses the camera on the specified vehicle. + inline Void SetGameplayVehicleHint(Vehicle vehicle, float offsetX, float offsetY, float offsetZ, BOOL p4, int time, int easeInTime, int easeOutTime) { return _i(0xA2297E18F3E71C2E, vehicle, offsetX, offsetY, offsetZ, p4, time, easeInTime, easeOutTime); } // 0xa2297e18f3e71c2e0x2c9a11d8B323 + inline Void SetGameplayObjectHint(Object object, float xOffset, float yOffset, float zOffset, BOOL p4, int time, int easeInTime, int easeOutTime) { return _i(0x83E87508A2CA2AC6, object, xOffset, yOffset, zOffset, p4, time, easeInTime, easeOutTime); } // 0x83e87508a2ca2ac60x2ed5e2f8B323 + // p8 could be some sort of flag. Scripts use: + // -244429742 + // 0 + // 1726668277 + // 1844968929 + inline Void SetGameplayEntityHint(Entity entity, float xOffset, float yOffset, float zOffset, BOOL p4, int time, int easeInTime, int easeOutTime, int p8) { return _i(0x189E955A8313E298, entity, xOffset, yOffset, zOffset, p4, time, easeInTime, easeOutTime, p8); } // 0x189e955a8313e2980x66c32306B323 + inline BOOL IsGameplayHintActive() { return _i(0xE520FF1AD2785B40); } // 0xe520ff1ad2785b400xad8da205B323 + inline Void StopGameplayHint(BOOL p0) { return _i(0xF46C581C61718916, p0); } // 0xf46c581c617189160x1bc28b7bB323 + // This native does absolutely nothing, just a nullsub + inline Void StopGameplayHintBeingCancelledThisUpdate(BOOL p0) { return _i(0xCCD078C2665D2973, p0); } // 0xccd078c2665d29730xcafee798B323 + inline Void StopCodeGameplayHint(BOOL p0) { return _i(0x247ACBC4ABBC9D1C, p0); } // 0x247acbc4abbc9d1cB323 + inline BOOL IsCodeGameplayHintActive() { return _i(0xBF72910D0F26F025); } // 0xbf72910d0f26f025B323 + inline Void SetGameplayHintFov(float FOV) { return _i(0x513403FB9C56211F, FOV); } // 0x513403fb9c56211f0x96fd173bB323 + inline Void SetGameplayHintFollowDistanceScalar(float value) { return _i(0xF8BDBF3D573049A1, value); } // 0xf8bdbf3d573049a10x72e8cd3aB323 + inline Void SetGameplayHintBaseOrbitPitchOffset(float value) { return _i(0xD1F8363DFAD03848, value); } // 0xd1f8363dfad038480x79472ae3B323 + inline Void SetGameplayHintCameraRelativeSideOffset(float xOffset) { return _i(0x5D7B620DAE436138, xOffset); } // 0x5d7b620dae4361380xfc7464a0B323 + inline Void SetGameplayHintCameraRelativeVerticalOffset(float yOffset) { return _i(0xC92717EF615B6704, yOffset); } // 0xc92717ef615b67040x3554aa0eB323 + inline Void SetGameplayHintCameraBlendToFollowPedMediumViewMode(BOOL toggle) { return _i(0xE3433EADAAF7EE40, toggle); } // 0xe3433eadaaf7ee400x2f0ce859B323 + inline Void SetCinematicButtonActive(BOOL p0) { return _i(0x51669F7D1FB53D9F, p0); } // 0x51669f7d1fb53d9f0x3fbc5d00B323 + inline BOOL IsCinematicCamRendering() { return _i(0xB15162CB5826E9E8); } // 0xb15162cb5826e9e80x80471ad9B323 + // p0 argument found in the b617d scripts: "DRUNK_SHAKE" + // + // Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json + inline Void ShakeCinematicCam(String shakeType, float amount) { return _i(0xDCE214D9ED58F3CF, shakeType, amount); } // 0xdce214d9ed58f3cf0x61815f31B323 + inline BOOL IsCinematicCamShaking() { return _i(0xBBC08F6B4CB8FF0A); } // 0xbbc08f6b4cb8ff0a0x8376d939B323 + inline Void SetCinematicCamShakeAmplitude(float p0) { return _i(0xC724C701C30B2FE7, p0); } // 0xc724c701c30b2fe70x67510c4bB323 + inline Void StopCinematicCamShaking(BOOL p0) { return _i(0x2238E588E588A6D7, p0); } // 0x2238e588e588a6d70x71c12904B323 + inline Void DisableCinematicBonnetCameraThisUpdate() { return _i(0xADFF1B2A555F5FBA); } // 0xadff1b2a555f5fba0x5ac6dac9B323 + inline Void DisableCinematicVehicleIdleModeThisUpdate() { return _i(0x62ECFCFDEE7885D6); } // 0x62ecfcfdee7885d60x837f8581B323 + // Resets the vehicle idle camera timer. Calling this in a loop will disable the idle camera. + inline Void InvalidateCinematicVehicleIdleMode() { return _i(0x9E4CFFF989258472); } // 0x9e4cfff9892584720x65dde8afB323 + // Resets the idle camera timer. Calling that in a loop once every few seconds is enough to disable the idle cinematic camera. + inline Void InvalidateIdleCam() { return _i(0xF4F2C0D4EE209E20); } // 0xf4f2c0d4ee209e200xd75cdd75B323 + inline BOOL IsCinematicIdleCamRendering() { return _i(0xCA9D2AA3E326D720); } // 0xca9d2aa3e326d7200x96a07066B323 + inline BOOL IsCinematicFirstPersonVehicleInteriorCamRendering() { return _i(0x4F32C0D5A90A9B40); } // 0x4f32c0d5a90a9b40B323 + // hash is always JOAAT("CAMERA_MAN_SHOT") in decompiled scripts + inline Void CreateCinematicShot(Hash p0, int time, BOOL p2, Entity entity) { return _i(0x741B0129D4560F31, p0, time, p2, entity); } // 0x741b0129d4560f310xac494e35B323 + // Hash is always JOAAT("CAMERA_MAN_SHOT") in decompiled scripts + inline BOOL IsCinematicShotActive(Hash p0) { return _i(0xCC9F3371A7C28BC9, p0); } // 0xcc9f3371a7c28bc90xa4049042B323 + // Only used once in carsteal3 with p0 set to -1096069633 (CAMERA_MAN_SHOT) + inline Void StopCinematicShot(Hash p0) { return _i(0x7660C6E75D3A078E, p0); } // 0x7660c6e75d3a078e0xd78358c5B323 + inline Void ForceCinematicRenderingThisUpdate(BOOL toggle) { return _i(0xA41BCD7213805AAC, toggle); } // 0xa41bcd7213805aac0xfbb85e02B323 + inline Void SetCinematicNewsChannelActiveThisUpdate() { return _i(0xDC9DA9E8789F5246); } // 0xdc9da9e8789f52460x4938c82fB323 + // Toggles the vehicle cinematic cam; requires the player ped to be in a vehicle to work. + inline Void SetCinematicModeActive(BOOL toggle) { return _i(0xDCF0754AC3D6FD4E, toggle); } // 0xdcf0754ac3d6fd4e0x2009e747B323 + inline BOOL IsInVehicleMobilePhoneCameraRendering() { return _i(0x1F2300CB7FA7B7F6); } // 0x1f2300cb7fa7b7f60x6739ad55B323 + inline BOOL DisableCinematicSlowMoThisUpdate() { return _i(0x17FCA7199A530203); } // 0x17fca7199a530203B323 + inline BOOL IsBonnetCinematicCamRendering() { return _i(0xD7360051C885628B); } // 0xd7360051c885628b0x1dd55f13B372 + // Tests some cinematic camera flags + inline BOOL IsCinematicCamInputActive() { return _i(0xF5F1E89A970B7796); } // 0xf5f1e89a970b77960x1a900c84B1493 + inline Void IgnoreMenuPreferenceForBonnetCameraThisUpdate() { return _i(0x7B8A361C1813FBEF); } // 0x7b8a361c1813fbefB573 + inline Void BypassCutsceneCamRenderingThisUpdate() { return _i(0xDB629FFD9285FA06); } // 0xdb629ffd9285fa06B323 + inline Void StopCutsceneCamShaking(Any p0) { return _i(0x324C5AA411DA7737, p0); } // 0x324c5aa411da7737B323 + // Hardcoded to only work in multiplayer. + inline Void SetCutsceneCamFarClipThisUpdate(float p0) { return _i(0x12DED8CA53D47EA5, p0); } // 0x12ded8ca53d47ea50x067ba6f5B323 + inline Ped GetFocusPedOnScreen(float p0, int p1, float p2, float p3, float p4, float p5, float p6, int p7, int p8) { return _i(0x89215EC747DF244A, p0, p1, p2, p3, p4, p5, p6, p7, p8); } // 0x89215ec747df244a0xfd99be2bB323 + inline Void DisableNearClipScanThisUpdate() { return _i(0x5A43C76F7FC7BA5F); } // 0x5a43c76f7fc7ba5f0xe206c450B323 + // if p0 is 0, effect is cancelled + // + // if p0 is 1, effect zooms in, gradually tilts cam clockwise apx 30 degrees, wobbles slowly. Motion blur is active until cancelled. + // + // if p0 is 2, effect immediately tilts cam clockwise apx 30 degrees, begins to wobble slowly, then gradually tilts cam back to normal. The wobbling will continue until the effect is cancelled. + inline Void SetCamDeathFailEffectState(int p0) { return _i(0x80C8B1846639BB19, p0); } // 0x80c8b1846639bb190xb06ccd38B323 + inline Void SetFirstPersonFlashEffectType(Any p0) { return _i(0x5C41E6BABC9E2112, p0); } // 0x5c41e6babc9e2112B323 + // From b617 scripts: + // + // CAM::SetFirstPersonFlashEffectVehicleModelName("DINGHY"); + // CAM::SetFirstPersonFlashEffectVehicleModelName("ISSI2"); + // CAM::SetFirstPersonFlashEffectVehicleModelName("SPEEDO"); + inline Void SetFirstPersonFlashEffectVehicleModelName(String vehicleName) { return _i(0x21E253A7F8DA5DFB, vehicleName); } // 0x21e253a7f8da5dfbB323 + inline Void SetFirstPersonFlashEffectVehicleModelHash(Hash vehicleModel) { return _i(0x11FA5D3479C7DD47, vehicleModel); } // 0x11fa5d3479c7dd47B323 + inline BOOL IsAllowedIndependentCameraModes() { return _i(0xEAF0FA793D05C592); } // 0xeaf0fa793d05c592B323 + inline Void CameraPreventCollisionSettingsForTripleheadInInteriorsThisUpdate() { return _i(0x62374889A4D59F72); } // 0x62374889a4d59f72B877 + inline float ReplayGetMaxDistanceAllowedFromPlayer() { return _i(0x8BFCEB5EA1B161B6); } // 0x8bfceb5ea1b161b6B323 } namespace CLOCK { - // SetClockTime(12, 34, 56); - inline Void SetClockTime(int hour, int minute, int second) { return _i(0x47C3B5848C3E45D8, hour, minute, second); } // 0x47c3b5848c3e45d80x26f6af14B323 - inline Void PauseClock(BOOL toggle) { return _i(0x4055E40BD2DBEC1D, toggle); } // 0x4055e40bd2dbec1d0xb02d6124B323 - inline Void AdvanceClockTimeTo(int hour, int minute, int second) { return _i(0xC8CA9670B9D83B3B, hour, minute, second); } // 0xc8ca9670b9d83b3b0x57b8da7cB323 - inline Void AddToClockTime(int hours, int minutes, int seconds) { return _i(0xD716F30D8C8980E2, hours, minutes, seconds); } // 0xd716f30d8c8980e20xcc40d20dB323 - // Gets the current ingame hour, expressed without zeros. (09:34 will be represented as 9) - inline int GetClockHours() { return _i(0x25223CA6B4D20B7F); } // 0x25223ca6b4d20b7f0x7ef8316fB323 - // Gets the current ingame clock minute. - inline int GetClockMinutes() { return _i(0x13D2B8ADD79640F2); } // 0x13d2b8add79640f20x94aac486B323 - // Gets the current ingame clock second. Note that ingame clock seconds change really fast since a day in GTA is only 48 minutes in real life. - inline int GetClockSeconds() { return _i(0x494E97C2EF27C470); } // 0x494e97c2ef27c4700x099c927eB323 - inline Void SetClockDate(int day, int month, int year) { return _i(0xB096419DF0D06CE7, day, month, year); } // 0xb096419df0d06ce70x96891c94B323 - // Gets the current day of the week. - // - // 0: Sunday - // 1: Monday - // 2: Tuesday - // 3: Wednesday - // 4: Thursday - // 5: Friday - // 6: Saturday - inline int GetClockDayOfWeek() { return _i(0xD972E4BD7AEB235F); } // 0xd972e4bd7aeb235f0x84e4a289B323 - inline int GetClockDayOfMonth() { return _i(0x3D10BC92A4DB1D35); } // 0x3d10bc92a4db1d350xc7a5acb7B323 - inline int GetClockMonth() { return _i(0xBBC72712E80257A1); } // 0xbbc72712e80257a10x3c48a3d5B323 - inline int GetClockYear() { return _i(0x961777E64BDAF717); } // 0x961777e64bdaf7170xb8becf15B323 - inline int GetMillisecondsPerGameMinute() { return _i(0x2F8B4D1C595B11DB); } // 0x2f8b4d1c595b11db0x3b74095cB323 - // Gets system time as year, month, day, hour, minute and second. - // - // Example usage: - // - // int year; - // int month; - // int day; - // int hour; - // int minute; - // int second; - // - // TIME::GetPosixTime(&year, &month, &day, &hour, &minute, &second); - // - inline Void GetPosixTime(int* year, int* month, int* day, int* hour, int* minute, int* second) { return _i(0xDA488F299A5B164E, year, month, day, hour, minute, second); } // 0xda488f299a5b164e0xe15a5281B323 - // Gets current UTC time - inline Void GetUtcTime(int* year, int* month, int* day, int* hour, int* minute, int* second) { return _i(0x8117E09A19EEF4D3, year, month, day, hour, minute, second); } // 0x8117e09a19eef4d30xc589cd7dB323 - // Gets local system time as year, month, day, hour, minute and second. - // - // Example usage: - // - // int year; - // int month; - // int day; - // int hour; - // int minute; - // int second; - // or use std::tm struct - // - // TIME::GetLocalTime(&year, &month, &day, &hour, &minute, &second); - // - inline Void GetLocalTime(int* year, int* month, int* day, int* hour, int* minute, int* second) { return _i(0x50C7A99057A69748, year, month, day, hour, minute, second); } // 0x50c7a99057a697480x124bcfa2B323 + // SetClockTime(12, 34, 56); + inline Void SetClockTime(int hour, int minute, int second) { return _i(0x47C3B5848C3E45D8, hour, minute, second); } // 0x47c3b5848c3e45d80x26f6af14B323 + inline Void PauseClock(BOOL toggle) { return _i(0x4055E40BD2DBEC1D, toggle); } // 0x4055e40bd2dbec1d0xb02d6124B323 + inline Void AdvanceClockTimeTo(int hour, int minute, int second) { return _i(0xC8CA9670B9D83B3B, hour, minute, second); } // 0xc8ca9670b9d83b3b0x57b8da7cB323 + inline Void AddToClockTime(int hours, int minutes, int seconds) { return _i(0xD716F30D8C8980E2, hours, minutes, seconds); } // 0xd716f30d8c8980e20xcc40d20dB323 + // Gets the current ingame hour, expressed without zeros. (09:34 will be represented as 9) + inline int GetClockHours() { return _i(0x25223CA6B4D20B7F); } // 0x25223ca6b4d20b7f0x7ef8316fB323 + // Gets the current ingame clock minute. + inline int GetClockMinutes() { return _i(0x13D2B8ADD79640F2); } // 0x13d2b8add79640f20x94aac486B323 + // Gets the current ingame clock second. Note that ingame clock seconds change really fast since a day in GTA is only 48 minutes in real life. + inline int GetClockSeconds() { return _i(0x494E97C2EF27C470); } // 0x494e97c2ef27c4700x099c927eB323 + inline Void SetClockDate(int day, int month, int year) { return _i(0xB096419DF0D06CE7, day, month, year); } // 0xb096419df0d06ce70x96891c94B323 + // Gets the current day of the week. + // + // 0: Sunday + // 1: Monday + // 2: Tuesday + // 3: Wednesday + // 4: Thursday + // 5: Friday + // 6: Saturday + inline int GetClockDayOfWeek() { return _i(0xD972E4BD7AEB235F); } // 0xd972e4bd7aeb235f0x84e4a289B323 + inline int GetClockDayOfMonth() { return _i(0x3D10BC92A4DB1D35); } // 0x3d10bc92a4db1d350xc7a5acb7B323 + inline int GetClockMonth() { return _i(0xBBC72712E80257A1); } // 0xbbc72712e80257a10x3c48a3d5B323 + inline int GetClockYear() { return _i(0x961777E64BDAF717); } // 0x961777e64bdaf7170xb8becf15B323 + inline int GetMillisecondsPerGameMinute() { return _i(0x2F8B4D1C595B11DB); } // 0x2f8b4d1c595b11db0x3b74095cB323 + // Gets system time as year, month, day, hour, minute and second. + // + // Example usage: + // + // int year; + // int month; + // int day; + // int hour; + // int minute; + // int second; + // + // TIME::GetPosixTime(&year, &month, &day, &hour, &minute, &second); + // + inline Void GetPosixTime(int* year, int* month, int* day, int* hour, int* minute, int* second) { return _i(0xDA488F299A5B164E, year, month, day, hour, minute, second); } // 0xda488f299a5b164e0xe15a5281B323 + // Gets current UTC time + inline Void GetUtcTime(int* year, int* month, int* day, int* hour, int* minute, int* second) { return _i(0x8117E09A19EEF4D3, year, month, day, hour, minute, second); } // 0x8117e09a19eef4d30xc589cd7dB323 + // Gets local system time as year, month, day, hour, minute and second. + // + // Example usage: + // + // int year; + // int month; + // int day; + // int hour; + // int minute; + // int second; + // or use std::tm struct + // + // TIME::GetLocalTime(&year, &month, &day, &hour, &minute, &second); + // + inline Void GetLocalTime(int* year, int* month, int* day, int* hour, int* minute, int* second) { return _i(0x50C7A99057A69748, year, month, day, hour, minute, second); } // 0x50c7a99057a697480x124bcfa2B323 } namespace CUTSCENE { - // flags: Usually 8 - // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - inline Void RequestCutscene(String cutsceneName, int flags) { return _i(0x7A86743F475D9E09, cutsceneName, flags); } // 0x7a86743f475d9e090xb5977853B323 - // flags: Usually 8 - // - // playbackFlags: Which scenes should be played. - // Example: 0x105 (bit 0, 2 and 8 set) will enable scene 1, 3 and 9. - // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - inline Void RequestCutsceneWithPlaybackList(String cutsceneName, int playbackFlags, int flags) { return _i(0xC23DE0E91C30B58C, cutsceneName, playbackFlags, flags); } // 0xc23de0e91c30b58c0xd98f656aB323 - inline Void RemoveCutscene() { return _i(0x440AF51A3462B86F); } // 0x440af51a3462b86f0x8052f533B323 - inline BOOL HasCutsceneLoaded() { return _i(0xC59F528E9AB9F339); } // 0xc59f528e9ab9f3390xf9998582B323 - // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - inline BOOL HasThisCutsceneLoaded(String cutsceneName) { return _i(0x228D3D94F8A11C3C, cutsceneName); } // 0x228d3d94f8a11c3c0x3c5619f2B323 - // Sets the cutscene's owning thread ID. - inline Void SetScriptCanStartCutscene(int threadId) { return _i(0x8D9DF6ECA8768583, threadId); } // 0x8d9df6eca87685830x25a2cabcB323 - inline BOOL CanRequestAssetsForCutsceneEntity() { return _i(0xB56BBBCC2955D9CB); } // 0xb56bbbcc2955d9cb0xdd8878e9B323 - inline BOOL IsCutscenePlaybackFlagSet(int flag) { return _i(0x71B74D2AE19338D0, flag); } // 0x71b74d2ae19338d00x7b93cdaaB323 - inline Void SetCutsceneEntityStreamingFlags(String cutsceneEntName, int p1, int p2) { return _i(0x4C61C75BEE8184C2, cutsceneEntName, p1, p2); } // 0x4c61c75bee8184c20x47db08a9B323 - // Simply loads the cutscene and doesn't do extra stuff that RequestCutscene does. - // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - inline Void RequestCutFile(String cutsceneName) { return _i(0x06A3524161C502BA, cutsceneName); } // 0x06a3524161c502ba0x0d732cd6B323 - // Simply checks if the cutscene has loaded and doesn't check via CutSceneManager as opposed to HAS_[THIS]_CUTSCENE_LOADED. - // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - inline BOOL HasCutFileLoaded(String cutsceneName) { return _i(0xA1C996C2A744262E, cutsceneName); } // 0xa1c996c2a744262e0x56d5b144B323 - // Simply unloads the cutscene and doesn't do extra stuff that RemoveCutscene does. - // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - inline Void RemoveCutFile(String cutsceneName) { return _i(0xD00D76A7DFC9D852, cutsceneName); } // 0xd00d76a7dfc9d8520xb70d7c6dB323 - // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - inline int GetCutFileConcatCount(String cutsceneName) { return _i(0x0ABC54DE641DC0FC, cutsceneName); } // 0x0abc54de641dc0fc0xfd8b1ac2B323 - // flags: Usually 0. - inline Void StartCutscene(int flags) { return _i(0x186D5CB5E7B0FF7B, flags); } // 0x186d5cb5e7b0ff7b0x210106f6B323 - // flags: Usually 0. - inline Void StartCutsceneAtCoords(float x, float y, float z, int flags) { return _i(0x1C9ADDA3244A1FBF, x, y, z, flags); } // 0x1c9adda3244a1fbf0x58bea436B323 - inline Void StopCutscene(BOOL p0) { return _i(0xC7272775B4DC786E, p0); } // 0xc7272775b4dc786e0x5ee84dc7B323 - inline Void StopCutsceneImmediately() { return _i(0xD220BDD222AC4A1E); } // 0xd220bdd222ac4a1e0xf528a2adB323 - // p3 could be heading. Needs more research. - inline Void SetCutsceneOrigin(float x, float y, float z, float p3, int p4) { return _i(0xB812B3FD1C01CF27, x, y, z, p3, p4); } // 0xb812b3fd1c01cf270xb0ad7792B323 - inline Void SetCutsceneOriginAndOrientation(float x1, float y1, float z1, float x2, float y2, float z2, int p6) { return _i(0x011883F41211432A, x1, y1, z1, x2, y2, z2, p6); } // 0x011883f41211432aB323 - inline int GetCutsceneTime() { return _i(0xE625BEABBAFFDAB9); } // 0xe625beabbaffdab90x53f5b5abB323 - inline int GetCutsceneTotalDuration() { return _i(0xEE53B14A19E480D4); } // 0xee53b14a19e480d40x0824ebe8B323 - inline int GetCutsceneEndTime() { return _i(0x971D7B15BCDBEF99); } // 0x971d7b15bcdbef99B1734 - inline int GetCutscenePlayDuration() { return _i(0x5D583F71C901F2A3); } // 0x5d583f71c901f2a3B2802 - inline BOOL WasCutsceneSkipped() { return _i(0x40C8656EDAEDD569); } // 0x40c8656edaedd5690xc9b6949dB323 - inline BOOL HasCutsceneFinished() { return _i(0x7C0A893088881D57); } // 0x7c0a893088881d570x5ded14b4B323 - inline BOOL IsCutsceneActive() { return _i(0x991251AFC3981F84); } // 0x991251afc3981f840xcce2fe9dB323 - inline BOOL IsCutscenePlaying() { return _i(0xD3C2E180A40F031E); } // 0xd3c2e180a40f031e0xa3a78392B323 - inline int GetCutsceneSectionPlaying() { return _i(0x49010A6A396553D8); } // 0x49010a6a396553d80x1026f0d6B323 - inline Entity GetEntityIndexOfCutsceneEntity(String cutsceneEntName, Hash modelHash) { return _i(0x0A2E9FDB9A8C62F6, cutsceneEntName, modelHash); } // 0x0a2e9fdb9a8c62f60x1d09abc7B323 - inline int GetCutsceneConcatSectionPlaying() { return _i(0x583DF8E3D4AFBD98); } // 0x583df8e3d4afbd980x5ae68ae6B323 - // This function is hard-coded to always return 1. - inline BOOL IsCutsceneAuthorized(String cutsceneName) { return _i(0x4CEBC1ED31E8925E, cutsceneName); } // 0x4cebc1ed31e8925eB323 - inline int DoesCutsceneHandleExist(int cutsceneHandle) { return _i(0x4FCD976DA686580C, cutsceneHandle); } // 0x4fcd976da686580cB1290 - inline Void RegisterEntityForCutscene(Ped cutscenePed, String cutsceneEntName, int p2, Hash modelHash, int p4) { return _i(0xE40C1C56DF95C2E8, cutscenePed, cutsceneEntName, p2, modelHash, p4); } // 0xe40c1c56df95c2e80x7cbc3ec7B323 - inline Entity GetEntityIndexOfRegisteredEntity(String cutsceneEntName, Hash modelHash) { return _i(0xC0741A26499654CD, cutsceneEntName, modelHash); } // 0xc0741a26499654cd0x46d18755B323 - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline Void SetVehicleModelPlayerWillExitScene(Hash modelHash) { return _i(0x7F96F23FA9B73327, modelHash); } // 0x7f96f23fa9b73327B323 - // Only used twice in R* scripts - inline Void SetCutsceneTriggerArea(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x9896CE4721BE84BA, x1, y1, z1, x2, y2, z2); } // 0x9896ce4721be84ba0x9d76d9deB323 - // modelHash (p1) was always 0 in R* scripts - inline BOOL CanSetEnterStateForRegisteredEntity(String cutsceneEntName, Hash modelHash) { return _i(0x645D0B458D8E17B5, cutsceneEntName, modelHash); } // 0x645d0b458d8e17b50x55c30b26B323 - inline BOOL CanSetExitStateForRegisteredEntity(String cutsceneEntName, Hash modelHash) { return _i(0x4C6A6451C79E4662, cutsceneEntName, modelHash); } // 0x4c6a6451c79e46620x8ff5d3c4B323 - inline BOOL CanSetExitStateForCamera(BOOL p0) { return _i(0xB2CBCD0930DFB420, p0); } // 0xb2cbcd0930dfb4200xedae6c02B323 - // Toggles a value (bool) for cutscenes. - inline Void SetPadCanShakeDuringCutscene(BOOL toggle) { return _i(0xC61B86C9F61EB404, toggle); } // 0xc61b86c9f61eb4040x35721a08B323 - inline Void SetCutsceneFadeValues(BOOL p0, BOOL p1, BOOL p2, BOOL p3) { return _i(0x8093F23ABACCC7D4, p0, p1, p2, p3); } // 0x8093f23abaccc7d40xd19ef0ddB323 - inline Void SetCutsceneMultiheadFade(BOOL p0, BOOL p1, BOOL p2, BOOL p3) { return _i(0x20746F7B1032A3C7, p0, p1, p2, p3); } // 0x20746f7b1032a3c7B323 - inline Void SetCutsceneMultiheadFadeManual(BOOL p0) { return _i(0x06EE9048FD080382, p0); } // 0x06ee9048fd080382B323 - inline BOOL IsMultiheadFadeUp() { return _i(0xA0FE76168A189DDB); } // 0xa0fe76168a189ddbB323 - // Stops current cutscene with a fade transition - // p0: always true in R* Scripts - // You will need to manually fade the screen back in - // SET_CUTSCENE_INPUTS_PARTIALLY_FADE? - inline Void NetworkSetMocapCutsceneCanBeSkipped(BOOL p0) { return _i(0x2F137B508DE238F2, p0); } // 0x2f137b508de238f20x8338da1dB323 - inline Void SetCarGeneratorsCanUpdateDuringCutscene(BOOL p0) { return _i(0xE36A98D8AB3D3C66, p0); } // 0xe36a98d8ab3d3c660x04377c10B323 - inline BOOL CanUseMobilePhoneDuringCutscene() { return _i(0x5EDEF0CF8C1DAB3C); } // 0x5edef0cf8c1dab3c0xdbd88708B323 - inline Void SetCutsceneCanBeSkipped(BOOL p0) { return _i(0x41FAA8FB2ECE8720, p0); } // 0x41faa8fb2ece87200x28d54a7fB323 - inline Void SetCanDisplayMinimapDuringCutsceneThisUpdate() { return _i(0x2131046957F31B04); } // 0x2131046957f31b040xb60cfbb9B323 - // Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json - inline Void SetCutscenePedComponentVariation(String cutsceneEntName, int componentId, int drawableId, int textureId, Hash modelHash) { return _i(0xBA01E7B6DEEFBBC9, cutsceneEntName, componentId, drawableId, textureId, modelHash); } // 0xba01e7b6deefbbc90x6af994a1B323 - inline Void SetCutscenePedComponentVariationFromPed(String cutsceneEntName, Ped ped, Hash modelHash) { return _i(0x2A56C06EBEF2B0D9, cutsceneEntName, ped, modelHash); } // 0x2a56c06ebef2b0d90x1e7da95eB323 - inline BOOL DoesCutsceneEntityExist(String cutsceneEntName, Hash modelHash) { return _i(0x499EF20C5DB25C59, cutsceneEntName, modelHash); } // 0x499ef20c5db25c590x58e67409B323 - // Thanks R*! ;) - // - // if ((l_161 == 0) || (l_161 == 2)) { - // sub_2ea27("Trying to set Jimmy prop variation"); - // CUTSCENE::SetCutscenePedPropVariation("Jimmy_Boston", 1, 0, 0, 0); - // } - // - // Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json - inline Void SetCutscenePedPropVariation(String cutsceneEntName, int componentId, int drawableId, int textureId, Hash modelHash) { return _i(0x0546524ADE2E9723, cutsceneEntName, componentId, drawableId, textureId, modelHash); } // 0x0546524ade2e97230x22e9a9deB323 - // Possibly HasCutsceneCutThisFrame, needs more research. - inline BOOL HasCutsceneCutThisFrame() { return _i(0x708BDD8CD795B043); } // 0x708bdd8cd795b0430x4315a7c5B323 + // flags: Usually 8 + // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json + inline Void RequestCutscene(String cutsceneName, int flags) { return _i(0x7A86743F475D9E09, cutsceneName, flags); } // 0x7a86743f475d9e090xb5977853B323 + // flags: Usually 8 + // + // playbackFlags: Which scenes should be played. + // Example: 0x105 (bit 0, 2 and 8 set) will enable scene 1, 3 and 9. + // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json + inline Void RequestCutsceneWithPlaybackList(String cutsceneName, int playbackFlags, int flags) { return _i(0xC23DE0E91C30B58C, cutsceneName, playbackFlags, flags); } // 0xc23de0e91c30b58c0xd98f656aB323 + inline Void RemoveCutscene() { return _i(0x440AF51A3462B86F); } // 0x440af51a3462b86f0x8052f533B323 + inline BOOL HasCutsceneLoaded() { return _i(0xC59F528E9AB9F339); } // 0xc59f528e9ab9f3390xf9998582B323 + // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json + inline BOOL HasThisCutsceneLoaded(String cutsceneName) { return _i(0x228D3D94F8A11C3C, cutsceneName); } // 0x228d3d94f8a11c3c0x3c5619f2B323 + // Sets the cutscene's owning thread ID. + inline Void SetScriptCanStartCutscene(int threadId) { return _i(0x8D9DF6ECA8768583, threadId); } // 0x8d9df6eca87685830x25a2cabcB323 + inline BOOL CanRequestAssetsForCutsceneEntity() { return _i(0xB56BBBCC2955D9CB); } // 0xb56bbbcc2955d9cb0xdd8878e9B323 + inline BOOL IsCutscenePlaybackFlagSet(int flag) { return _i(0x71B74D2AE19338D0, flag); } // 0x71b74d2ae19338d00x7b93cdaaB323 + inline Void SetCutsceneEntityStreamingFlags(String cutsceneEntName, int p1, int p2) { return _i(0x4C61C75BEE8184C2, cutsceneEntName, p1, p2); } // 0x4c61c75bee8184c20x47db08a9B323 + // Simply loads the cutscene and doesn't do extra stuff that RequestCutscene does. + // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json + inline Void RequestCutFile(String cutsceneName) { return _i(0x06A3524161C502BA, cutsceneName); } // 0x06a3524161c502ba0x0d732cd6B323 + // Simply checks if the cutscene has loaded and doesn't check via CutSceneManager as opposed to HAS_[THIS]_CUTSCENE_LOADED. + // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json + inline BOOL HasCutFileLoaded(String cutsceneName) { return _i(0xA1C996C2A744262E, cutsceneName); } // 0xa1c996c2a744262e0x56d5b144B323 + // Simply unloads the cutscene and doesn't do extra stuff that RemoveCutscene does. + // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json + inline Void RemoveCutFile(String cutsceneName) { return _i(0xD00D76A7DFC9D852, cutsceneName); } // 0xd00d76a7dfc9d8520xb70d7c6dB323 + // Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json + inline int GetCutFileConcatCount(String cutsceneName) { return _i(0x0ABC54DE641DC0FC, cutsceneName); } // 0x0abc54de641dc0fc0xfd8b1ac2B323 + // flags: Usually 0. + inline Void StartCutscene(int flags) { return _i(0x186D5CB5E7B0FF7B, flags); } // 0x186d5cb5e7b0ff7b0x210106f6B323 + // flags: Usually 0. + inline Void StartCutsceneAtCoords(float x, float y, float z, int flags) { return _i(0x1C9ADDA3244A1FBF, x, y, z, flags); } // 0x1c9adda3244a1fbf0x58bea436B323 + inline Void StopCutscene(BOOL p0) { return _i(0xC7272775B4DC786E, p0); } // 0xc7272775b4dc786e0x5ee84dc7B323 + inline Void StopCutsceneImmediately() { return _i(0xD220BDD222AC4A1E); } // 0xd220bdd222ac4a1e0xf528a2adB323 + // p3 could be heading. Needs more research. + inline Void SetCutsceneOrigin(float x, float y, float z, float p3, int p4) { return _i(0xB812B3FD1C01CF27, x, y, z, p3, p4); } // 0xb812b3fd1c01cf270xb0ad7792B323 + inline Void SetCutsceneOriginAndOrientation(float x1, float y1, float z1, float x2, float y2, float z2, int p6) { return _i(0x011883F41211432A, x1, y1, z1, x2, y2, z2, p6); } // 0x011883f41211432aB323 + inline int GetCutsceneTime() { return _i(0xE625BEABBAFFDAB9); } // 0xe625beabbaffdab90x53f5b5abB323 + inline int GetCutsceneTotalDuration() { return _i(0xEE53B14A19E480D4); } // 0xee53b14a19e480d40x0824ebe8B323 + inline int GetCutsceneEndTime() { return _i(0x971D7B15BCDBEF99); } // 0x971d7b15bcdbef99B1734 + inline int GetCutscenePlayDuration() { return _i(0x5D583F71C901F2A3); } // 0x5d583f71c901f2a3B2802 + inline BOOL WasCutsceneSkipped() { return _i(0x40C8656EDAEDD569); } // 0x40c8656edaedd5690xc9b6949dB323 + inline BOOL HasCutsceneFinished() { return _i(0x7C0A893088881D57); } // 0x7c0a893088881d570x5ded14b4B323 + inline BOOL IsCutsceneActive() { return _i(0x991251AFC3981F84); } // 0x991251afc3981f840xcce2fe9dB323 + inline BOOL IsCutscenePlaying() { return _i(0xD3C2E180A40F031E); } // 0xd3c2e180a40f031e0xa3a78392B323 + inline int GetCutsceneSectionPlaying() { return _i(0x49010A6A396553D8); } // 0x49010a6a396553d80x1026f0d6B323 + inline Entity GetEntityIndexOfCutsceneEntity(String cutsceneEntName, Hash modelHash) { return _i(0x0A2E9FDB9A8C62F6, cutsceneEntName, modelHash); } // 0x0a2e9fdb9a8c62f60x1d09abc7B323 + inline int GetCutsceneConcatSectionPlaying() { return _i(0x583DF8E3D4AFBD98); } // 0x583df8e3d4afbd980x5ae68ae6B323 + // This function is hard-coded to always return 1. + inline BOOL IsCutsceneAuthorized(String cutsceneName) { return _i(0x4CEBC1ED31E8925E, cutsceneName); } // 0x4cebc1ed31e8925eB323 + inline int DoesCutsceneHandleExist(int cutsceneHandle) { return _i(0x4FCD976DA686580C, cutsceneHandle); } // 0x4fcd976da686580cB1290 + inline Void RegisterEntityForCutscene(Ped cutscenePed, String cutsceneEntName, int p2, Hash modelHash, int p4) { return _i(0xE40C1C56DF95C2E8, cutscenePed, cutsceneEntName, p2, modelHash, p4); } // 0xe40c1c56df95c2e80x7cbc3ec7B323 + inline Entity GetEntityIndexOfRegisteredEntity(String cutsceneEntName, Hash modelHash) { return _i(0xC0741A26499654CD, cutsceneEntName, modelHash); } // 0xc0741a26499654cd0x46d18755B323 + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline Void SetVehicleModelPlayerWillExitScene(Hash modelHash) { return _i(0x7F96F23FA9B73327, modelHash); } // 0x7f96f23fa9b73327B323 + // Only used twice in R* scripts + inline Void SetCutsceneTriggerArea(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x9896CE4721BE84BA, x1, y1, z1, x2, y2, z2); } // 0x9896ce4721be84ba0x9d76d9deB323 + // modelHash (p1) was always 0 in R* scripts + inline BOOL CanSetEnterStateForRegisteredEntity(String cutsceneEntName, Hash modelHash) { return _i(0x645D0B458D8E17B5, cutsceneEntName, modelHash); } // 0x645d0b458d8e17b50x55c30b26B323 + inline BOOL CanSetExitStateForRegisteredEntity(String cutsceneEntName, Hash modelHash) { return _i(0x4C6A6451C79E4662, cutsceneEntName, modelHash); } // 0x4c6a6451c79e46620x8ff5d3c4B323 + inline BOOL CanSetExitStateForCamera(BOOL p0) { return _i(0xB2CBCD0930DFB420, p0); } // 0xb2cbcd0930dfb4200xedae6c02B323 + // Toggles a value (BOOL) for cutscenes. + inline Void SetPadCanShakeDuringCutscene(BOOL toggle) { return _i(0xC61B86C9F61EB404, toggle); } // 0xc61b86c9f61eb4040x35721a08B323 + inline Void SetCutsceneFadeValues(BOOL p0, BOOL p1, BOOL p2, BOOL p3) { return _i(0x8093F23ABACCC7D4, p0, p1, p2, p3); } // 0x8093f23abaccc7d40xd19ef0ddB323 + inline Void SetCutsceneMultiheadFade(BOOL p0, BOOL p1, BOOL p2, BOOL p3) { return _i(0x20746F7B1032A3C7, p0, p1, p2, p3); } // 0x20746f7b1032a3c7B323 + inline Void SetCutsceneMultiheadFadeManual(BOOL p0) { return _i(0x06EE9048FD080382, p0); } // 0x06ee9048fd080382B323 + inline BOOL IsMultiheadFadeUp() { return _i(0xA0FE76168A189DDB); } // 0xa0fe76168a189ddbB323 + // Stops current cutscene with a fade transition + // p0: always true in R* Scripts + // You will need to manually fade the screen back in + // SET_CUTSCENE_INPUTS_PARTIALLY_FADE? + inline Void NetworkSetMocapCutsceneCanBeSkipped(BOOL p0) { return _i(0x2F137B508DE238F2, p0); } // 0x2f137b508de238f20x8338da1dB323 + inline Void SetCarGeneratorsCanUpdateDuringCutscene(BOOL p0) { return _i(0xE36A98D8AB3D3C66, p0); } // 0xe36a98d8ab3d3c660x04377c10B323 + inline BOOL CanUseMobilePhoneDuringCutscene() { return _i(0x5EDEF0CF8C1DAB3C); } // 0x5edef0cf8c1dab3c0xdbd88708B323 + inline Void SetCutsceneCanBeSkipped(BOOL p0) { return _i(0x41FAA8FB2ECE8720, p0); } // 0x41faa8fb2ece87200x28d54a7fB323 + inline Void SetCanDisplayMinimapDuringCutsceneThisUpdate() { return _i(0x2131046957F31B04); } // 0x2131046957f31b040xb60cfbb9B323 + // Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json + inline Void SetCutscenePedComponentVariation(String cutsceneEntName, int componentId, int drawableId, int textureId, Hash modelHash) { return _i(0xBA01E7B6DEEFBBC9, cutsceneEntName, componentId, drawableId, textureId, modelHash); } // 0xba01e7b6deefbbc90x6af994a1B323 + inline Void SetCutscenePedComponentVariationFromPed(String cutsceneEntName, Ped ped, Hash modelHash) { return _i(0x2A56C06EBEF2B0D9, cutsceneEntName, ped, modelHash); } // 0x2a56c06ebef2b0d90x1e7da95eB323 + inline BOOL DoesCutsceneEntityExist(String cutsceneEntName, Hash modelHash) { return _i(0x499EF20C5DB25C59, cutsceneEntName, modelHash); } // 0x499ef20c5db25c590x58e67409B323 + // Thanks R*! ;) + // + // if ((l_161 == 0) || (l_161 == 2)) { + // sub_2ea27("Trying to set Jimmy prop variation"); + // CUTSCENE::SetCutscenePedPropVariation("Jimmy_Boston", 1, 0, 0, 0); + // } + // + // Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json + inline Void SetCutscenePedPropVariation(String cutsceneEntName, int componentId, int drawableId, int textureId, Hash modelHash) { return _i(0x0546524ADE2E9723, cutsceneEntName, componentId, drawableId, textureId, modelHash); } // 0x0546524ade2e97230x22e9a9deB323 + // Possibly HasCutsceneCutThisFrame, needs more research. + inline BOOL HasCutsceneCutThisFrame() { return _i(0x708BDD8CD795B043); } // 0x708bdd8cd795b0430x4315a7c5B323 } namespace DATAFILE { - // Adds the given requestID to the watch list. - inline Void DatafileWatchRequestId(int requestId) { return _i(0xAD6875BBC0FC899C, requestId); } // 0xad6875bbc0fc899c0x621388ffB323 - inline Void DatafileClearWatchList() { return _i(0x6CC86E78358D5119); } // 0x6cc86e78358d51190x5b39d0acB323 - inline BOOL DatafileIsValidRequestId(int index) { return _i(0xFCCAE5B92A830878, index); } // 0xfccae5b92a8308780x01393d16B323 - inline BOOL DatafileHasLoadedFileData(int requestId) { return _i(0x15FF52B809DB2353, requestId); } // 0x15ff52b809db23530x36fb8b3fB323 - inline BOOL DatafileHasValidFileData(int requestId) { return _i(0xF8CC1EBE0B62E29F, requestId); } // 0xf8cc1ebe0b62e29f0x2a9411daB323 - inline BOOL DatafileSelectActiveFile(int requestId, Any p1) { return _i(0x22DA66936E0FFF37, requestId, p1); } // 0x22da66936e0fff370xb41064a4B323 - inline BOOL DatafileDeleteRequestedFile(int requestId) { return _i(0x8F5EA1C01D65A100, requestId); } // 0x8f5ea1c01d65a1000x9db63cffB323 - inline BOOL UgcCreateContent(Any* data, int dataCount, String contentName, String description, String tagsCsv, String contentTypeName, BOOL publish, Any p7) { return _i(0xC84527E235FCA219, data, dataCount, contentName, description, tagsCsv, contentTypeName, publish, p7); } // 0xc84527e235fca2190xf09157b0B323 - inline BOOL UgcCreateMission(String contentName, String description, String tagsCsv, String contentTypeName, BOOL publish, Any p5) { return _i(0xA5EFC3E847D60507, contentName, description, tagsCsv, contentTypeName, publish, p5); } // 0xa5efc3e847d605070xd96860fcB323 - inline BOOL UgcUpdateContent(String contentId, Any* data, int dataCount, String contentName, String description, String tagsCsv, String contentTypeName, Any p7) { return _i(0x648E7A5434AF7969, contentId, data, dataCount, contentName, description, tagsCsv, contentTypeName, p7); } // 0x648e7a5434af79690x459f2683B323 - inline BOOL UgcUpdateMission(String contentId, String contentName, String description, String tagsCsv, String contentTypeName, Any p5) { return _i(0x4645DE9980999E93, contentId, contentName, description, tagsCsv, contentTypeName, p5); } // 0x4645de9980999e930xdbb83e2bB323 - inline BOOL UgcSetPlayerData(String contentId, float rating, String contentTypeName, Any p3) { return _i(0x692D808C34A82143, contentId, rating, contentTypeName, p3); } // 0x692d808c34a821430xbb6321bdB323 - inline BOOL DatafileSelectUgcData(int p0, Any p1) { return _i(0xA69AC4ADE82B57A4, p0, p1); } // 0xa69ac4ade82b57a40xe8d56da2B323 - inline BOOL DatafileSelectUgcStats(int p0, BOOL p1, Any p2) { return _i(0x9CB0BFA7A9342C3D, p0, p1, p2); } // 0x9cb0bfa7a9342c3d0xcb6a351eB323 - inline BOOL DatafileSelectUgcPlayerData(int p0, Any p1) { return _i(0x52818819057F2B40, p0, p1); } // 0x52818819057f2b400xa4d1b30eB323 - inline BOOL DatafileSelectCreatorStats(int p0, Any p1) { return _i(0x01095C95CD46B624, p0, p1); } // 0x01095c95cd46b6240xb8515b2fB323 - // Loads a User-Generated Content (UGC) file. These files can be found in "[GTA5]\data\ugc" and "[GTA5]\common\patch\ugc". They seem to follow a naming convention, most likely of "[name]_[part].ugc". See example below for usage. - // - // Returns whether or not the file was successfully loaded. - // - // Example: - // DATAFILE::DatafileLoadOfflineUgc("RockstarPlaylists") // loads "rockstarplaylists_00.ugc" - inline BOOL DatafileLoadOfflineUgc(String filename, Any p1) { return _i(0xC5238C011AF405E4, filename, p1); } // 0xc5238c011af405e40x660c468eB323 - inline Void DatafileCreate(int p0) { return _i(0xD27058A1CA2B13EE, p0); } // 0xd27058a1ca2b13ee0x95f8a221B323 - inline Void DatafileDelete(int p0) { return _i(0x9AB9C1CFC8862DFB, p0); } // 0x9ab9c1cfc8862dfb0xdef31b0aB323 - inline Void DatafileStoreMissionHeader(int p0) { return _i(0x2ED61456317B8178, p0); } // 0x2ed61456317b81780x4e03f632B323 - inline Void DatafileFlushMissionHeader() { return _i(0xC55854C7D7274882); } // 0xc55854c7d72748820xf11f956fB323 - inline Any* DATAFILE_GET_FILE_DICT(int p0) { return _i(0x906B778CA1DC72B6, p0); } // 0x906B778CA1DC72B6 0x86DDF9C2 b323 - inline BOOL DatafileStartSaveToCloud(String filename, Any p1) { return _i(0x83BCCE3224735F05, filename, p1); } // 0x83bcce3224735f050x768cbb35B323 - inline BOOL DatafileUpdateSaveToCloud(BOOL* p0) { return _i(0x4DFDD9EB705F8140, p0); } // 0x4dfdd9eb705f81400x0b4087f7B323 - inline BOOL DatafileIsSavePending() { return _i(0xBEDB96A7584AA8CF); } // 0xbedb96a7584aa8cf0x5dcd0796B323 - inline BOOL DatafileLoadOfflineUgcForAdditionalDataFile(Any p0, Any p1) { return _i(0xA6EEF01087181EDD, p0, p1); } // 0xa6eef01087181eddB2189 - inline Void DatafileDeleteForAdditionalDataFile(Any p0) { return _i(0x6AD0BD5E087866CB, p0); } // 0x6ad0bd5e087866cbB2189 - inline Any* DATAFILE_GET_FILE_DICT_FOR_ADDITIONAL_DATA_FILE(Any p0) { return _i(0xDBF860CF1DB8E599, p0); } // 0xDBF860CF1DB8E599 b2189 - inline Void DatadictSetBool(Any* objectData, String key, BOOL value) { return _i(0x35124302A556A325, objectData, key, value); } // 0x35124302a556a3250x9b29d99bB323 - inline Void DatadictSetInt(Any* objectData, String key, int value) { return _i(0xE7E035450A7948D5, objectData, key, value); } // 0xe7e035450a7948d50xefcf554aB323 - inline Void DatadictSetFloat(Any* objectData, String key, float value) { return _i(0xC27E1CC2D795105E, objectData, key, value); } // 0xc27e1cc2d795105e0xe972cacfB323 - inline Void DatadictSetString(Any* objectData, String key, String value) { return _i(0x8FF3847DADD8E30C, objectData, key, value); } // 0x8ff3847dadd8e30c0xd437615cB323 - inline Void DatadictSetVector(Any* objectData, String key, float valueX, float valueY, float valueZ) { return _i(0x4CD49B76338C7DEE, objectData, key, valueX, valueY, valueZ); } // 0x4cd49b76338c7dee0x75fc6c3cB323 - inline Any* DATADICT_CREATE_DICT(Any* objectData, String key) { return _i(0xA358F56F10732EE1, objectData, key); } // 0xA358F56F10732EE1 0x96A8E05F b323 - inline Any* DATADICT_CREATE_ARRAY(Any* objectData, String key) { return _i(0x5B11728527CA6E5F, objectData, key); } // 0x5B11728527CA6E5F 0x03939B8D b323 - inline BOOL DatadictGetBool(Any* objectData, String key) { return _i(0x1186940ED72FFEEC, objectData, key); } // 0x1186940ed72ffeec0x8876c872B323 - inline int DatadictGetInt(Any* objectData, String key) { return _i(0x78F06F6B1FB5A80C, objectData, key); } // 0x78f06f6b1fb5a80c0xa6c68693B323 - inline float DatadictGetFloat(Any* objectData, String key) { return _i(0x06610343E73B9727, objectData, key); } // 0x06610343e73b97270xa92c1af4B323 - inline String DATADICT_GET_STRING(Any* objectData, String key) { return _i(0x3D2FD9E763B24472, objectData, key); } // 0x3D2FD9E763B24472 0x942160EC b323 - inline Vector3 DatadictGetVector(Any* objectData, String key) { return _i(0x46CD3CB66E0825CC, objectData, key); } // 0x46cd3cb66e0825cc0xe84a127aB323 - inline Any* DATADICT_GET_DICT(Any* objectData, String key) { return _i(0xB6B9DDC412FCEEE2, objectData, key); } // 0xB6B9DDC412FCEEE2 0xC9C13D8D b323 - inline Any* DATADICT_GET_ARRAY(Any* objectData, String key) { return _i(0x7A983AA9DA2659ED, objectData, key); } // 0x7A983AA9DA2659ED 0x1F2F7D00 b323 - // Types: - // 1 = Boolean - // 2 = Integer - // 3 = Float - // 4 = String - // 5 = Vector3 - // 6 = Object - // 7 = Array - inline int DatadictGetType(Any* objectData, String key) { return _i(0x031C55ED33227371, objectData, key); } // 0x031c55ed332273710x2678342aB323 - inline Void DataarrayAddBool(Any* arrayData, BOOL value) { return _i(0xF8B0F5A43E928C76, arrayData, value); } // 0xf8b0f5a43e928c760x08174b90B323 - inline Void DataarrayAddInt(Any* arrayData, int value) { return _i(0xCABDB751D86FE93B, arrayData, value); } // 0xcabdb751d86fe93b0xf29c0b36B323 - inline Void DataarrayAddFloat(Any* arrayData, float value) { return _i(0x57A995FD75D37F56, arrayData, value); } // 0x57a995fd75d37f560xe4302123B323 - inline Void DataarrayAddString(Any* arrayData, String value) { return _i(0x2F0661C155AEEEAA, arrayData, value); } // 0x2f0661c155aeeeaa0xf3c01350B323 - inline Void DataarrayAddVector(Any* arrayData, float valueX, float valueY, float valueZ) { return _i(0x407F8D034F70F0C2, arrayData, valueX, valueY, valueZ); } // 0x407f8d034f70f0c20x16f464b6B323 - inline Any* DATAARRAY_ADD_DICT(Any* arrayData) { return _i(0x6889498B3E19C797, arrayData); } // 0x6889498B3E19C797 0xC174C71B b323 - inline BOOL DataarrayGetBool(Any* arrayData, int arrayIndex) { return _i(0x50C1B2874E50C114, arrayData, arrayIndex); } // 0x50c1b2874e50c1140xa2e5f921B323 - inline int DataarrayGetInt(Any* arrayData, int arrayIndex) { return _i(0x3E5AE19425CD74BE, arrayData, arrayIndex); } // 0x3e5ae19425cd74be0xbb120cfcB323 - inline float DataarrayGetFloat(Any* arrayData, int arrayIndex) { return _i(0xC0C527B525D7CFB5, arrayData, arrayIndex); } // 0xc0c527b525d7cfb50x08ad2cc2B323 - inline String DATAARRAY_GET_STRING(Any* arrayData, int arrayIndex) { return _i(0xD3F2FFEB8D836F52, arrayData, arrayIndex); } // 0xD3F2FFEB8D836F52 0x93F985A6 b323 - inline Vector3 DataarrayGetVector(Any* arrayData, int arrayIndex) { return _i(0x8D2064E5B64A628A, arrayData, arrayIndex); } // 0x8d2064e5b64a628a0x80e3da55B323 - inline Any* DATAARRAY_GET_DICT(Any* arrayData, int arrayIndex) { return _i(0x8B5FADCC4E3A145F, arrayData, arrayIndex); } // 0x8B5FADCC4E3A145F 0xECE81278 b323 - inline int DataarrayGetCount(Any* arrayData) { return _i(0x065DB281590CEA2D, arrayData); } // 0x065db281590cea2d0xa8a21766B323 - // Types: - // 1 = Boolean - // 2 = Integer - // 3 = Float - // 4 = String - // 5 = Vector3 - // 6 = Object - // 7 = Array - inline int DataarrayGetType(Any* arrayData, int arrayIndex) { return _i(0x3A0014ADB172A3C5, arrayData, arrayIndex); } // 0x3a0014adb172a3c50xfa2402c8B323 + // Adds the given requestID to the watch list. + inline Void DatafileWatchRequestId(int requestId) { return _i(0xAD6875BBC0FC899C, requestId); } // 0xad6875bbc0fc899c0x621388ffB323 + inline Void DatafileClearWatchList() { return _i(0x6CC86E78358D5119); } // 0x6cc86e78358d51190x5b39d0acB323 + inline BOOL DatafileIsValidRequestId(int index) { return _i(0xFCCAE5B92A830878, index); } // 0xfccae5b92a8308780x01393d16B323 + inline BOOL DatafileHasLoadedFileData(int requestId) { return _i(0x15FF52B809DB2353, requestId); } // 0x15ff52b809db23530x36fb8b3fB323 + inline BOOL DatafileHasValidFileData(int requestId) { return _i(0xF8CC1EBE0B62E29F, requestId); } // 0xf8cc1ebe0b62e29f0x2a9411daB323 + inline BOOL DatafileSelectActiveFile(int requestId, Any p1) { return _i(0x22DA66936E0FFF37, requestId, p1); } // 0x22da66936e0fff370xb41064a4B323 + inline BOOL DatafileDeleteRequestedFile(int requestId) { return _i(0x8F5EA1C01D65A100, requestId); } // 0x8f5ea1c01d65a1000x9db63cffB323 + inline BOOL UgcCreateContent(Any* data, int dataCount, String contentName, String description, String tagsCsv, String contentTypeName, BOOL publish, Any p7) { return _i(0xC84527E235FCA219, data, dataCount, contentName, description, tagsCsv, contentTypeName, publish, p7); } // 0xc84527e235fca2190xf09157b0B323 + inline BOOL UgcCreateMission(String contentName, String description, String tagsCsv, String contentTypeName, BOOL publish, Any p5) { return _i(0xA5EFC3E847D60507, contentName, description, tagsCsv, contentTypeName, publish, p5); } // 0xa5efc3e847d605070xd96860fcB323 + inline BOOL UgcUpdateContent(String contentId, Any* data, int dataCount, String contentName, String description, String tagsCsv, String contentTypeName, Any p7) { return _i(0x648E7A5434AF7969, contentId, data, dataCount, contentName, description, tagsCsv, contentTypeName, p7); } // 0x648e7a5434af79690x459f2683B323 + inline BOOL UgcUpdateMission(String contentId, String contentName, String description, String tagsCsv, String contentTypeName, Any p5) { return _i(0x4645DE9980999E93, contentId, contentName, description, tagsCsv, contentTypeName, p5); } // 0x4645de9980999e930xdbb83e2bB323 + inline BOOL UgcSetPlayerData(String contentId, float rating, String contentTypeName, Any p3) { return _i(0x692D808C34A82143, contentId, rating, contentTypeName, p3); } // 0x692d808c34a821430xbb6321bdB323 + inline BOOL DatafileSelectUgcData(int p0, Any p1) { return _i(0xA69AC4ADE82B57A4, p0, p1); } // 0xa69ac4ade82b57a40xe8d56da2B323 + inline BOOL DatafileSelectUgcStats(int p0, BOOL p1, Any p2) { return _i(0x9CB0BFA7A9342C3D, p0, p1, p2); } // 0x9cb0bfa7a9342c3d0xcb6a351eB323 + inline BOOL DatafileSelectUgcPlayerData(int p0, Any p1) { return _i(0x52818819057F2B40, p0, p1); } // 0x52818819057f2b400xa4d1b30eB323 + inline BOOL DatafileSelectCreatorStats(int p0, Any p1) { return _i(0x01095C95CD46B624, p0, p1); } // 0x01095c95cd46b6240xb8515b2fB323 + // Loads a User-Generated Content (UGC) file. These files can be found in "[GTA5]\data\ugc" and "[GTA5]\common\patch\ugc". They seem to follow a naming convention, most likely of "[name]_[part].ugc". See example below for usage. + // + // Returns whether or not the file was successfully loaded. + // + // Example: + // DATAFILE::DatafileLoadOfflineUgc("RockstarPlaylists") // loads "rockstarplaylists_00.ugc" + inline BOOL DatafileLoadOfflineUgc(String filename, Any p1) { return _i(0xC5238C011AF405E4, filename, p1); } // 0xc5238c011af405e40x660c468eB323 + inline Void DatafileCreate(int p0) { return _i(0xD27058A1CA2B13EE, p0); } // 0xd27058a1ca2b13ee0x95f8a221B323 + inline Void DatafileDelete(int p0) { return _i(0x9AB9C1CFC8862DFB, p0); } // 0x9ab9c1cfc8862dfb0xdef31b0aB323 + inline Void DatafileStoreMissionHeader(int p0) { return _i(0x2ED61456317B8178, p0); } // 0x2ed61456317b81780x4e03f632B323 + inline Void DatafileFlushMissionHeader() { return _i(0xC55854C7D7274882); } // 0xc55854c7d72748820xf11f956fB323 + inline Any* DatafileGetFileDict(int p0) { return _i(0x906B778CA1DC72B6, p0); } // 0x906B778CA1DC72B6 0x86DDF9C2 b323 + inline BOOL DatafileStartSaveToCloud(String filename, Any p1) { return _i(0x83BCCE3224735F05, filename, p1); } // 0x83bcce3224735f050x768cbb35B323 + inline BOOL DatafileUpdateSaveToCloud(BOOL* p0) { return _i(0x4DFDD9EB705F8140, p0); } // 0x4dfdd9eb705f81400x0b4087f7B323 + inline BOOL DatafileIsSavePending() { return _i(0xBEDB96A7584AA8CF); } // 0xbedb96a7584aa8cf0x5dcd0796B323 + inline BOOL DatafileLoadOfflineUgcForAdditionalDataFile(Any p0, Any p1) { return _i(0xA6EEF01087181EDD, p0, p1); } // 0xa6eef01087181eddB2189 + inline Void DatafileDeleteForAdditionalDataFile(Any p0) { return _i(0x6AD0BD5E087866CB, p0); } // 0x6ad0bd5e087866cbB2189 + inline Any* DatafileGetFileDictForAdditionalDataFile(Any p0) { return _i(0xDBF860CF1DB8E599, p0); } // 0xDBF860CF1DB8E599 b2189 + inline Void DatadictSetBool(Any* objectData, String key, BOOL value) { return _i(0x35124302A556A325, objectData, key, value); } // 0x35124302a556a3250x9b29d99bB323 + inline Void DatadictSetInt(Any* objectData, String key, int value) { return _i(0xE7E035450A7948D5, objectData, key, value); } // 0xe7e035450a7948d50xefcf554aB323 + inline Void DatadictSetFloat(Any* objectData, String key, float value) { return _i(0xC27E1CC2D795105E, objectData, key, value); } // 0xc27e1cc2d795105e0xe972cacfB323 + inline Void DatadictSetString(Any* objectData, String key, String value) { return _i(0x8FF3847DADD8E30C, objectData, key, value); } // 0x8ff3847dadd8e30c0xd437615cB323 + inline Void DatadictSetVector(Any* objectData, String key, float valueX, float valueY, float valueZ) { return _i(0x4CD49B76338C7DEE, objectData, key, valueX, valueY, valueZ); } // 0x4cd49b76338c7dee0x75fc6c3cB323 + inline Any* DatadictCreateDict(Any* objectData, String key) { return _i(0xA358F56F10732EE1, objectData, key); } // 0xA358F56F10732EE1 0x96A8E05F b323 + inline Any* DatadictCreateArray(Any* objectData, String key) { return _i(0x5B11728527CA6E5F, objectData, key); } // 0x5B11728527CA6E5F 0x03939B8D b323 + inline BOOL DatadictGetBool(Any* objectData, String key) { return _i(0x1186940ED72FFEEC, objectData, key); } // 0x1186940ed72ffeec0x8876c872B323 + inline int DatadictGetInt(Any* objectData, String key) { return _i(0x78F06F6B1FB5A80C, objectData, key); } // 0x78f06f6b1fb5a80c0xa6c68693B323 + inline float DatadictGetFloat(Any* objectData, String key) { return _i(0x06610343E73B9727, objectData, key); } // 0x06610343e73b97270xa92c1af4B323 + inline String DatadictGetString(Any* objectData, String key) { return _i(0x3D2FD9E763B24472, objectData, key); } // 0x3d2fd9e763b244720x942160ecB323 + inline Vector3 DatadictGetVector(Any* objectData, String key) { return _i(0x46CD3CB66E0825CC, objectData, key); } // 0x46cd3cb66e0825cc0xe84a127aB323 + inline Any* DatadictGetDict(Any* objectData, String key) { return _i(0xB6B9DDC412FCEEE2, objectData, key); } // 0xB6B9DDC412FCEEE2 0xC9C13D8D b323 + inline Any* DatadictGetArray(Any* objectData, String key) { return _i(0x7A983AA9DA2659ED, objectData, key); } // 0x7A983AA9DA2659ED 0x1F2F7D00 b323 + // Types: + // 1 = Boolean + // 2 = Integer + // 3 = Float + // 4 = String + // 5 = Vector3 + // 6 = Object + // 7 = Array + inline int DatadictGetType(Any* objectData, String key) { return _i(0x031C55ED33227371, objectData, key); } // 0x031c55ed332273710x2678342aB323 + inline Void DataarrayAddBool(Any* arrayData, BOOL value) { return _i(0xF8B0F5A43E928C76, arrayData, value); } // 0xf8b0f5a43e928c760x08174b90B323 + inline Void DataarrayAddInt(Any* arrayData, int value) { return _i(0xCABDB751D86FE93B, arrayData, value); } // 0xcabdb751d86fe93b0xf29c0b36B323 + inline Void DataarrayAddFloat(Any* arrayData, float value) { return _i(0x57A995FD75D37F56, arrayData, value); } // 0x57a995fd75d37f560xe4302123B323 + inline Void DataarrayAddString(Any* arrayData, String value) { return _i(0x2F0661C155AEEEAA, arrayData, value); } // 0x2f0661c155aeeeaa0xf3c01350B323 + inline Void DataarrayAddVector(Any* arrayData, float valueX, float valueY, float valueZ) { return _i(0x407F8D034F70F0C2, arrayData, valueX, valueY, valueZ); } // 0x407f8d034f70f0c20x16f464b6B323 + inline Any* DataarrayAddDict(Any* arrayData) { return _i(0x6889498B3E19C797, arrayData); } // 0x6889498B3E19C797 0xC174C71B b323 + inline BOOL DataarrayGetBool(Any* arrayData, int arrayIndex) { return _i(0x50C1B2874E50C114, arrayData, arrayIndex); } // 0x50c1b2874e50c1140xa2e5f921B323 + inline int DataarrayGetInt(Any* arrayData, int arrayIndex) { return _i(0x3E5AE19425CD74BE, arrayData, arrayIndex); } // 0x3e5ae19425cd74be0xbb120cfcB323 + inline float DataarrayGetFloat(Any* arrayData, int arrayIndex) { return _i(0xC0C527B525D7CFB5, arrayData, arrayIndex); } // 0xc0c527b525d7cfb50x08ad2cc2B323 + inline String DataarrayGetString(Any* arrayData, int arrayIndex) { return _i(0xD3F2FFEB8D836F52, arrayData, arrayIndex); } // 0xd3f2ffeb8d836f520x93f985a6B323 + inline Vector3 DataarrayGetVector(Any* arrayData, int arrayIndex) { return _i(0x8D2064E5B64A628A, arrayData, arrayIndex); } // 0x8d2064e5b64a628a0x80e3da55B323 + inline Any* DataarrayGetDict(Any* arrayData, int arrayIndex) { return _i(0x8B5FADCC4E3A145F, arrayData, arrayIndex); } // 0x8B5FADCC4E3A145F 0xECE81278 b323 + inline int DataarrayGetCount(Any* arrayData) { return _i(0x065DB281590CEA2D, arrayData); } // 0x065db281590cea2d0xa8a21766B323 + // Types: + // 1 = Boolean + // 2 = Integer + // 3 = Float + // 4 = String + // 5 = Vector3 + // 6 = Object + // 7 = Array + inline int DataarrayGetType(Any* arrayData, int arrayIndex) { return _i(0x3A0014ADB172A3C5, arrayData, arrayIndex); } // 0x3a0014adb172a3c50xfa2402c8B323 } namespace DECORATOR { - inline BOOL DecorSetTime(Entity entity, String propertyName, int timestamp) { return _i(0x95AED7B8E39ECAA4, entity, propertyName, timestamp); } // 0x95aed7b8e39ecaa40xbbaeef94B323 - // This function sets metadata of type bool to specified entity. - // - inline BOOL DecorSetBool(Entity entity, String propertyName, BOOL value) { return _i(0x6B1E8E2ED1335B71, entity, propertyName, value); } // 0x6b1e8e2ed1335b710x8e101f5cB323 - inline BOOL DecorSetFloat(Entity entity, String propertyName, float value) { return _i(0x211AB1DD8D0F363A, entity, propertyName, value); } // 0x211ab1dd8d0f363a0xbc7bd5cbB323 - // Sets property to int. - inline BOOL DecorSetInt(Entity entity, String propertyName, int value) { return _i(0x0CE3AA5E1CA19E10, entity, propertyName, value); } // 0x0ce3aa5e1ca19e100xdb718b21B323 - inline BOOL DecorGetBool(Entity entity, String propertyName) { return _i(0xDACE671663F2F5DB, entity, propertyName); } // 0xdace671663f2f5db0xdbce51e0B323 - inline float DecorGetFloat(Entity entity, String propertyName) { return _i(0x6524A2F114706F43, entity, propertyName); } // 0x6524a2f114706f430x8de5382fB323 - inline int DecorGetInt(Entity entity, String propertyName) { return _i(0xA06C969B02A97298, entity, propertyName); } // 0xa06c969b02a972980xddde59b5B323 - // Returns whether or not the specified property is set for the entity. - inline BOOL DecorExistOn(Entity entity, String propertyName) { return _i(0x05661B80A8C9165F, entity, propertyName); } // 0x05661b80a8c9165f0x74ef9c40B323 - inline BOOL DecorRemove(Entity entity, String propertyName) { return _i(0x00EE9F297C738720, entity, propertyName); } // 0x00ee9f297c7387200xe0e2640bB323 - // https://alloc8or.re/gta5/doc/enums/eDecorType.txt - inline Void DecorRegister(String propertyName, int type) { return _i(0x9FD90732F56403CE, propertyName, type); } // 0x9fd90732f56403ce0x68bd42a9B323 - // type: see DecorRegister - inline BOOL DecorIsRegisteredAsType(String propertyName, int type) { return _i(0x4F14F9F870D6FBC8, propertyName, type); } // 0x4f14f9f870d6fbc80x7cf0971dB323 - // Called after all decorator type initializations. - inline Void DecorRegisterLock() { return _i(0xA9D14EEA259F9248); } // 0xa9d14eea259f92480x7f3f1c02B323 + inline BOOL DecorSetTime(Entity entity, String propertyName, int timestamp) { return _i(0x95AED7B8E39ECAA4, entity, propertyName, timestamp); } // 0x95aed7b8e39ecaa40xbbaeef94B323 + // This function sets metadata of type BOOL to specified entity. + // + inline BOOL DecorSetBool(Entity entity, String propertyName, BOOL value) { return _i(0x6B1E8E2ED1335B71, entity, propertyName, value); } // 0x6b1e8e2ed1335b710x8e101f5cB323 + inline BOOL DecorSetFloat(Entity entity, String propertyName, float value) { return _i(0x211AB1DD8D0F363A, entity, propertyName, value); } // 0x211ab1dd8d0f363a0xbc7bd5cbB323 + // Sets property to int. + inline BOOL DecorSetInt(Entity entity, String propertyName, int value) { return _i(0x0CE3AA5E1CA19E10, entity, propertyName, value); } // 0x0ce3aa5e1ca19e100xdb718b21B323 + inline BOOL DecorGetBool(Entity entity, String propertyName) { return _i(0xDACE671663F2F5DB, entity, propertyName); } // 0xdace671663f2f5db0xdbce51e0B323 + inline float DecorGetFloat(Entity entity, String propertyName) { return _i(0x6524A2F114706F43, entity, propertyName); } // 0x6524a2f114706f430x8de5382fB323 + inline int DecorGetInt(Entity entity, String propertyName) { return _i(0xA06C969B02A97298, entity, propertyName); } // 0xa06c969b02a972980xddde59b5B323 + // Returns whether or not the specified property is set for the entity. + inline BOOL DecorExistOn(Entity entity, String propertyName) { return _i(0x05661B80A8C9165F, entity, propertyName); } // 0x05661b80a8c9165f0x74ef9c40B323 + inline BOOL DecorRemove(Entity entity, String propertyName) { return _i(0x00EE9F297C738720, entity, propertyName); } // 0x00ee9f297c7387200xe0e2640bB323 + // https://alloc8or.re/gta5/doc/enums/eDecorType.txt + inline Void DecorRegister(String propertyName, int type) { return _i(0x9FD90732F56403CE, propertyName, type); } // 0x9fd90732f56403ce0x68bd42a9B323 + // type: see DecorRegister + inline BOOL DecorIsRegisteredAsType(String propertyName, int type) { return _i(0x4F14F9F870D6FBC8, propertyName, type); } // 0x4f14f9f870d6fbc80x7cf0971dB323 + // Called after all decorator type initializations. + inline Void DecorRegisterLock() { return _i(0xA9D14EEA259F9248); } // 0xa9d14eea259f92480x7f3f1c02B323 } namespace DLC { - inline BOOL AreAnyCcsPending() { return _i(0x241FCA5B1AA14F75); } // 0x241fca5b1aa14f750x0af83036B323 - // Returns true if the given DLC pack is present. - inline BOOL IsDlcPresent(Hash dlcHash) { return _i(0x812595A0644CE1DE, dlcHash); } // 0x812595a0644ce1de0x1f321943B323 - // This function is hard-coded to always return 1. - inline BOOL DlcCheckCloudDataCorrect() { return _i(0xF2E07819EF1A5289); } // 0xf2e07819ef1a52890x881b1fdbB323 - // This function is hard-coded to always return 0. - inline int GetExtracontentCloudResult() { return _i(0x9489659372A81585); } // 0x9489659372a815850xc2169164B323 - // This function is hard-coded to always return 1. - inline BOOL DlcCheckCompatPackConfiguration() { return _i(0xA213B11DFF526300); } // 0xa213b11dff5263000xf79a97f5B323 - inline BOOL GetEverHadBadPackOrder() { return _i(0x8D30F648014A92B5); } // 0x8d30f648014a92b50xf69b729cB323 - inline BOOL GetIsLoadingScreenActive() { return _i(0x10D0A8F259E93EC9); } // 0x10d0a8f259e93ec90x517b601bB323 - inline BOOL GetIsInitialLoadingScreenActive() { return _i(0xC4637A6D03C24CC3); } // 0xc4637a6d03c24cc3B1734 - // Sets the value of the specified variable to 0. - // Always returns true. - inline BOOL HasCloudRequestsFinished(BOOL* p0, int unused) { return _i(0x46E2B844905BC5F0, p0, unused); } // 0x46e2b844905bc5f00x6087c10cB323 - // Unloads GROUP_MAP (GTAO/MP) DLC data and loads GROUP_MAP_SP DLC. Neither are loaded by default, OnEnterMp is a cognate to this function and loads MP DLC (and unloads SP DLC by extension). - // Works in singleplayer. - inline Void OnEnterSp() { return _i(0xD7C10C4A637992C9); } // 0xd7c10c4a637992c90x8bf60fc3B323 - // This loads the GTA:O dlc map parts (high end garages, apartments). - // Works in singleplayer. - // In order to use GTA:O heist IPL's you have to call this native with the following params: SetInstancePriorityMode(1); - inline Void OnEnterMp() { return _i(0x0888C3502DBBEEF5); } // 0x0888c3502dbbeef50xc65586a9B323 + inline BOOL AreAnyCcsPending() { return _i(0x241FCA5B1AA14F75); } // 0x241fca5b1aa14f750x0af83036B323 + // Returns true if the given DLC pack is present. + inline BOOL IsDlcPresent(Hash dlcHash) { return _i(0x812595A0644CE1DE, dlcHash); } // 0x812595a0644ce1de0x1f321943B323 + // This function is hard-coded to always return 1. + inline BOOL DlcCheckCloudDataCorrect() { return _i(0xF2E07819EF1A5289); } // 0xf2e07819ef1a52890x881b1fdbB323 + // This function is hard-coded to always return 0. + inline int GetExtracontentCloudResult() { return _i(0x9489659372A81585); } // 0x9489659372a815850xc2169164B323 + // This function is hard-coded to always return 1. + inline BOOL DlcCheckCompatPackConfiguration() { return _i(0xA213B11DFF526300); } // 0xa213b11dff5263000xf79a97f5B323 + inline BOOL GetEverHadBadPackOrder() { return _i(0x8D30F648014A92B5); } // 0x8d30f648014a92b50xf69b729cB323 + inline BOOL GetIsLoadingScreenActive() { return _i(0x10D0A8F259E93EC9); } // 0x10d0a8f259e93ec90x517b601bB323 + inline BOOL GetIsInitialLoadingScreenActive() { return _i(0xC4637A6D03C24CC3); } // 0xc4637a6d03c24cc3B1734 + // Sets the value of the specified variable to 0. + // Always returns true. + inline BOOL HasCloudRequestsFinished(BOOL* p0, int unused) { return _i(0x46E2B844905BC5F0, p0, unused); } // 0x46e2b844905bc5f00x6087c10cB323 + // Unloads GROUP_MAP (GTAO/MP) DLC data and loads GROUP_MAP_SP DLC. Neither are loaded by default, OnEnterMp is a cognate to this function and loads MP DLC (and unloads SP DLC by extension). + // Works in singleplayer. + inline Void OnEnterSp() { return _i(0xD7C10C4A637992C9); } // 0xd7c10c4a637992c90x8bf60fc3B323 + // This loads the GTA:O dlc map parts (high end garages, apartments). + // Works in singleplayer. + // In order to use GTA:O heist IPL's you have to call this native with the following params: SetInstancePriorityMode(1); + inline Void OnEnterMp() { return _i(0x0888C3502DBBEEF5); } // 0x0888c3502dbbeef50xc65586a9B323 } namespace ENTITY { - // Checks whether an entity exists in the game world. - inline BOOL DoesEntityExist(Entity entity) { return _i(0x7239B21A38F536BA, entity); } // 0x7239b21a38f536ba0x3ac90869B323 - inline BOOL DoesEntityBelongToThisScript(Entity entity, BOOL p1) { return _i(0xDDE6DF5AE89981D2, entity, p1); } // 0xdde6df5ae89981d20xacfeb3f9B323 - inline BOOL DoesEntityHaveDrawable(Entity entity) { return _i(0x060D6E96F8B8E48D, entity); } // 0x060d6e96f8b8e48d0xa5b33300B323 - inline BOOL DoesEntityHavePhysics(Entity entity) { return _i(0xDA95EA3317CC5064, entity); } // 0xda95ea3317cc50640x9bcd2979B323 - inline BOOL DoesEntityHaveSkeleton(Entity entity) { return _i(0x764EB96874EFFDC1, entity); } // 0x764eb96874effdc1B2699 - inline BOOL DoesEntityHaveAnimDirector(Entity entity) { return _i(0x2158E81A6AF65EA9, entity); } // 0x2158e81a6af65ea9B2699 - // P3 is always 3 as far as i cant tell - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline BOOL HasEntityAnimFinished(Entity entity, String animDict, String animName, int p3) { return _i(0x20B711662962B472, entity, animDict, animName, p3); } // 0x20b711662962b4720x1d9cab92B323 - inline BOOL HasEntityBeenDamagedByAnyObject(Entity entity) { return _i(0x95EB9964FF5C5C65, entity); } // 0x95eb9964ff5c5c650x6b74582eB323 - inline BOOL HasEntityBeenDamagedByAnyPed(Entity entity) { return _i(0x605F5A140F202491, entity); } // 0x605f5a140f2024910x53fd4a25B323 - inline BOOL HasEntityBeenDamagedByAnyVehicle(Entity entity) { return _i(0xDFD5033FDBA0A9C8, entity); } // 0xdfd5033fdba0a9c80x878c2ce0B323 - // Entity 1 = Victim - // Entity 2 = Attacker - // - // p2 seems to always be 1 - inline BOOL HasEntityBeenDamagedByEntity(Entity entity1, Entity entity2, BOOL p2) { return _i(0xC86D67D52A707CF8, entity1, entity2, p2); } // 0xc86d67d52a707cf80x07fc77e0B323 - // traceType is always 17 in the scripts. - // - // There is other codes used for traceType: - // 19 - in jewelry_prep1a - // 126 - in am_hunt_the_beast - // 256 & 287 - in fm_mission_controller - inline BOOL HasEntityClearLosToEntity(Entity entity1, Entity entity2, int traceType) { return _i(0xFCDFF7B72D23A1AC, entity1, entity2, traceType); } // 0xfcdff7b72d23a1ac0x53576fa7B323 - inline BOOL HasEntityClearLosToEntityAdjustForCover(Entity entity1, Entity entity2, int traceType) { return _i(0x394BDE2A7BBA031E, entity1, entity2, traceType); } // 0x394bde2a7bba031eB1868 - // Has the entity1 got a clear line of sight to the other entity2 from the direction entity1 is facing. - // This is one of the most CPU demanding BOOL natives in the game; aVoid calling this in things like nested for-loops - inline BOOL HasEntityClearLosToEntityInFront(Entity entity1, Entity entity2) { return _i(0x0267D00AF114F17A, entity1, entity2); } // 0x0267d00af114f17a0x210d87c8B323 - // Called on tick. - // Tested with vehicles, returns true whenever the vehicle is touching any entity. - // - // Note: for vehicles, the wheels can touch the ground and it will still return false, but if the body of the vehicle touches the ground, it will return true. - inline BOOL HasEntityCollidedWithAnything(Entity entity) { return _i(0x8BAD02F0368D9E14, entity); } // 0x8bad02f0368d9e140x662a2f41B323 - inline Entity GetLastEntityHitByEntity(Entity entity) { return _i(0xA75EE4F689B85391, entity); } // 0xa75ee4f689b85391B2802 - inline Hash GetLastMaterialHitByEntity(Entity entity) { return _i(0x5C3D0A935F535C4C, entity); } // 0x5c3d0a935f535c4c0xc0e3aa47B323 - inline Vector3 GetCollisionNormalOfLastHitForEntity(Entity entity) { return _i(0xE465D4AB7CA6AE72, entity); } // 0xe465d4ab7ca6ae720xab415c07B323 - // Based on carmod_shop script decompile this takes a vehicle parameter. It is called when repair is done on initial enter. - inline Void ForceEntityAiAndAnimationUpdate(Entity entity) { return _i(0x40FDEDB72F8293B2, entity); } // 0x40fdedb72f8293b20x58d9775fB323 - // Returns a float value representing animation's current playtime with respect to its total playtime. This value increasing in a range from [0 to 1] and wrap back to 0 when it reach 1. - // - // Example: - // 0.000000 - mark the starting of animation. - // 0.500000 - mark the midpoint of the animation. - // 1.000000 - mark the end of animation. - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline float GetEntityAnimCurrentTime(Entity entity, String animDict, String animName) { return _i(0x346D81500D088F42, entity, animDict, animName); } // 0x346d81500d088f420x83943f41B323 - // Returns a float value representing animation's total playtime in milliseconds. - // - // Example: - // GetEntityAnimTotalTime(PlayerId(),"amb@world_human_yoga@female@base","base_b") - // return 20800.000000 - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline float GetEntityAnimTotalTime(Entity entity, String animDict, String animName) { return _i(0x50BD2730B191E360, entity, animDict, animName); } // 0x50bd2730b191e3600x433a9d18B323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline float GetAnimDuration(String animDict, String animName) { return _i(0xFEDDF04D62B8D790, animDict, animName); } // 0xfeddf04d62b8d7900x8b5e3e3dB323 - inline Entity GetEntityAttachedTo(Entity entity) { return _i(0x48C2BED9180FE123, entity); } // 0x48c2bed9180fe1230xfe1589f9B323 - // Gets the current coordinates for a specified entity. - // `entity` = The entity to get the coordinates from. - // `alive` = Unused by the game, potentially used by debug builds of GTA in order to assert whether or not an entity was alive. - inline Vector3 GetEntityCoords(Entity entity, BOOL alive) { return _i(0x3FEF770D40960D5A, entity, alive); } // 0x3fef770d40960d5a0x1647f1cbB323 - // Gets the entity's forward vector. - inline Vector3 GetEntityForwardVector(Entity entity) { return _i(0x0A794A5A57F8DF91, entity); } // 0x0a794a5a57f8df910x84dcecbfB323 - // Gets the X-component of the entity's forward vector. - inline float GetEntityForwardX(Entity entity) { return _i(0x8BB4EF4214E0E6D5, entity); } // 0x8bb4ef4214e0e6d50x49fae914B323 - // Gets the Y-component of the entity's forward vector. - inline float GetEntityForwardY(Entity entity) { return _i(0x866A4A5FAE349510, entity); } // 0x866a4a5fae3495100x9e2f917cB323 - // Returns the heading of the entity in degrees. Also know as the "Yaw" of an entity. - inline float GetEntityHeading(Entity entity) { return _i(0xE83D4F9BA2A38914, entity); } // 0xe83d4f9ba2a389140x972cc383B323 - // Gets the heading of the entity physics in degrees, which tends to be more accurate than just "GetEntityHeading". This can be clearly seen while, for example, ragdolling a ped/player. - // - // NOTE: The name and description of this native are based on independent research. If you find this native to be more suitable under a different name and/or described differently, please feel free to do so. - inline float GetEntityHeadingFromEulers(Entity entity) { return _i(0x846BF6291198A71E, entity); } // 0x846bf6291198a71e0x9320e642B323 - // Returns an integer value of entity's current health. - // - // Example of range for ped: - // - Player [0 to 200] - // - Ped [100 to 200] - // - Vehicle [0 to 1000] - // - Object [0 to 1000] - // - // Health is actually a float value but this native casts it to int. - // In order to get the actual value, do: - // float health = *(float *)(entityAddress + 0x280); - inline int GetEntityHealth(Entity entity) { return _i(0xEEF059FAD016D209, entity); } // 0xeef059fad016d2090x8e3222b7B323 - // Return an integer value of entity's maximum health. - // - // Example: - // - Player = 200 - // - Ped = 150 - inline int GetEntityMaxHealth(Entity entity) { return _i(0x15D757606D170C3C, entity); } // 0x15d757606d170c3c0xc7ae6aa1B323 - // For instance: ENTITY::SetEntityMaxHealth(PLAYER::PlayerPedId(), 200); // director_mode.c4: 67849 - inline Void SetEntityMaxHealth(Entity entity, int value) { return _i(0x166E7CF68597D8B5, entity, value); } // 0x166e7cf68597d8b50x96f84df8B323 - inline float GetEntityHeight(Entity entity, float X, float Y, float Z, BOOL atTop, BOOL inWorldCoords) { return _i(0x5A504562485944DD, entity, X, Y, Z, atTop, inWorldCoords); } // 0x5a504562485944dd0xee443481B323 - // Return height (z-dimension) above ground. - // Example: The pilot in a titan plane is 1.844176 above ground. - // - // How can i convert it to meters? - // Everything seems to be in meters, probably this too. - inline float GetEntityHeightAboveGround(Entity entity) { return _i(0x1DD55701034110E5, entity); } // 0x1dd55701034110e50x57f56a4dB323 - inline Void GetEntityMatrix(Entity entity, Vector3* forwardVector, Vector3* rightVector, Vector3* upVector, Vector3* position) { return _i(0xECB2FC7235A7D137, entity, forwardVector, rightVector, upVector, position); } // 0xecb2fc7235a7d1370xeb9eb001B323 - // Returns the model hash from the entity - inline Hash GetEntityModel(Entity entity) { return _i(0x9F47B058362C84B5, entity); } // 0x9f47b058362c84b50xdafcb3ecB323 - // Converts world coords (posX - Z) to coords relative to the entity - // - // Example: - // posX is given as 50 - // entity's x coord is 40 - // the returned x coord will then be 10 or -10, not sure haven't used this in a while (think it is 10 though). - inline Vector3 GetOffsetFromEntityGivenWorldCoords(Entity entity, float posX, float posY, float posZ) { return _i(0x2274BC1C4885E333, entity, posX, posY, posZ); } // 0x2274bc1c4885e3330x6477ec9eB323 - // Offset values are relative to the entity. - // - // x = left/right - // y = forward/backward - // z = up/down - inline Vector3 GetOffsetFromEntityInWorldCoords(Entity entity, float offsetX, float offsetY, float offsetZ) { return _i(0x1899F328B0E12848, entity, offsetX, offsetY, offsetZ); } // 0x1899f328b0e128480xabcf043aB323 - inline float GetEntityPitch(Entity entity) { return _i(0xD45DC2893621E1FE, entity); } // 0xd45dc2893621e1fe0xfce6ece5B323 - // w is the correct parameter name! - inline Void GetEntityQuaternion(Entity entity, float* x, float* y, float* z, float* w) { return _i(0x7B3703D2D32DFA18, entity, x, y, z, w); } // 0x7b3703d2d32dfa180x5154ec90B323 - // Displays the current ROLL axis of the entity [-180.0000/180.0000+] - // (Sideways Roll) such as a vehicle tipped on its side - inline float GetEntityRoll(Entity entity) { return _i(0x831E0242595560DF, entity); } // 0x831e0242595560df0x36610842B323 - // rotationOrder is the order yaw, pitch and roll is applied. Usually 2. Returns a vector where the Z coordinate is the yaw. - // - // rotationOrder refers to the order yaw pitch roll is applied; value ranges from 0 to 5 and is usually *2* in scripts. - // What you use for rotationOrder when getting must be the same as rotationOrder when setting the rotation. - // - // What it returns is the yaw on the z part of the vector, which makes sense considering R* considers z as vertical. Here's a picture for those of you who don't understand pitch, yaw, and roll: www.allstar.fiu.edu/aero/images/pic5-1.gif - // - // Rotation Orders: - // 0: ZYX - Rotate around the z-axis, then the y-axis and finally the x-axis. - // 1: YZX - Rotate around the y-axis, then the z-axis and finally the x-axis. - // 2: ZXY - Rotate around the z-axis, then the x-axis and finally the y-axis. - // 3: XZY - Rotate around the x-axis, then the z-axis and finally the y-axis. - // 4: YXZ - Rotate around the y-axis, then the x-axis and finally the z-axis. - // 5: XYZ - Rotate around the x-axis, then the y-axis and finally the z-axis. - inline Vector3 GetEntityRotation(Entity entity, int rotationOrder) { return _i(0xAFBD61CC738D9EB9, entity, rotationOrder); } // 0xafbd61cc738d9eb90x8ff45b04B323 - inline Vector3 GetEntityRotationVelocity(Entity entity) { return _i(0x213B91045D09B983, entity); } // 0x213b91045d09b9830x9bf8a73fB323 - // Returns the name of the script that owns/created the entity or nullptr. Second parameter is unused, can just be a nullptr. - inline String GET_ENTITY_SCRIPT(Entity entity, ScrHandle* script) { return _i(0xA6E9C38DB51D7748, entity, script); } // 0xA6E9C38DB51D7748 0xB7F70784 b323 - // result is in meters per second - // - // ------------------------------------------------------------ - // So would the conversion to mph and km/h, be along the lines of this. - // - // float speed = GetEntitySpeed(veh); - // float kmh = (speed * 3.6); - // float mph = (speed * 2.236936); - // ------------------------------------------------------------ - inline float GetEntitySpeed(Entity entity) { return _i(0xD5037BA82E12416F, entity); } // 0xd5037ba82e12416f0x9e1e4798B323 - // Relative can be used for getting speed relative to the frame of the vehicle, to determine for example, if you are going in reverse (-y speed) or not (+y speed). - inline Vector3 GetEntitySpeedVector(Entity entity, BOOL relative) { return _i(0x9A8D700A51CB7B0D, entity, relative); } // 0x9a8d700a51cb7b0d0x3ed2b997B323 - inline float GetEntityUprightValue(Entity entity) { return _i(0x95EED5A694951F9F, entity); } // 0x95eed5a694951f9f0xf4268190B323 - inline Vector3 GetEntityVelocity(Entity entity) { return _i(0x4805D2B1D8CF94A9, entity); } // 0x4805d2b1d8cf94a90xc14c9b6bB323 - // Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - inline Object GetObjectIndexFromEntityIndex(Entity entity) { return _i(0xD7E3B9735C0F89D6, entity); } // 0xd7e3b9735c0f89d60xbc5a9c58B323 - // Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - inline Ped GetPedIndexFromEntityIndex(Entity entity) { return _i(0x04A2A40C73395041, entity); } // 0x04a2a40c733950410xc46f74acB323 - // Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - inline Vehicle GetVehicleIndexFromEntityIndex(Entity entity) { return _i(0x4B53F92932ADFAC0, entity); } // 0x4b53f92932adfac00xc69cf43dB323 - // Returns the coordinates of an entity-bone. - inline Vector3 GetWorldPositionOfEntityBone(Entity entity, int boneIndex) { return _i(0x44A8FCB8ED227738, entity, boneIndex); } // 0x44a8fcb8ed2277380x7c6339dfB323 - inline Player GetNearestPlayerToEntity(Entity entity) { return _i(0x7196842CB375CDB3, entity); } // 0x7196842cb375cdb30xce17fdecB323 - inline Player GetNearestPlayerToEntityOnTeam(Entity entity, int team) { return _i(0x4DC9A62F844D9337, entity, team); } // 0x4dc9a62f844d93370xb1808f56B323 - inline int GetNearestParticipantToEntity(Entity entity) { return _i(0xFFBD7052D65BE0FF, entity); } // 0xffbd7052d65be0ffB2944 - // Returns: - // 0 = no entity - // 1 = ped - // 2 = vehicle - // 3 = object - inline int GetEntityType(Entity entity) { return _i(0x8ACD366038D14505, entity); } // 0x8acd366038d145050x0b1bd08dB323 - // A population type, from the following enum: https://alloc8or.re/gta5/doc/enums/ePopulationType.txt - inline int GetEntityPopulationType(Entity entity) { return _i(0xF6F5161F4534EDFF, entity); } // 0xf6f5161f4534edff0xfc30ddffB323 - inline BOOL IsAnEntity(ScrHandle handle) { return _i(0x731EC8A916BD11A1, handle); } // 0x731ec8a916bd11a10xd4b9715aB323 - inline BOOL IsEntityAPed(Entity entity) { return _i(0x524AC5ECEA15343E, entity); } // 0x524ac5ecea15343e0x55d33eabB323 - inline BOOL IsEntityAMissionEntity(Entity entity) { return _i(0x0A7B270912999B3C, entity); } // 0x0a7b270912999b3c0x2632e124B323 - inline BOOL IsEntityAVehicle(Entity entity) { return _i(0x6AC7003FA6E5575E, entity); } // 0x6ac7003fa6e5575e0xbe800b01B323 - inline BOOL IsEntityAnObject(Entity entity) { return _i(0x8D68C8FD0FACA94E, entity); } // 0x8d68c8fd0faca94e0x3f52e561B323 - // Checks if entity is within x/y/zSize distance of x/y/z. - // - // Last three are unknown ints, almost always p7 = 0, p8 = 1, p9 = 0 - inline BOOL IsEntityAtCoord(Entity entity, float xPos, float yPos, float zPos, float xSize, float ySize, float zSize, BOOL p7, BOOL p8, int p9) { return _i(0x20B60995556D004F, entity, xPos, yPos, zPos, xSize, ySize, zSize, p7, p8, p9); } // 0x20b60995556d004f0xd749b606B323 - // Checks if entity1 is within the box defined by x/y/zSize of entity2. - // - // Last three parameters are almost alwasy p5 = 0, p6 = 1, p7 = 0 - inline BOOL IsEntityAtEntity(Entity entity1, Entity entity2, float xSize, float ySize, float zSize, BOOL p5, BOOL p6, int p7) { return _i(0x751B70C3D034E187, entity1, entity2, xSize, ySize, zSize, p5, p6, p7); } // 0x751b70c3d034e1870xdabdcb52B323 - // Whether the entity is attached to any other entity. - inline BOOL IsEntityAttached(Entity entity) { return _i(0xB346476EF1A64897, entity); } // 0xb346476ef1a648970xec1479d5B323 - inline BOOL IsEntityAttachedToAnyObject(Entity entity) { return _i(0xCF511840CEEDE0CC, entity); } // 0xcf511840ceede0cc0x0b5de340B323 - inline BOOL IsEntityAttachedToAnyPed(Entity entity) { return _i(0xB1632E9A5F988D11, entity); } // 0xb1632e9a5f988d110x9d7a609cB323 - inline BOOL IsEntityAttachedToAnyVehicle(Entity entity) { return _i(0x26AA915AD89BFB4B, entity); } // 0x26aa915ad89bfb4b0xde5c995eB323 - inline BOOL IsEntityAttachedToEntity(Entity from, Entity to) { return _i(0xEFBE71898A993728, from, to); } // 0xefbe71898a9937280xb0abfea8B323 - inline BOOL IsEntityDead(Entity entity, BOOL p1) { return _i(0x5F9532F3B5CC2551, entity, p1); } // 0x5f9532f3b5cc25510xb6f7cbacB323 - inline BOOL IsEntityInAir(Entity entity) { return _i(0x886E37EC497200B6, entity); } // 0x886e37ec497200b60xa4157987B323 - // `p8` is a debug flag invoking functions in the same path as ``DrawMarker`` - // `p10` is some entity flag check, also used in `IsEntityAtEntity`, `IsEntityInArea`, and `IsEntityAtCoord`. - // See IsPointInAngledArea for the definition of an angled area. - inline BOOL IsEntityInAngledArea(Entity entity, float x1, float y1, float z1, float x2, float y2, float z2, float width, BOOL debug, BOOL includeZ, Any p10) { return _i(0x51210CED3DA1C78A, entity, x1, y1, z1, x2, y2, z2, width, debug, includeZ, p10); } // 0x51210ced3da1c78a0x883622faB323 - inline BOOL IsEntityInArea(Entity entity, float x1, float y1, float z1, float x2, float y2, float z2, BOOL p7, BOOL p8, Any p9) { return _i(0x54736AA40E271165, entity, x1, y1, z1, x2, y2, z2, p7, p8, p9); } // 0x54736aa40e2711650x8c2dfa9dB323 - // Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json - inline BOOL IsEntityInZone(Entity entity, String zone) { return _i(0xB6463CF6AF527071, entity, zone); } // 0xb6463cf6af5270710x45c82b21B323 - inline BOOL IsEntityInWater(Entity entity) { return _i(0xCFB0A0D8EDD145A3, entity); } // 0xcfb0a0d8edd145a30x4c3c2508B323 - // Get how much of the entity is submerged. 1.0f is whole entity. - inline float GetEntitySubmergedLevel(Entity entity) { return _i(0xE81AFC1BC4CC41CE, entity); } // 0xe81afc1bc4cc41ce0x0170f68cB323 - inline Void SetEntityRequiresMoreExpensiveRiverCheck(Entity entity, BOOL toggle) { return _i(0x694E00132F2823ED, entity, toggle); } // 0x694e00132f2823ed0x40c84a74B323 - // Returns true if the entity is in between the minimum and maximum values for the 2d screen coords. - // This means that it will return true even if the entity is behind a wall for example, as long as you're looking at their location. - // Chipping - inline BOOL IsEntityOnScreen(Entity entity) { return _i(0xE659E47AF827484B, entity); } // 0xe659e47af827484b0xc1fec5edB323 - // See also PED::IsScriptedScenarioPedUsingConditionalAnim 0x6EC47A344923E1ED 0x3C30B447 - // - // Taken from ENTITY::IsEntityPlayingAnim(PLAYER::PlayerPedId(), "creatures@shark@move", "attack_player", 3) - // - // p4 is always 3 in the scripts. - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline BOOL IsEntityPlayingAnim(Entity entity, String animDict, String animName, int taskFlag) { return _i(0x1F0B79228E461EC9, entity, animDict, animName, taskFlag); } // 0x1f0b79228e461ec90x0d130d34B323 - // a inline ped will not react to natives like "ApplyForceToEntity" or "SetEntityVelocity" and oftentimes will not react to task-natives like "TASK::TaskCombatPed". The only way I know of to make one of these peds react is to ragdoll them (or sometimes to use ClearPedTasksImmediately(). inline peds include almost all far-away peds, beach-combers, peds in certain scenarios, peds crossing a crosswalk, peds walking to get back into their cars, and others. If anyone knows how to make a ped non-inline without ragdolling them, please edit this with the solution. - // - // how can I make an entity inline??? - inline BOOL IsEntityinline(Entity entity) { return _i(0x1218E6886D3D8327, entity); } // 0x1218e6886d3d83270x928e12e9B323 - inline BOOL IsEntityTouchingEntity(Entity entity, Entity targetEntity) { return _i(0x17FFC1B2BA35A494, entity, targetEntity); } // 0x17ffc1b2ba35a4940x6b931477B323 - inline BOOL IsEntityTouchingModel(Entity entity, Hash modelHash) { return _i(0x0F42323798A58C8C, entity, modelHash); } // 0x0f42323798a58c8c0x307e7611B323 - inline BOOL IsEntityUpright(Entity entity, float angle) { return _i(0x5333F526F6AB19AA, entity, angle); } // 0x5333f526f6ab19aa0x3bcdf4e1B323 - inline BOOL IsEntityUpsidedown(Entity entity) { return _i(0x1DBD58820FA61D71, entity); } // 0x1dbd58820fa61d710x5acaa48fB323 - inline BOOL IsEntityVisible(Entity entity) { return _i(0x47D6F43D77935C75, entity); } // 0x47d6f43d77935c750x120b4ed5B323 - inline BOOL IsEntityVisibleToScript(Entity entity) { return _i(0xD796CB5BA8F20E32, entity); } // 0xd796cb5ba8f20e320x5d240e9dB323 - inline BOOL IsEntityOccluded(Entity entity) { return _i(0xE31C2C72B8692B64, entity); } // 0xe31c2c72b8692b640x46bc5b40B323 - inline BOOL WouldEntityBeOccluded(Hash entityModelHash, float x, float y, float z, BOOL p4) { return _i(0xEE5D2A122E09EC42, entityModelHash, x, y, z, p4); } // 0xee5d2a122e09ec420xea127cbcB323 - inline BOOL IsEntityWaitingForWorldCollision(Entity entity) { return _i(0xD05BFF0C0A12C68F, entity); } // 0xd05bff0c0a12c68f0x00ab7a4aB323 - // Applies a force to the specified entity. - // - // **List of force types (p1)**: - // public enum ForceType - // { - // MinForce = 0, - // MaxForceRot = 1, - // MinForce2 = 2, - // MaxForceRot2 = 3, - // ForceNoRot = 4, - // ForceRotPlusForce = 5 - // } - // Research/documentation on the gtaforums can be found here https://gtaforums.com/topic/885669-precisely-define-object-physics/) and here https://gtaforums.com/topic/887362-apply-forces-and-momentums-to-entityobject/. - // - // p6/relative - makes the xyz force not relative to world coords, but to something else - // p7/highForce - setting false will make the force really low - inline Void ApplyForceToEntityCenterOfMass(Entity entity, int forceType, float x, float y, float z, BOOL p5, BOOL isDirectionRel, BOOL isForceRel, BOOL p8) { return _i(0x18FF00FC7EFF559E, entity, forceType, x, y, z, p5, isDirectionRel, isForceRel, p8); } // 0x18ff00fc7eff559e0x28924e98B323 - // Documented here: - // gtaforums.com/topic/885669-precisely-define-object-physics/ - // gtaforums.com/topic/887362-apply-forces-and-momentums-to-entityobject/ - // - // forceFlags: - // First bit (lowest): Strong force flag, factor 100 - // Second bit: Unkown flag - // Third bit: Momentum flag=1 (vector (x,y,z) is a momentum, more research needed) - // If higher bits are unequal 0 the function doesn't applay any forces at all. - // (As integer possible values are 0-7) - // - // 0: weak force - // 1: strong force - // 2: same as 0 (2nd bit?) - // 3: same as 1 - // 4: weak momentum - // 5: strong momentum - // 6: same as 4 - // 7: same as 5 - // - // isLocal: vector defined in local (body-fixed) coordinate frame - // isMassRel: if true the force gets multiplied with the objects mass (this is why it was known as highForce) and different objects will have the same acceleration. - // - // p8 !!! Whenever I set this !=0, my script stopped. - inline Void ApplyForceToEntity(Entity entity, int forceFlags, float x, float y, float z, float offX, float offY, float offZ, int boneIndex, BOOL isDirectionRel, BOOL ignoreUpVec, BOOL isForceRel, BOOL p12, BOOL p13) { return _i(0xC5F68BE9613E2D18, entity, forceFlags, x, y, z, offX, offY, offZ, boneIndex, isDirectionRel, ignoreUpVec, isForceRel, p12, p13); } // 0xc5f68be9613e2d180xc1c0855aB323 - // Attaches entity1 to bone (boneIndex) of entity2. - // - // boneIndex - this is different to boneID, use GetPedBoneIndex to get the index from the ID. use the index for attaching to specific bones. entity1 will be attached to entity2's centre if bone index given doesn't correspond to bone indexes for that entity type. - // - // useSoftPinning - if set to false attached entity will not detach when fixed - // collision - controls collision between the two entities (FALSE disables collision). - // isPed - pitch doesnt work when false and roll will only work on negative numbers (only peds) - // vertexIndex - position of vertex - // fixedRot - if false it ignores entity vector - // - inline Void AttachEntityToEntity(Entity entity1, Entity entity2, int boneIndex, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, BOOL p9, BOOL useSoftPinning, BOOL collision, BOOL isPed, int vertexIndex, BOOL fixedRot, Any p15) { return _i(0x6B9BBD38AB0796DF, entity1, entity2, boneIndex, xPos, yPos, zPos, xRot, yRot, zRot, p9, useSoftPinning, collision, isPed, vertexIndex, fixedRot, p15); } // 0x6b9bbd38ab0796df0xec024237B323 - inline Void AttachEntityBoneToEntityBone(Entity entity1, Entity entity2, int boneIndex1, int boneIndex2, BOOL p4, BOOL p5) { return _i(0x5C48B75732C8456C, entity1, entity2, boneIndex1, boneIndex2, p4, p5); } // 0x5c48b75732c8456cB791 - inline Void AttachEntityBoneToEntityBoneYForward(Entity entity1, Entity entity2, int boneIndex1, int boneIndex2, BOOL p4, BOOL p5) { return _i(0xFD1695C5D3B05439, entity1, entity2, boneIndex1, boneIndex2, p4, p5); } // 0xfd1695c5d3b05439B791 - // breakForce is the amount of force required to break the bond. - // p14 - is always 1 in scripts - // p15 - is 1 or 0 in scripts - unknoun what it does - // p16 - controls collision between the two entities (FALSE disables collision). - // p17 - do not teleport entity to be attached to the position of the bone Index of the target entity (if 1, entity will not be teleported to target bone) - // p18 - is always 2 in scripts. - // - // - inline Void AttachEntityToEntityPhysically(Entity entity1, Entity entity2, int boneIndex1, int boneIndex2, float xPos1, float yPos1, float zPos1, float xPos2, float yPos2, float zPos2, float xRot, float yRot, float zRot, float breakForce, BOOL fixedRot, BOOL p15, BOOL collision, BOOL p17, int p18) { return _i(0xC3675780C92F90F9, entity1, entity2, boneIndex1, boneIndex2, xPos1, yPos1, zPos1, xPos2, yPos2, zPos2, xRot, yRot, zRot, breakForce, fixedRot, p15, collision, p17, p18); } // 0xc3675780c92f90f90x0547417fB323 - inline Void AttachEntityToEntityPhysicallyOverrideInverseMass(Entity firstEntityIndex, Entity secondEntityIndex, int firstEntityBoneIndex, int secondEntityBoneIndex, float secondEntityOffsetX, float secondEntityOffsetY, float secondEntityOffsetZ, float firstEntityOffsetX, float firstEntityOffsetY, float firstEntityOffsetZ, float vecRotationX, float vecRotationY, float vecRotationZ, float physicalStrength, BOOL constrainRotation, BOOL doInitialWarp, BOOL collideWithEntity, BOOL addInitialSeperation, int rotOrder, float invMassScaleA, float invMassScaleB) { return _i(0x168A09D1B25B0BA4, firstEntityIndex, secondEntityIndex, firstEntityBoneIndex, secondEntityBoneIndex, secondEntityOffsetX, secondEntityOffsetY, secondEntityOffsetZ, firstEntityOffsetX, firstEntityOffsetY, firstEntityOffsetZ, vecRotationX, vecRotationY, vecRotationZ, physicalStrength, constrainRotation, doInitialWarp, collideWithEntity, addInitialSeperation, rotOrder, invMassScaleA, invMassScaleB); } // 0x168a09d1b25b0ba4B2944 - // Called to update entity attachments. - inline Void ProcessEntityAttachments(Entity entity) { return _i(0xF4080490ADC51C6F, entity); } // 0xf4080490adc51c6f0x6909ba59B323 - // Returns the index of the bone. If the bone was not found, -1 will be returned. - // - // list: - // https://pastebin.com/D7JMnX1g - // - // BoneNames: - // chassis, - // windscreen, - // seat_pside_r, - // seat_dside_r, - // bodyshell, - // suspension_lm, - // suspension_lr, - // platelight, - // attach_female, - // attach_male, - // bonnet, - // boot, - // chassis_dummy, //Center of the dummy - // chassis_Control, //Not found yet - // door_dside_f, //Door left, front - // door_dside_r, //Door left, back - // door_pside_f, //Door right, front - // door_pside_r, //Door right, back - // Gun_GripR, - // windscreen_f, - // platelight, //Position where the light above the numberplate is located - // VFX_Emitter, - // window_lf, //Window left, front - // window_lr, //Window left, back - // window_rf, //Window right, front - // window_rr, //Window right, back - // engine, //Position of the engine - // gun_ammo, - // ROPE_ATTATCH, //Not misspelled. In script "finale_heist2b.c4". - // wheel_lf, //Wheel left, front - // wheel_lr, //Wheel left, back - // wheel_rf, //Wheel right, front - // wheel_rr, //Wheel right, back - // exhaust, //Exhaust. shows only the position of the stock-exhaust - // overheat, //A position on the engine(not exactly sure, how to name it) - // misc_e, //Not a car-bone. - // seat_dside_f, //Driver-seat - // seat_pside_f, //Seat next to driver - // Gun_Nuzzle, - // seat_r - // - // I doubt that the function is case-sensitive, since I found a "Chassis" and a "chassis". - Just tested: Definitely not case-sensitive. - // - // - inline int GetEntityBoneIndexByName(Entity entity, String boneName) { return _i(0xFB71170B7E76ACBA, entity, boneName); } // 0xfb71170b7e76acba0xe4ecac22B323 - inline Void ClearEntityLastDamageEntity(Entity entity) { return _i(0xA72CD9CA74A5ECBA, entity); } // 0xa72cd9ca74a5ecba0x2b83f43bB323 - // Deletes the specified entity, then sets the handle pointed to by the pointer to NULL. - inline Void DeleteEntity(Entity* entity) { return _i(0xAE3CBE5BF394C9C9, entity); } // 0xae3cbe5bf394c9c90xfaa3d236B323 - // If `collision` is set to true, both entities won't collide with the other until the distance between them is above 4 meters. - // Set `dynamic` to true to keep velocity after dettaching - inline Void DetachEntity(Entity entity, BOOL dynamic, BOOL collision) { return _i(0x961AC54BF0613F5D, entity, dynamic, collision); } // 0x961ac54bf0613f5d0xc8efcb41B323 - // Freezes or unfreezes an entity preventing its coordinates to change by the player if set to `true`. You can still change the entity position using SetEntityCoords. - inline Void FreezeEntityPosition(Entity entity, BOOL toggle) { return _i(0x428CA6DBD1094446, entity, toggle); } // 0x428ca6dbd10944460x65c16d57B323 - // True means it can be deleted by the engine when switching lobbies/missions/etc, false means the script is expected to clean it up. - // - // "Allow Freeze If No Collision" - inline Void SetEntityShouldFreezeWaitingOnCollision(Entity entity, BOOL toggle) { return _i(0x3910051CCECDB00C, entity, toggle); } // 0x3910051ccecdb00c0xd3850671B323 - // delta and bitset are guessed fields. They are based on the fact that most of the calls have 0 or nil field types passed in. - // - // The only time bitset has a value is 0x4000 and the only time delta has a value is during stealth with usually <1.0f values. - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline BOOL PlayEntityAnim(Entity entity, String animName, String animDict, float p3, BOOL loop, BOOL stayInAnim, BOOL p6, float delta, Any bitset) { return _i(0x7FB218262B810701, entity, animName, animDict, p3, loop, stayInAnim, p6, delta, bitset); } // 0x7fb218262b8107010x878753d5B323 - // p4 and p7 are usually 1000.0f. - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline BOOL PlaySynchronizedEntityAnim(Entity entity, int syncedScene, String animation, String propName, float p4, float p5, Any p6, float p7) { return _i(0xC77720A12FE14A86, entity, syncedScene, animation, propName, p4, p5, p6, p7); } // 0xc77720a12fe14a860x012760aaB323 - // p6,p7 probably animname and animdict - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline BOOL PlaySynchronizedMapEntityAnim(float x1, float y1, float z1, float x2, Any y2, float z2, String p6, String p7, float p8, float p9, Any p10, float p11) { return _i(0xB9C54555ED30FBC4, x1, y1, z1, x2, y2, z2, p6, p7, p8, p9, p10, p11); } // 0xb9c54555ed30fbc40xeb4cba74B323 - inline BOOL StopSynchronizedMapEntityAnim(float x1, float y1, float z1, float x2, Any y2, float z2) { return _i(0x11E79CAB7183B6F5, x1, y1, z1, x2, y2, z2); } // 0x11e79cab7183b6f50x7253d5b2B323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - // - // RAGEPluginHook list: docs.ragepluginhook.net/html/62951c37-a440-478c-b389-c471230ddfc5.htm - inline BOOL StopEntityAnim(Entity entity, String animation, String animGroup, float p3) { return _i(0x28004F88151E03E0, entity, animation, animGroup, p3); } // 0x28004f88151e03e00xc4769830B323 - // p1 sync task id? - inline BOOL StopSynchronizedEntityAnim(Entity entity, float p1, BOOL p2) { return _i(0x43D3807C077261E3, entity, p1, p2); } // 0x43d3807c077261e30xe27d2fc1B323 - // if (ENTITY::HasAnimEventFired(PLAYER::PlayerPedId(), MISC::GetHashKey("CreateObject"))) - inline BOOL HasAnimEventFired(Entity entity, Hash actionHash) { return _i(0xEAF4CD9EA3E7E922, entity, actionHash); } // 0xeaf4cd9ea3e7e9220x66571ca0B323 - // In the script "player_scene_t_bbfight.c4": - // "if (ENTITY::FindAnimEventPhase(&l_16E, &l_19F[v_4/*16*/], v_9, &v_A, &v_B))" - // -- &l_16E (p0) is requested as an anim dictionary earlier in the script. - // -- &l_19F[v_4/*16*/] (p1) is used in other natives in the script as the "animation" param. - // -- v_9 (p2) is instantiated as "victim_fall"; I'm guessing that's another anim - // --v_A and v_B (p3 & p4) are both set as -1.0, but v_A is used immediately after this native for: - // "if (v_A < ENTITY::GetEntityAnimCurrentTime(...))" - // Both v_A and v_B are seemingly used to contain both Vector3's and floats, so I can't say what either really is other than that they are both output parameters. p4 looks more like a *Vector3 though - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline BOOL FindAnimEventPhase(String animDictionary, String animName, String p2, Any* p3, Any* p4) { return _i(0x07F1BE2BCCAA27A7, animDictionary, animName, p2, p3, p4); } // 0x07f1be2bccaa27a70xc41dda62B323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline Void SetEntityAnimCurrentTime(Entity entity, String animDictionary, String animName, float time) { return _i(0x4487C259F0F70977, entity, animDictionary, animName, time); } // 0x4487c259f0f709770x99d90735B323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline Void SetEntityAnimSpeed(Entity entity, String animDictionary, String animName, float speedMultiplier) { return _i(0x28D1A16553C51776, entity, animDictionary, animName, speedMultiplier); } // 0x28d1a16553c517760x3990c90aB323 - // Makes the specified entity (ped, vehicle or object) persistent. Persistent entities will not automatically be removed by the engine. - // - // p1 has no effect when either its on or off - // maybe a quick disassembly will tell us what it does - // - // p2 has no effect when either its on or off - // maybe a quick disassembly will tell us what it does - inline Void SetEntityAsMissionEntity(Entity entity, BOOL p1, BOOL p2) { return _i(0xAD738C3085FE7E11, entity, p1, p2); } // 0xad738c3085fe7e110x5d1f9e0fB323 - // Marks the specified entity (ped, vehicle or object) as no longer needed if its population type is set to the mission type. - // If the entity is ped, it will also clear their tasks immediately just like when ClearPedTasksImmediately is called. - // Entities marked as no longer needed, will be deleted as the engine sees fit. - // Use this if you just want to just let the game delete the ped: - // Void MarkPedAsAmbientPed(Ped ped) { - // auto addr = getScriptHandleBaseAddress(ped); - // - // if (!addr) { - // return; - // } - // - // //the game uses only lower 4 bits as entity population type - // BYTE origValue = *(BYTE *)(addr + 0xDA); - // *(BYTE *)(addr + 0xDA) = ((origValue & 0xF0) | ePopulationType::POPTYPE_RANDOM_AMBIENT); - // } - inline Void SetEntityAsNoLongerNeeded(Entity* entity) { return _i(0xB736A491E64A32CF, entity); } // 0xb736a491e64a32cf0xadf2267cB323 - // This is an alias of SetEntityAsNoLongerNeeded. - inline Void SetPedAsNoLongerNeeded(Ped* ped) { return _i(0x2595DD4236549CE3, ped); } // 0x2595dd4236549ce30x9a388380B323 - // This is an alias of SetEntityAsNoLongerNeeded. - inline Void SetVehicleAsNoLongerNeeded(Vehicle* vehicle) { return _i(0x629BFA74418D6239, vehicle); } // 0x629bfa74418d62390x9b0e10beB323 - // This is an alias of SetEntityAsNoLongerNeeded. - inline Void SetObjectAsNoLongerNeeded(Object* object) { return _i(0x3AE22DEB5BA5A3E6, object); } // 0x3ae22deb5ba5a3e60x3f6b949fB323 - inline Void SetEntityCanBeDamaged(Entity entity, BOOL toggle) { return _i(0x1760FFA8AB074D66, entity, toggle); } // 0x1760ffa8ab074d660x60b6e744B323 - inline BOOL GetEntityCanBeDamaged(Entity entity) { return _i(0xD95CC5D2AB15A09F, entity); } // 0xd95cc5d2ab15a09f0xe4938b5dB757 - inline Void SetEntityCanBeDamagedByRelationshipGroup(Entity entity, BOOL bCanBeDamaged, int relGroup) { return _i(0xE22D8FDE858B8119, entity, bCanBeDamaged, relGroup); } // 0xe22d8fde858b81190x34165b5dB323 - inline Void SetEntityCanOnlyBeDamagedByScriptParticipants(Entity entity, BOOL toggle) { return _i(0x352E2B5CF420BF3B, entity, toggle); } // 0x352e2b5cf420bf3bB573 - // Sets whether the entity can be targeted without being in line-of-sight. - inline Void SetEntityCanBeTargetedWithoutLos(Entity entity, BOOL toggle) { return _i(0xD3997889736FD899, entity, toggle); } // 0xd3997889736fd8990x3b13797cB323 - inline Void SetEntityCollision(Entity entity, BOOL toggle, BOOL keepPhysics) { return _i(0x1A9205C1B9EE827F, entity, toggle, keepPhysics); } // 0x1a9205c1b9ee827f0x139fd37dB323 - inline BOOL GetEntityCollisionDisabled(Entity entity) { return _i(0xCCF1E97BEFDAE480, entity); } // 0xccf1e97befdae4800xe8c0c629B323 - inline Void SetEntityCompletelyDisableCollision(Entity entity, BOOL toggle, BOOL keepPhysics) { return _i(0x9EBC85ED0FFFE51C, entity, toggle, keepPhysics); } // 0x9ebc85ed0fffe51c0xbd0d4831B323 - // p7 is always 1 in the scripts. Set to 1, an area around the destination coords for the moved entity is cleared from other entities. - // - // Often ends with 1, 0, 0, 1); in the scripts. It works. - // - // Axis - Invert Axis Flags - inline Void SetEntityCoords(Entity entity, float xPos, float yPos, float zPos, BOOL xAxis, BOOL yAxis, BOOL zAxis, BOOL clearArea) { return _i(0x06843DA7060A026B, entity, xPos, yPos, zPos, xAxis, yAxis, zAxis, clearArea); } // 0x06843da7060a026b0xdf70b41bB323 - inline Void SetEntityCoordsWithoutPlantsReset(Entity entity, float xPos, float yPos, float zPos, BOOL alive, BOOL deadFlag, BOOL ragdollFlag, BOOL clearArea) { return _i(0x621873ECE1178967, entity, xPos, yPos, zPos, alive, deadFlag, ragdollFlag, clearArea); } // 0x621873ece11789670x749b282eB323 - // Axis - Invert Axis Flags - inline Void SetEntityCoordsNoOffset(Entity entity, float xPos, float yPos, float zPos, BOOL xAxis, BOOL yAxis, BOOL zAxis) { return _i(0x239A3351AC1DA385, entity, xPos, yPos, zPos, xAxis, yAxis, zAxis); } // 0x239a3351ac1da3850x4c83de8dB323 - inline Void SetEntityDynamic(Entity entity, BOOL toggle) { return _i(0x1718DE8E3F2823CA, entity, toggle); } // 0x1718de8e3f2823ca0x236f525bB323 - // Set the heading of an entity in degrees also known as "Yaw". - inline Void SetEntityHeading(Entity entity, float heading) { return _i(0x8E2530AA8ADA980E, entity, heading); } // 0x8e2530aa8ada980e0xe0ff064dB323 - // health >= 0 - // male ped ~= 100 - 200 - // female ped ~= 0 - 100 - inline Void SetEntityHealth(Entity entity, int health, int p2) { return _i(0x6B76DC1F3AE6E6A3, entity, health, p2); } // 0x6b76dc1f3ae6e6a30xfbcd1831B323 - // Sets a ped or an object totally invincible. It doesn't take any kind of damage. Peds will not ragdoll on explosions and the tazer animation won't apply either. - // - // If you use this for a ped and you want Ragdoll to stay enabled, then do: - // *(DWORD *)(pedAddress + 0x188) |= (1 << 9); - // - // Use this if you want to get the invincibility status: - // bool IsPedInvincible(Ped ped) - // { - // auto addr = getScriptHandleBaseAddress(ped); - // - // if (addr) - // { - // DWORD flag = *(DWORD *)(addr + 0x188); - // return ((flag & (1 << 8)) != 0) || ((flag & (1 << 9)) != 0); - // } - // - // return false; - // } - inline Void SetEntityInvincible(Entity entity, BOOL toggle) { return _i(0x3882114BDE571AD4, entity, toggle); } // 0x3882114bde571ad40xc1213a21B323 - inline Void SetEntityIsTargetPriority(Entity entity, BOOL p1, float p2) { return _i(0xEA02E132F5C68722, entity, p1, p2); } // 0xea02e132f5c687220x9729ee32B323 - inline Void SetEntityLights(Entity entity, BOOL toggle) { return _i(0x7CFBA6A80BDF3874, entity, toggle); } // 0x7cfba6a80bdf38740xe8fc85afB323 - // Loads collision grid for an entity spawned outside of a player's loaded area. This allows peds to execute tasks rather than sit dormant because of a lack of a physics grid. - // Certainly not the main usage of this native but when set to true for a Vehicle, it will prevent the vehicle to explode if it is spawned far away from the player. - inline Void SetEntityLoadCollisionFlag(Entity entity, BOOL toggle, Any p2) { return _i(0x0DC7CABAB1E9B67E, entity, toggle, p2); } // 0x0dc7cabab1e9b67e0xc52f295bB323 - inline BOOL HasCollisionLoadedAroundEntity(Entity entity) { return _i(0xE9676F61BC0B3321, entity); } // 0xe9676f61bc0b33210x851687f9B323 - inline Void SetEntityMaxSpeed(Entity entity, float speed) { return _i(0x0E46A3FCBDE2A1B1, entity, speed); } // 0x0e46a3fcbde2a1b10x46affed3B323 - inline Void SetEntityOnlyDamagedByPlayer(Entity entity, BOOL toggle) { return _i(0x79F020FF9EDC0748, entity, toggle); } // 0x79f020ff9edc07480x4b707f50B323 - inline Void SetEntityOnlyDamagedByRelationshipGroup(Entity entity, BOOL p1, Any p2) { return _i(0x7022BD828FA0B082, entity, p1, p2); } // 0x7022bd828fa0b0820x202237e2B323 - // Enable / disable each type of damage. - // - // waterProof is damage related to water not drowning - // -------------- - // p7 is to to '1' in am_mp_property_ext/int: ENTITY::SetEntityProofs(uParam0->f_19, true, true, true, true, true, true, 1, true); - // - inline Void SetEntityProofs(Entity entity, BOOL bulletProof, BOOL fireProof, BOOL explosionProof, BOOL collisionProof, BOOL meleeProof, BOOL steamProof, BOOL p7, BOOL waterProof) { return _i(0xFAEE099C6F890BB8, entity, bulletProof, fireProof, explosionProof, collisionProof, meleeProof, steamProof, p7, waterProof); } // 0xfaee099c6f890bb80x7e9eab66B323 - inline BOOL GetEntityProofs(Entity entity, BOOL* bulletProof, BOOL* fireProof, BOOL* explosionProof, BOOL* collisionProof, BOOL* meleeProof, BOOL* steamProof, BOOL* p7, BOOL* drownProof) { return _i(0xBE8CD9BE829BBEBF, entity, bulletProof, fireProof, explosionProof, collisionProof, meleeProof, steamProof, p7, drownProof); } // 0xbe8cd9be829bbebfB1604 - // w is the correct parameter name! - inline Void SetEntityQuaternion(Entity entity, float x, float y, float z, float w) { return _i(0x77B21BE7AC540F07, entity, x, y, z, w); } // 0x77b21be7ac540f070x83b6046fB323 - inline Void SetEntityRecordsCollisions(Entity entity, BOOL toggle) { return _i(0x0A50A1EEDAD01E65, entity, toggle); } // 0x0a50a1eedad01e650x6b189a1aB323 - // rotationOrder refers to the order yaw pitch roll is applied - // value ranges from 0 to 5. What you use for rotationOrder when setting must be the same as rotationOrder when getting the rotation. - // Unsure what value corresponds to what rotation order, more testing will be needed for that. - // For the most part R* uses 1 or 2 as the order. - // p5 is usually set as true - // - inline Void SetEntityRotation(Entity entity, float pitch, float roll, float yaw, int rotationOrder, BOOL p5) { return _i(0x8524A8B0171D5E07, entity, pitch, roll, yaw, rotationOrder, p5); } // 0x8524a8b0171d5e070x0a345efeB323 - // p2 is always 0. - inline Void SetEntityVisible(Entity entity, BOOL toggle, BOOL p2) { return _i(0xEA1C610A04DB6BBB, entity, toggle, p2); } // 0xea1c610a04db6bbb0xd043e8e1B323 - inline Void SetEntityWaterReflectionFlag(Entity entity, BOOL toggle) { return _i(0xC34BC448DA29F5E9, entity, toggle); } // 0xc34bc448da29f5e9B573 - inline Void SetEntityMirrorReflectionFlag(Entity entity, BOOL p1) { return _i(0xE66377CDDADA4810, entity, p1); } // 0xe66377cddada4810B1734 - // Note that the third parameter(denoted as z) is "up and down" with positive numbers encouraging upwards movement. - inline Void SetEntityVelocity(Entity entity, float x, float y, float z) { return _i(0x1C99BB7B6E96D16F, entity, x, y, z); } // 0x1c99bb7b6e96d16f0xff5a1988B323 - inline Void SetEntityAngularVelocity(Entity entity, float x, float y, float z) { return _i(0x8339643499D1222E, entity, x, y, z); } // 0x8339643499d1222eB2372 - inline Void SetEntityHasGravity(Entity entity, BOOL toggle) { return _i(0x4A4722448F18EEF5, entity, toggle); } // 0x4a4722448f18eef50xe2f262bfB323 - // LOD distance can be 0 to 0xFFFF (higher values will result in 0xFFFF) as it is actually stored as a 16-bit value (aka uint16_t). - inline Void SetEntityLodDist(Entity entity, int value) { return _i(0x5927F96A78577363, entity, value); } // 0x5927f96a785773630xd7acc7adB323 - // Returns the LOD distance of an entity. - inline int GetEntityLodDist(Entity entity) { return _i(0x4159C2762B5791D6, entity); } // 0x4159c2762b5791d60x4da3d51fB323 - // skin - everything alpha except skin - // Set entity alpha level. Ranging from 0 to 255 but chnages occur after every 20 percent (after every 51). - inline Void SetEntityAlpha(Entity entity, int alphaLevel, BOOL skin) { return _i(0x44A0870B7E92D7C0, entity, alphaLevel, skin); } // 0x44a0870b7e92d7c00xae667cb0B323 - inline int GetEntityAlpha(Entity entity) { return _i(0x5A47B3B5E63E94C6, entity); } // 0x5a47b3b5e63e94c60x1560b017B323 - inline Void ResetEntityAlpha(Entity entity) { return _i(0x9B1E824FFBB7027A, entity); } // 0x9b1e824ffbb7027a0x8a30761cB323 - // Similar to ResetEntityAlpha - inline Void ResetPickupEntityGlow(Entity entity) { return _i(0x490861B88F4FD846, entity); } // 0x490861b88f4fd846B944 - inline Void SetPickupCollidesWithProjectiles(Any p0, Any p1) { return _i(0xCEA7C8E1B48FF68C, p0, p1); } // 0xcea7c8e1b48ff68cB678 - // Only called once in the scripts. - // - // Related to weapon objects. - // - inline Void SetEntitySortBias(Entity entity, float p1) { return _i(0x5C3B791D580E0BC2, entity, p1); } // 0x5c3b791d580e0bc2B323 - inline Void SetEntityAlwaysPrerender(Entity entity, BOOL toggle) { return _i(0xACAD101E1FB66689, entity, toggle); } // 0xacad101e1fb666890xd8ff798aB323 - inline Void SetEntityRenderScorched(Entity entity, BOOL toggle) { return _i(0x730F5F8D3F0F2050, entity, toggle); } // 0x730f5f8d3f0f20500xaac9317bB323 - // Example here: www.gtaforums.com/topic/830463-help-with-turning-lights-green-and-causing-peds-to-crash-into-each-other/#entry1068211340 - // - // 0 = green - // 1 = red - // 2 = yellow - // 3 = reset changes - // changing lights may not change the behavior of vehicles - inline Void SetEntityTrafficlightOverride(Entity entity, int state) { return _i(0x57C5DB656185EAC4, entity, state); } // 0x57c5db656185eac40xc47f5b91B323 - inline Void SetEntityIsInVehicle(Entity entity) { return _i(0x78E8E3A640178255, entity); } // 0x78e8e3a640178255B323 - // Only works with objects! - inline Void CreateModelSwap(float x, float y, float z, float radius, Hash originalModel, Hash newModel, BOOL p6) { return _i(0x92C47782FDA8B2A3, x, y, z, radius, originalModel, newModel, p6); } // 0x92c47782fda8b2a30x0bc12f9eB323 - inline Void RemoveModelSwap(float x, float y, float z, float radius, Hash originalModel, Hash newModel, BOOL p6) { return _i(0x033C0F9A64E229AE, x, y, z, radius, originalModel, newModel, p6); } // 0x033c0f9a64e229ae0xce0aa8bcB323 - // p5 = sets as true in scripts - // Same as the comment for CreateModelSwap unless for some reason p5 affects it this only works with objects as well. - // - // Network players do not see changes done with this. - inline Void CreateModelHide(float x, float y, float z, float radius, Hash modelHash, BOOL p5) { return _i(0x8A97BCA30A0CE478, x, y, z, radius, modelHash, p5); } // 0x8a97bca30a0ce4780x7bd5cf2fB323 - inline Void CreateModelHideExcludingScriptObjects(float x, float y, float z, float radius, Hash modelHash, BOOL p5) { return _i(0x3A52AE588830BF7F, x, y, z, radius, modelHash, p5); } // 0x3a52ae588830bf7f0x07aaf22cB323 - // This native makes entities visible that are hidden by the native CreateModelHide. - // p5 should be false, true does nothing - inline Void RemoveModelHide(float x, float y, float z, float radius, Hash modelHash, BOOL p5) { return _i(0xD9E3006FB3CBD765, x, y, z, radius, modelHash, p5); } // 0xd9e3006fb3cbd7650x993dbc10B323 - inline Void CreateForcedObject(float x, float y, float z, Any p3, Hash modelHash, BOOL p5) { return _i(0x150E808B375A385A, x, y, z, p3, modelHash, p5); } // 0x150e808b375a385a0x335190a2B323 - inline Void RemoveForcedObject(float x, float y, float z, float p3, Hash modelHash) { return _i(0x61B6775E83C0DB6F, x, y, z, p3, modelHash); } // 0x61b6775e83c0db6f0xaed73addB323 - // Calling this function disables collision between two entities. - // The importance of the order for entity1 and entity2 is unclear. - // The third parameter, `thisFrame`, decides whether the collision is to be disabled until it is turned back on, or if it's just this frame. - inline Void SetEntityNoCollisionEntity(Entity entity1, Entity entity2, BOOL thisFrameOnly) { return _i(0xA53ED5520C07654A, entity1, entity2, thisFrameOnly); } // 0xa53ed5520c07654a0x1e11bfe9B323 - inline Void SetEntityMotionBlur(Entity entity, BOOL toggle) { return _i(0x295D82A8559F9150, entity, toggle); } // 0x295d82a8559f91500xe90005b8B323 - // p1 always false. - inline Void SetCanAutoVaultOnEntity(Entity entity, BOOL toggle) { return _i(0xE12ABE5E3A389A6C, entity, toggle); } // 0xe12abe5e3a389a6c0x44767b31B323 - // p1 always false. - inline Void SetCanClimbOnEntity(Entity entity, BOOL toggle) { return _i(0xA80AE305E0A3044F, entity, toggle); } // 0xa80ae305e0a3044f0xe224a6a5B323 - // Only called within 1 script for x360. 'fm_mission_controller' and it used on an object. - // - // Ran after these 2 natives, - // set_object_targettable(uParam0, 0); - // set_entity_invincible(uParam0, 1); - inline Void SetWaitForCollisionsBeforeProbe(Entity entity, BOOL toggle) { return _i(0xDC6F8601FAF2E893, entity, toggle); } // 0xdc6f8601faf2e8930xa0466a69B323 - inline Void SetEntityNoweapondecals(Entity entity, BOOL p1) { return _i(0x2C2E3DC128F44309, entity, p1); } // 0x2c2e3dc128f44309B323 - inline Void SetEntityUseMaxDistanceForWaterReflection(Entity entity, BOOL p1) { return _i(0x1A092BB0C3808B96, entity, p1); } // 0x1a092bb0c3808b96B323 - // Gets the world rotation of the specified bone of the specified entity. - inline Vector3 GetEntityBoneRotation(Entity entity, int boneIndex) { return _i(0xCE6294A232D03786, entity, boneIndex); } // 0xce6294a232d03786B791 - // Gets the world position of the specified bone of the specified entity. - inline Vector3 GetEntityBonePostion(Entity entity, int boneIndex) { return _i(0x46F8696933A63C9B, entity, boneIndex); } // 0x46f8696933a63c9bB877 - // Gets the local rotation of the specified bone of the specified entity. - inline Vector3 GetEntityBoneObjectRotation(Entity entity, int boneIndex) { return _i(0xBD8D32550E5CEBFE, entity, boneIndex); } // 0xbd8d32550e5cebfeB1734 - inline Vector3 GetEntityBoneObjectPostion(Entity entity, int boneIndex) { return _i(0xCF1247CC86961FD6, entity, boneIndex); } // 0xcf1247cc86961fd6B2802 - inline int GetEntityBoneCount(Entity entity) { return _i(0xB328DCC3A3AA401B, entity); } // 0xb328dcc3a3aa401bB791 - inline Void EnableEntityBulletCollision(Entity entity) { return _i(0x6CE177D014502E8A, entity); } // 0x6ce177d014502e8aB877 - inline Void SetEntityCanOnlyBeDamagedByEntity(Entity entity1, Entity entity2) { return _i(0xB17BC6453F6CF5AC, entity1, entity2); } // 0xb17bc6453f6cf5acB944 - inline Void SetEntityCantCauseCollisionDamagedEntity(Entity entity1, Entity entity2) { return _i(0x68B562E124CC0AEF, entity1, entity2); } // 0x68b562e124cc0aefB1180 - // p1 is always set to 1 - inline Void SetAllowMigrateToSpectator(Entity entity, Any p1) { return _i(0x36F32DE87082343E, entity, p1); } // 0x36f32de87082343eB1011 - // Gets the handle of an entity with a specific model hash attached to another entity, such as an object attached to a ped. - // This native does not appear to have anything to do with pickups as in scripts it is used with objects. - // - // Example from fm_mission_controller_2020.c: - // - // iVar8 = ENTITY::GetEntityOfTypeAttachedToEntity(bParam0->f_9, joaat("p_cs_clipboard")); - inline Entity GetEntityOfTypeAttachedToEntity(Entity entity, Hash modelHash) { return _i(0x1F922734E259BD26, entity, modelHash); } // 0x1f922734e259bd26B1180 - inline Void SetPickUpByCargobobDisabled(Entity entity, BOOL toggle) { return _i(0xD7B80E7C3BEFC396, entity, toggle); } // 0xd7b80e7c3befc396B1180 + // Checks whether an entity exists in the game world. + inline BOOL DoesEntityExist(Entity entity) { return _i(0x7239B21A38F536BA, entity); } // 0x7239b21a38f536ba0x3ac90869B323 + inline BOOL DoesEntityBelongToThisScript(Entity entity, BOOL p1) { return _i(0xDDE6DF5AE89981D2, entity, p1); } // 0xdde6df5ae89981d20xacfeb3f9B323 + inline BOOL DoesEntityHaveDrawable(Entity entity) { return _i(0x060D6E96F8B8E48D, entity); } // 0x060d6e96f8b8e48d0xa5b33300B323 + inline BOOL DoesEntityHavePhysics(Entity entity) { return _i(0xDA95EA3317CC5064, entity); } // 0xda95ea3317cc50640x9bcd2979B323 + inline BOOL DoesEntityHaveSkeleton(Entity entity) { return _i(0x764EB96874EFFDC1, entity); } // 0x764eb96874effdc1B2699 + inline BOOL DoesEntityHaveAnimDirector(Entity entity) { return _i(0x2158E81A6AF65EA9, entity); } // 0x2158e81a6af65ea9B2699 + // P3 is always 3 as far as i cant tell + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline BOOL HasEntityAnimFinished(Entity entity, String animDict, String animName, int p3) { return _i(0x20B711662962B472, entity, animDict, animName, p3); } // 0x20b711662962b4720x1d9cab92B323 + inline BOOL HasEntityBeenDamagedByAnyObject(Entity entity) { return _i(0x95EB9964FF5C5C65, entity); } // 0x95eb9964ff5c5c650x6b74582eB323 + inline BOOL HasEntityBeenDamagedByAnyPed(Entity entity) { return _i(0x605F5A140F202491, entity); } // 0x605f5a140f2024910x53fd4a25B323 + inline BOOL HasEntityBeenDamagedByAnyVehicle(Entity entity) { return _i(0xDFD5033FDBA0A9C8, entity); } // 0xdfd5033fdba0a9c80x878c2ce0B323 + // Entity 1 = Victim + // Entity 2 = Attacker + // + // p2 seems to always be 1 + inline BOOL HasEntityBeenDamagedByEntity(Entity entity1, Entity entity2, BOOL p2) { return _i(0xC86D67D52A707CF8, entity1, entity2, p2); } // 0xc86d67d52a707cf80x07fc77e0B323 + // traceType is always 17 in the scripts. + // + // There is other codes used for traceType: + // 19 - in jewelry_prep1a + // 126 - in am_hunt_the_beast + // 256 & 287 - in fm_mission_controller + inline BOOL HasEntityClearLosToEntity(Entity entity1, Entity entity2, int traceType) { return _i(0xFCDFF7B72D23A1AC, entity1, entity2, traceType); } // 0xfcdff7b72d23a1ac0x53576fa7B323 + inline BOOL HasEntityClearLosToEntityAdjustForCover(Entity entity1, Entity entity2, int traceType) { return _i(0x394BDE2A7BBA031E, entity1, entity2, traceType); } // 0x394bde2a7bba031eB1868 + // Has the entity1 got a clear line of sight to the other entity2 from the direction entity1 is facing. + // This is one of the most CPU demanding BOOL natives in the game; avoid calling this in things like nested for-loops + inline BOOL HasEntityClearLosToEntityInFront(Entity entity1, Entity entity2) { return _i(0x0267D00AF114F17A, entity1, entity2); } // 0x0267d00af114f17a0x210d87c8B323 + // Called on tick. + // Tested with vehicles, returns true whenever the vehicle is touching any entity. + // + // Note: for vehicles, the wheels can touch the ground and it will still return false, but if the body of the vehicle touches the ground, it will return true. + inline BOOL HasEntityCollidedWithAnything(Entity entity) { return _i(0x8BAD02F0368D9E14, entity); } // 0x8bad02f0368d9e140x662a2f41B323 + inline Entity GetLastEntityHitByEntity(Entity entity) { return _i(0xA75EE4F689B85391, entity); } // 0xa75ee4f689b85391B2802 + inline Hash GetLastMaterialHitByEntity(Entity entity) { return _i(0x5C3D0A935F535C4C, entity); } // 0x5c3d0a935f535c4c0xc0e3aa47B323 + inline Vector3 GetCollisionNormalOfLastHitForEntity(Entity entity) { return _i(0xE465D4AB7CA6AE72, entity); } // 0xe465d4ab7ca6ae720xab415c07B323 + // Based on carmod_shop script decompile this takes a vehicle parameter. It is called when repair is done on initial enter. + inline Void ForceEntityAiAndAnimationUpdate(Entity entity) { return _i(0x40FDEDB72F8293B2, entity); } // 0x40fdedb72f8293b20x58d9775fB323 + // Returns a float value representing animation's current playtime with respect to its total playtime. This value increasing in a range from [0 to 1] and wrap back to 0 when it reach 1. + // + // Example: + // 0.000000 - mark the starting of animation. + // 0.500000 - mark the midpoint of the animation. + // 1.000000 - mark the end of animation. + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline float GetEntityAnimCurrentTime(Entity entity, String animDict, String animName) { return _i(0x346D81500D088F42, entity, animDict, animName); } // 0x346d81500d088f420x83943f41B323 + // Returns a float value representing animation's total playtime in milliseconds. + // + // Example: + // GetEntityAnimTotalTime(PlayerId(),"amb@world_human_yoga@female@base","base_b") + // return 20800.000000 + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline float GetEntityAnimTotalTime(Entity entity, String animDict, String animName) { return _i(0x50BD2730B191E360, entity, animDict, animName); } // 0x50bd2730b191e3600x433a9d18B323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline float GetAnimDuration(String animDict, String animName) { return _i(0xFEDDF04D62B8D790, animDict, animName); } // 0xfeddf04d62b8d7900x8b5e3e3dB323 + inline Entity GetEntityAttachedTo(Entity entity) { return _i(0x48C2BED9180FE123, entity); } // 0x48c2bed9180fe1230xfe1589f9B323 + // Gets the current coordinates for a specified entity. + // `entity` = The entity to get the coordinates from. + // `alive` = Unused by the game, potentially used by debug builds of GTA in order to assert whether or not an entity was alive. + inline Vector3 GetEntityCoords(Entity entity, BOOL alive) { return _i(0x3FEF770D40960D5A, entity, alive); } // 0x3fef770d40960d5a0x1647f1cbB323 + // Gets the entity's forward vector. + inline Vector3 GetEntityForwardVector(Entity entity) { return _i(0x0A794A5A57F8DF91, entity); } // 0x0a794a5a57f8df910x84dcecbfB323 + // Gets the X-component of the entity's forward vector. + inline float GetEntityForwardX(Entity entity) { return _i(0x8BB4EF4214E0E6D5, entity); } // 0x8bb4ef4214e0e6d50x49fae914B323 + // Gets the Y-component of the entity's forward vector. + inline float GetEntityForwardY(Entity entity) { return _i(0x866A4A5FAE349510, entity); } // 0x866a4a5fae3495100x9e2f917cB323 + // Returns the heading of the entity in degrees. Also know as the "Yaw" of an entity. + inline float GetEntityHeading(Entity entity) { return _i(0xE83D4F9BA2A38914, entity); } // 0xe83d4f9ba2a389140x972cc383B323 + // Gets the heading of the entity physics in degrees, which tends to be more accurate than just "GetEntityHeading". This can be clearly seen while, for example, ragdolling a ped/player. + // + // NOTE: The name and description of this native are based on independent research. If you find this native to be more suitable under a different name and/or described differently, please feel free to do so. + inline float GetEntityHeadingFromEulers(Entity entity) { return _i(0x846BF6291198A71E, entity); } // 0x846bf6291198a71e0x9320e642B323 + // Returns an integer value of entity's current health. + // + // Example of range for ped: + // - Player [0 to 200] + // - Ped [100 to 200] + // - Vehicle [0 to 1000] + // - Object [0 to 1000] + // + // Health is actually a float value but this native casts it to int. + // In order to get the actual value, do: + // float health = *(float *)(entityAddress + 0x280); + inline int GetEntityHealth(Entity entity) { return _i(0xEEF059FAD016D209, entity); } // 0xeef059fad016d2090x8e3222b7B323 + // Return an integer value of entity's maximum health. + // + // Example: + // - Player = 200 + // - Ped = 150 + inline int GetEntityMaxHealth(Entity entity) { return _i(0x15D757606D170C3C, entity); } // 0x15d757606d170c3c0xc7ae6aa1B323 + // For instance: ENTITY::SetEntityMaxHealth(PLAYER::PlayerPedId(), 200); // director_mode.c4: 67849 + inline Void SetEntityMaxHealth(Entity entity, int value) { return _i(0x166E7CF68597D8B5, entity, value); } // 0x166e7cf68597d8b50x96f84df8B323 + inline float GetEntityHeight(Entity entity, float X, float Y, float Z, BOOL atTop, BOOL inWorldCoords) { return _i(0x5A504562485944DD, entity, X, Y, Z, atTop, inWorldCoords); } // 0x5a504562485944dd0xee443481B323 + // Return height (z-dimension) above ground. + // Example: The pilot in a titan plane is 1.844176 above ground. + // + // How can i convert it to meters? + // Everything seems to be in meters, probably this too. + inline float GetEntityHeightAboveGround(Entity entity) { return _i(0x1DD55701034110E5, entity); } // 0x1dd55701034110e50x57f56a4dB323 + inline Void GetEntityMatrix(Entity entity, Vector3* forwardVector, Vector3* rightVector, Vector3* upVector, Vector3* position) { return _i(0xECB2FC7235A7D137, entity, forwardVector, rightVector, upVector, position); } // 0xecb2fc7235a7d1370xeb9eb001B323 + // Returns the model hash from the entity + inline Hash GetEntityModel(Entity entity) { return _i(0x9F47B058362C84B5, entity); } // 0x9f47b058362c84b50xdafcb3ecB323 + // Converts world coords (posX - Z) to coords relative to the entity + // + // Example: + // posX is given as 50 + // entity's x coord is 40 + // the returned x coord will then be 10 or -10, not sure haven't used this in a while (think it is 10 though). + inline Vector3 GetOffsetFromEntityGivenWorldCoords(Entity entity, float posX, float posY, float posZ) { return _i(0x2274BC1C4885E333, entity, posX, posY, posZ); } // 0x2274bc1c4885e3330x6477ec9eB323 + // Offset values are relative to the entity. + // + // x = left/right + // y = forward/backward + // z = up/down + inline Vector3 GetOffsetFromEntityInWorldCoords(Entity entity, float offsetX, float offsetY, float offsetZ) { return _i(0x1899F328B0E12848, entity, offsetX, offsetY, offsetZ); } // 0x1899f328b0e128480xabcf043aB323 + inline float GetEntityPitch(Entity entity) { return _i(0xD45DC2893621E1FE, entity); } // 0xd45dc2893621e1fe0xfce6ece5B323 + // w is the correct parameter name! + inline Void GetEntityQuaternion(Entity entity, float* x, float* y, float* z, float* w) { return _i(0x7B3703D2D32DFA18, entity, x, y, z, w); } // 0x7b3703d2d32dfa180x5154ec90B323 + // Displays the current ROLL axis of the entity [-180.0000/180.0000+] + // (Sideways Roll) such as a vehicle tipped on its side + inline float GetEntityRoll(Entity entity) { return _i(0x831E0242595560DF, entity); } // 0x831e0242595560df0x36610842B323 + // rotationOrder is the order yaw, pitch and roll is applied. Usually 2. Returns a vector where the Z coordinate is the yaw. + // + // rotationOrder refers to the order yaw pitch roll is applied; value ranges from 0 to 5 and is usually *2* in scripts. + // What you use for rotationOrder when getting must be the same as rotationOrder when setting the rotation. + // + // What it returns is the yaw on the z part of the vector, which makes sense considering R* considers z as vertical. Here's a picture for those of you who don't understand pitch, yaw, and roll: www.allstar.fiu.edu/aero/images/pic5-1.gif + // + // Rotation Orders: + // 0: ZYX - Rotate around the z-axis, then the y-axis and finally the x-axis. + // 1: YZX - Rotate around the y-axis, then the z-axis and finally the x-axis. + // 2: ZXY - Rotate around the z-axis, then the x-axis and finally the y-axis. + // 3: XZY - Rotate around the x-axis, then the z-axis and finally the y-axis. + // 4: YXZ - Rotate around the y-axis, then the x-axis and finally the z-axis. + // 5: XYZ - Rotate around the x-axis, then the y-axis and finally the z-axis. + inline Vector3 GetEntityRotation(Entity entity, int rotationOrder) { return _i(0xAFBD61CC738D9EB9, entity, rotationOrder); } // 0xafbd61cc738d9eb90x8ff45b04B323 + inline Vector3 GetEntityRotationVelocity(Entity entity) { return _i(0x213B91045D09B983, entity); } // 0x213b91045d09b9830x9bf8a73fB323 + // Returns the name of the script that owns/created the entity or nullptr. Second parameter is unused, can just be a nullptr. + inline String GetEntityScript(Entity entity, ScrHandle* script) { return _i(0xA6E9C38DB51D7748, entity, script); } // 0xa6e9c38db51d77480xb7f70784B323 + // result is in meters per second + // + // ------------------------------------------------------------ + // So would the conversion to mph and km/h, be along the lines of this. + // + // float speed = GetEntitySpeed(veh); + // float kmh = (speed * 3.6); + // float mph = (speed * 2.236936); + // ------------------------------------------------------------ + inline float GetEntitySpeed(Entity entity) { return _i(0xD5037BA82E12416F, entity); } // 0xd5037ba82e12416f0x9e1e4798B323 + // Relative can be used for getting speed relative to the frame of the vehicle, to determine for example, if you are going in reverse (-y speed) or not (+y speed). + inline Vector3 GetEntitySpeedVector(Entity entity, BOOL relative) { return _i(0x9A8D700A51CB7B0D, entity, relative); } // 0x9a8d700a51cb7b0d0x3ed2b997B323 + inline float GetEntityUprightValue(Entity entity) { return _i(0x95EED5A694951F9F, entity); } // 0x95eed5a694951f9f0xf4268190B323 + inline Vector3 GetEntityVelocity(Entity entity) { return _i(0x4805D2B1D8CF94A9, entity); } // 0x4805d2b1d8cf94a90xc14c9b6bB323 + // Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). + inline Object GetObjectIndexFromEntityIndex(Entity entity) { return _i(0xD7E3B9735C0F89D6, entity); } // 0xd7e3b9735c0f89d60xbc5a9c58B323 + // Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). + inline Ped GetPedIndexFromEntityIndex(Entity entity) { return _i(0x04A2A40C73395041, entity); } // 0x04a2a40c733950410xc46f74acB323 + // Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). + inline Vehicle GetVehicleIndexFromEntityIndex(Entity entity) { return _i(0x4B53F92932ADFAC0, entity); } // 0x4b53f92932adfac00xc69cf43dB323 + // Returns the coordinates of an entity-bone. + inline Vector3 GetWorldPositionOfEntityBone(Entity entity, int boneIndex) { return _i(0x44A8FCB8ED227738, entity, boneIndex); } // 0x44a8fcb8ed2277380x7c6339dfB323 + inline Player GetNearestPlayerToEntity(Entity entity) { return _i(0x7196842CB375CDB3, entity); } // 0x7196842cb375cdb30xce17fdecB323 + inline Player GetNearestPlayerToEntityOnTeam(Entity entity, int team) { return _i(0x4DC9A62F844D9337, entity, team); } // 0x4dc9a62f844d93370xb1808f56B323 + inline int GetNearestParticipantToEntity(Entity entity) { return _i(0xFFBD7052D65BE0FF, entity); } // 0xffbd7052d65be0ffB2944 + // Returns: + // 0 = no entity + // 1 = ped + // 2 = vehicle + // 3 = object + inline int GetEntityType(Entity entity) { return _i(0x8ACD366038D14505, entity); } // 0x8acd366038d145050x0b1bd08dB323 + // A population type, from the following enum: https://alloc8or.re/gta5/doc/enums/ePopulationType.txt + inline int GetEntityPopulationType(Entity entity) { return _i(0xF6F5161F4534EDFF, entity); } // 0xf6f5161f4534edff0xfc30ddffB323 + inline BOOL IsAnEntity(ScrHandle handle) { return _i(0x731EC8A916BD11A1, handle); } // 0x731ec8a916bd11a10xd4b9715aB323 + inline BOOL IsEntityAPed(Entity entity) { return _i(0x524AC5ECEA15343E, entity); } // 0x524ac5ecea15343e0x55d33eabB323 + inline BOOL IsEntityAMissionEntity(Entity entity) { return _i(0x0A7B270912999B3C, entity); } // 0x0a7b270912999b3c0x2632e124B323 + inline BOOL IsEntityAVehicle(Entity entity) { return _i(0x6AC7003FA6E5575E, entity); } // 0x6ac7003fa6e5575e0xbe800b01B323 + inline BOOL IsEntityAnObject(Entity entity) { return _i(0x8D68C8FD0FACA94E, entity); } // 0x8d68c8fd0faca94e0x3f52e561B323 + // Checks if entity is within x/y/zSize distance of x/y/z. + // + // Last three are unknown ints, almost always p7 = 0, p8 = 1, p9 = 0 + inline BOOL IsEntityAtCoord(Entity entity, float xPos, float yPos, float zPos, float xSize, float ySize, float zSize, BOOL p7, BOOL p8, int p9) { return _i(0x20B60995556D004F, entity, xPos, yPos, zPos, xSize, ySize, zSize, p7, p8, p9); } // 0x20b60995556d004f0xd749b606B323 + // Checks if entity1 is within the box defined by x/y/zSize of entity2. + // + // Last three parameters are almost alwasy p5 = 0, p6 = 1, p7 = 0 + inline BOOL IsEntityAtEntity(Entity entity1, Entity entity2, float xSize, float ySize, float zSize, BOOL p5, BOOL p6, int p7) { return _i(0x751B70C3D034E187, entity1, entity2, xSize, ySize, zSize, p5, p6, p7); } // 0x751b70c3d034e1870xdabdcb52B323 + // Whether the entity is attached to any other entity. + inline BOOL IsEntityAttached(Entity entity) { return _i(0xB346476EF1A64897, entity); } // 0xb346476ef1a648970xec1479d5B323 + inline BOOL IsEntityAttachedToAnyObject(Entity entity) { return _i(0xCF511840CEEDE0CC, entity); } // 0xcf511840ceede0cc0x0b5de340B323 + inline BOOL IsEntityAttachedToAnyPed(Entity entity) { return _i(0xB1632E9A5F988D11, entity); } // 0xb1632e9a5f988d110x9d7a609cB323 + inline BOOL IsEntityAttachedToAnyVehicle(Entity entity) { return _i(0x26AA915AD89BFB4B, entity); } // 0x26aa915ad89bfb4b0xde5c995eB323 + inline BOOL IsEntityAttachedToEntity(Entity from, Entity to) { return _i(0xEFBE71898A993728, from, to); } // 0xefbe71898a9937280xb0abfea8B323 + inline BOOL IsEntityDead(Entity entity, BOOL p1) { return _i(0x5F9532F3B5CC2551, entity, p1); } // 0x5f9532f3b5cc25510xb6f7cbacB323 + inline BOOL IsEntityInAir(Entity entity) { return _i(0x886E37EC497200B6, entity); } // 0x886e37ec497200b60xa4157987B323 + // `p8` is a debug flag invoking functions in the same path as ``DrawMarker`` + // `p10` is some entity flag check, also used in `IsEntityAtEntity`, `IsEntityInArea`, and `IsEntityAtCoord`. + // See IsPointInAngledArea for the definition of an angled area. + inline BOOL IsEntityInAngledArea(Entity entity, float x1, float y1, float z1, float x2, float y2, float z2, float width, BOOL debug, BOOL includeZ, Any p10) { return _i(0x51210CED3DA1C78A, entity, x1, y1, z1, x2, y2, z2, width, debug, includeZ, p10); } // 0x51210ced3da1c78a0x883622faB323 + inline BOOL IsEntityInArea(Entity entity, float x1, float y1, float z1, float x2, float y2, float z2, BOOL p7, BOOL p8, Any p9) { return _i(0x54736AA40E271165, entity, x1, y1, z1, x2, y2, z2, p7, p8, p9); } // 0x54736aa40e2711650x8c2dfa9dB323 + // Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json + inline BOOL IsEntityInZone(Entity entity, String zone) { return _i(0xB6463CF6AF527071, entity, zone); } // 0xb6463cf6af5270710x45c82b21B323 + inline BOOL IsEntityInWater(Entity entity) { return _i(0xCFB0A0D8EDD145A3, entity); } // 0xcfb0a0d8edd145a30x4c3c2508B323 + // Get how much of the entity is submerged. 1.0f is whole entity. + inline float GetEntitySubmergedLevel(Entity entity) { return _i(0xE81AFC1BC4CC41CE, entity); } // 0xe81afc1bc4cc41ce0x0170f68cB323 + inline Void SetEntityRequiresMoreExpensiveRiverCheck(Entity entity, BOOL toggle) { return _i(0x694E00132F2823ED, entity, toggle); } // 0x694e00132f2823ed0x40c84a74B323 + // Returns true if the entity is in between the minimum and maximum values for the 2d screen coords. + // This means that it will return true even if the entity is behind a wall for example, as long as you're looking at their location. + // Chipping + inline BOOL IsEntityOnScreen(Entity entity) { return _i(0xE659E47AF827484B, entity); } // 0xe659e47af827484b0xc1fec5edB323 + // See also PED::IsScriptedScenarioPedUsingConditionalAnim 0x6EC47A344923E1ED 0x3C30B447 + // + // Taken from ENTITY::IsEntityPlayingAnim(PLAYER::PlayerPedId(), "creatures@shark@move", "attack_player", 3) + // + // p4 is always 3 in the scripts. + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline BOOL IsEntityPlayingAnim(Entity entity, String animDict, String animName, int taskFlag) { return _i(0x1F0B79228E461EC9, entity, animDict, animName, taskFlag); } // 0x1f0b79228e461ec90x0d130d34B323 + // a static ped will not react to natives like "ApplyForceToEntity" or "SetEntityVelocity" and oftentimes will not react to task-natives like "TASK::TaskCombatPed". The only way I know of to make one of these peds react is to ragdoll them (or sometimes to use ClearPedTasksImmediately(). Static peds include almost all far-away peds, beach-combers, peds in certain scenarios, peds crossing a crosswalk, peds walking to get back into their cars, and others. If anyone knows how to make a ped non-static without ragdolling them, please edit this with the solution. + // + // how can I make an entity static??? + inline BOOL IsEntityStatic(Entity entity) { return _i(0x1218E6886D3D8327, entity); } // 0x1218e6886d3d83270x928e12e9B323 + inline BOOL IsEntityTouchingEntity(Entity entity, Entity targetEntity) { return _i(0x17FFC1B2BA35A494, entity, targetEntity); } // 0x17ffc1b2ba35a4940x6b931477B323 + inline BOOL IsEntityTouchingModel(Entity entity, Hash modelHash) { return _i(0x0F42323798A58C8C, entity, modelHash); } // 0x0f42323798a58c8c0x307e7611B323 + inline BOOL IsEntityUpright(Entity entity, float angle) { return _i(0x5333F526F6AB19AA, entity, angle); } // 0x5333f526f6ab19aa0x3bcdf4e1B323 + inline BOOL IsEntityUpsidedown(Entity entity) { return _i(0x1DBD58820FA61D71, entity); } // 0x1dbd58820fa61d710x5acaa48fB323 + inline BOOL IsEntityVisible(Entity entity) { return _i(0x47D6F43D77935C75, entity); } // 0x47d6f43d77935c750x120b4ed5B323 + inline BOOL IsEntityVisibleToScript(Entity entity) { return _i(0xD796CB5BA8F20E32, entity); } // 0xd796cb5ba8f20e320x5d240e9dB323 + inline BOOL IsEntityOccluded(Entity entity) { return _i(0xE31C2C72B8692B64, entity); } // 0xe31c2c72b8692b640x46bc5b40B323 + inline BOOL WouldEntityBeOccluded(Hash entityModelHash, float x, float y, float z, BOOL p4) { return _i(0xEE5D2A122E09EC42, entityModelHash, x, y, z, p4); } // 0xee5d2a122e09ec420xea127cbcB323 + inline BOOL IsEntityWaitingForWorldCollision(Entity entity) { return _i(0xD05BFF0C0A12C68F, entity); } // 0xd05bff0c0a12c68f0x00ab7a4aB323 + // Applies a force to the specified entity. + // + // **List of force types (p1)**: + // public enum ForceType + // { + // MinForce = 0, + // MaxForceRot = 1, + // MinForce2 = 2, + // MaxForceRot2 = 3, + // ForceNoRot = 4, + // ForceRotPlusForce = 5 + // } + // Research/documentation on the gtaforums can be found here https://gtaforums.com/topic/885669-precisely-define-object-physics/) and here https://gtaforums.com/topic/887362-apply-forces-and-momentums-to-entityobject/. + // + // p6/relative - makes the xyz force not relative to world coords, but to something else + // p7/highForce - setting false will make the force really low + inline Void ApplyForceToEntityCenterOfMass(Entity entity, int forceType, float x, float y, float z, BOOL p5, BOOL isDirectionRel, BOOL isForceRel, BOOL p8) { return _i(0x18FF00FC7EFF559E, entity, forceType, x, y, z, p5, isDirectionRel, isForceRel, p8); } // 0x18ff00fc7eff559e0x28924e98B323 + // Documented here: + // gtaforums.com/topic/885669-precisely-define-object-physics/ + // gtaforums.com/topic/887362-apply-forces-and-momentums-to-entityobject/ + // + // forceFlags: + // First bit (lowest): Strong force flag, factor 100 + // Second bit: Unkown flag + // Third bit: Momentum flag=1 (vector (x,y,z) is a momentum, more research needed) + // If higher bits are unequal 0 the function doesn't applay any forces at all. + // (As integer possible values are 0-7) + // + // 0: weak force + // 1: strong force + // 2: same as 0 (2nd bit?) + // 3: same as 1 + // 4: weak momentum + // 5: strong momentum + // 6: same as 4 + // 7: same as 5 + // + // isLocal: vector defined in local (body-fixed) coordinate frame + // isMassRel: if true the force gets multiplied with the objects mass (this is why it was known as highForce) and different objects will have the same acceleration. + // + // p8 !!! Whenever I set this !=0, my script stopped. + inline Void ApplyForceToEntity(Entity entity, int forceFlags, float x, float y, float z, float offX, float offY, float offZ, int boneIndex, BOOL isDirectionRel, BOOL ignoreUpVec, BOOL isForceRel, BOOL p12, BOOL p13) { return _i(0xC5F68BE9613E2D18, entity, forceFlags, x, y, z, offX, offY, offZ, boneIndex, isDirectionRel, ignoreUpVec, isForceRel, p12, p13); } // 0xc5f68be9613e2d180xc1c0855aB323 + // Attaches entity1 to bone (boneIndex) of entity2. + // + // boneIndex - this is different to boneID, use GetPedBoneIndex to get the index from the ID. use the index for attaching to specific bones. entity1 will be attached to entity2's centre if bone index given doesn't correspond to bone indexes for that entity type. + // + // useSoftPinning - if set to false attached entity will not detach when fixed + // collision - controls collision between the two entities (FALSE disables collision). + // isPed - pitch doesnt work when false and roll will only work on negative numbers (only peds) + // vertexIndex - position of vertex + // fixedRot - if false it ignores entity vector + // + inline Void AttachEntityToEntity(Entity entity1, Entity entity2, int boneIndex, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, BOOL p9, BOOL useSoftPinning, BOOL collision, BOOL isPed, int vertexIndex, BOOL fixedRot, Any p15) { return _i(0x6B9BBD38AB0796DF, entity1, entity2, boneIndex, xPos, yPos, zPos, xRot, yRot, zRot, p9, useSoftPinning, collision, isPed, vertexIndex, fixedRot, p15); } // 0x6b9bbd38ab0796df0xec024237B323 + inline Void AttachEntityBoneToEntityBone(Entity entity1, Entity entity2, int boneIndex1, int boneIndex2, BOOL p4, BOOL p5) { return _i(0x5C48B75732C8456C, entity1, entity2, boneIndex1, boneIndex2, p4, p5); } // 0x5c48b75732c8456cB791 + inline Void AttachEntityBoneToEntityBoneYForward(Entity entity1, Entity entity2, int boneIndex1, int boneIndex2, BOOL p4, BOOL p5) { return _i(0xFD1695C5D3B05439, entity1, entity2, boneIndex1, boneIndex2, p4, p5); } // 0xfd1695c5d3b05439B791 + // breakForce is the amount of force required to break the bond. + // p14 - is always 1 in scripts + // p15 - is 1 or 0 in scripts - unknoun what it does + // p16 - controls collision between the two entities (FALSE disables collision). + // p17 - do not teleport entity to be attached to the position of the bone Index of the target entity (if 1, entity will not be teleported to target bone) + // p18 - is always 2 in scripts. + // + // + inline Void AttachEntityToEntityPhysically(Entity entity1, Entity entity2, int boneIndex1, int boneIndex2, float xPos1, float yPos1, float zPos1, float xPos2, float yPos2, float zPos2, float xRot, float yRot, float zRot, float breakForce, BOOL fixedRot, BOOL p15, BOOL collision, BOOL p17, int p18) { return _i(0xC3675780C92F90F9, entity1, entity2, boneIndex1, boneIndex2, xPos1, yPos1, zPos1, xPos2, yPos2, zPos2, xRot, yRot, zRot, breakForce, fixedRot, p15, collision, p17, p18); } // 0xc3675780c92f90f90x0547417fB323 + inline Void AttachEntityToEntityPhysicallyOverrideInverseMass(Entity firstEntityIndex, Entity secondEntityIndex, int firstEntityBoneIndex, int secondEntityBoneIndex, float secondEntityOffsetX, float secondEntityOffsetY, float secondEntityOffsetZ, float firstEntityOffsetX, float firstEntityOffsetY, float firstEntityOffsetZ, float vecRotationX, float vecRotationY, float vecRotationZ, float physicalStrength, BOOL constrainRotation, BOOL doInitialWarp, BOOL collideWithEntity, BOOL addInitialSeperation, int rotOrder, float invMassScaleA, float invMassScaleB) { return _i(0x168A09D1B25B0BA4, firstEntityIndex, secondEntityIndex, firstEntityBoneIndex, secondEntityBoneIndex, secondEntityOffsetX, secondEntityOffsetY, secondEntityOffsetZ, firstEntityOffsetX, firstEntityOffsetY, firstEntityOffsetZ, vecRotationX, vecRotationY, vecRotationZ, physicalStrength, constrainRotation, doInitialWarp, collideWithEntity, addInitialSeperation, rotOrder, invMassScaleA, invMassScaleB); } // 0x168a09d1b25b0ba4B2944 + // Called to update entity attachments. + inline Void ProcessEntityAttachments(Entity entity) { return _i(0xF4080490ADC51C6F, entity); } // 0xf4080490adc51c6f0x6909ba59B323 + // Returns the index of the bone. If the bone was not found, -1 will be returned. + // + // list: + // https://pastebin.com/D7JMnX1g + // + // BoneNames: + // chassis, + // windscreen, + // seat_pside_r, + // seat_dside_r, + // bodyshell, + // suspension_lm, + // suspension_lr, + // platelight, + // attach_female, + // attach_male, + // bonnet, + // boot, + // chassis_dummy, //Center of the dummy + // chassis_Control, //Not found yet + // door_dside_f, //Door left, front + // door_dside_r, //Door left, back + // door_pside_f, //Door right, front + // door_pside_r, //Door right, back + // Gun_GripR, + // windscreen_f, + // platelight, //Position where the light above the numberplate is located + // VFX_Emitter, + // window_lf, //Window left, front + // window_lr, //Window left, back + // window_rf, //Window right, front + // window_rr, //Window right, back + // engine, //Position of the engine + // gun_ammo, + // ROPE_ATTATCH, //Not misspelled. In script "finale_heist2b.c4". + // wheel_lf, //Wheel left, front + // wheel_lr, //Wheel left, back + // wheel_rf, //Wheel right, front + // wheel_rr, //Wheel right, back + // exhaust, //Exhaust. shows only the position of the stock-exhaust + // overheat, //A position on the engine(not exactly sure, how to name it) + // misc_e, //Not a car-bone. + // seat_dside_f, //Driver-seat + // seat_pside_f, //Seat next to driver + // Gun_Nuzzle, + // seat_r + // + // I doubt that the function is case-sensitive, since I found a "Chassis" and a "chassis". - Just tested: Definitely not case-sensitive. + // + // + inline int GetEntityBoneIndexByName(Entity entity, String boneName) { return _i(0xFB71170B7E76ACBA, entity, boneName); } // 0xfb71170b7e76acba0xe4ecac22B323 + inline Void ClearEntityLastDamageEntity(Entity entity) { return _i(0xA72CD9CA74A5ECBA, entity); } // 0xa72cd9ca74a5ecba0x2b83f43bB323 + // Deletes the specified entity, then sets the handle pointed to by the pointer to NULL. + inline Void DeleteEntity(Entity* entity) { return _i(0xAE3CBE5BF394C9C9, entity); } // 0xae3cbe5bf394c9c90xfaa3d236B323 + // If `collision` is set to true, both entities won't collide with the other until the distance between them is above 4 meters. + // Set `dynamic` to true to keep velocity after dettaching + inline Void DetachEntity(Entity entity, BOOL dynamic, BOOL collision) { return _i(0x961AC54BF0613F5D, entity, dynamic, collision); } // 0x961ac54bf0613f5d0xc8efcb41B323 + // Freezes or unfreezes an entity preventing its coordinates to change by the player if set to `true`. You can still change the entity position using SetEntityCoords. + inline Void FreezeEntityPosition(Entity entity, BOOL toggle) { return _i(0x428CA6DBD1094446, entity, toggle); } // 0x428ca6dbd10944460x65c16d57B323 + // True means it can be deleted by the engine when switching lobbies/missions/etc, false means the script is expected to clean it up. + // + // "Allow Freeze If No Collision" + inline Void SetEntityShouldFreezeWaitingOnCollision(Entity entity, BOOL toggle) { return _i(0x3910051CCECDB00C, entity, toggle); } // 0x3910051ccecdb00c0xd3850671B323 + // delta and bitset are guessed fields. They are based on the fact that most of the calls have 0 or nil field types passed in. + // + // The only time bitset has a value is 0x4000 and the only time delta has a value is during stealth with usually <1.0f values. + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline BOOL PlayEntityAnim(Entity entity, String animName, String animDict, float p3, BOOL loop, BOOL stayInAnim, BOOL p6, float delta, Any bitset) { return _i(0x7FB218262B810701, entity, animName, animDict, p3, loop, stayInAnim, p6, delta, bitset); } // 0x7fb218262b8107010x878753d5B323 + // p4 and p7 are usually 1000.0f. + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline BOOL PlaySynchronizedEntityAnim(Entity entity, int syncedScene, String animation, String propName, float p4, float p5, Any p6, float p7) { return _i(0xC77720A12FE14A86, entity, syncedScene, animation, propName, p4, p5, p6, p7); } // 0xc77720a12fe14a860x012760aaB323 + // p6,p7 probably animname and animdict + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline BOOL PlaySynchronizedMapEntityAnim(float x1, float y1, float z1, float x2, Any y2, float z2, String p6, String p7, float p8, float p9, Any p10, float p11) { return _i(0xB9C54555ED30FBC4, x1, y1, z1, x2, y2, z2, p6, p7, p8, p9, p10, p11); } // 0xb9c54555ed30fbc40xeb4cba74B323 + inline BOOL StopSynchronizedMapEntityAnim(float x1, float y1, float z1, float x2, Any y2, float z2) { return _i(0x11E79CAB7183B6F5, x1, y1, z1, x2, y2, z2); } // 0x11e79cab7183b6f50x7253d5b2B323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + // + // RAGEPluginHook list: docs.ragepluginhook.net/html/62951c37-a440-478c-b389-c471230ddfc5.htm + inline BOOL StopEntityAnim(Entity entity, String animation, String animGroup, float p3) { return _i(0x28004F88151E03E0, entity, animation, animGroup, p3); } // 0x28004f88151e03e00xc4769830B323 + // p1 sync task id? + inline BOOL StopSynchronizedEntityAnim(Entity entity, float p1, BOOL p2) { return _i(0x43D3807C077261E3, entity, p1, p2); } // 0x43d3807c077261e30xe27d2fc1B323 + // if (ENTITY::HasAnimEventFired(PLAYER::PlayerPedId(), MISC::GetHashKey("CreateObject"))) + inline BOOL HasAnimEventFired(Entity entity, Hash actionHash) { return _i(0xEAF4CD9EA3E7E922, entity, actionHash); } // 0xeaf4cd9ea3e7e9220x66571ca0B323 + // In the script "player_scene_t_bbfight.c4": + // "if (ENTITY::FindAnimEventPhase(&l_16E, &l_19F[v_4/*16*/], v_9, &v_A, &v_B))" + // -- &l_16E (p0) is requested as an anim dictionary earlier in the script. + // -- &l_19F[v_4/*16*/] (p1) is used in other natives in the script as the "animation" param. + // -- v_9 (p2) is instantiated as "victim_fall"; I'm guessing that's another anim + // --v_A and v_B (p3 & p4) are both set as -1.0, but v_A is used immediately after this native for: + // "if (v_A < ENTITY::GetEntityAnimCurrentTime(...))" + // Both v_A and v_B are seemingly used to contain both Vector3's and floats, so I can't say what either really is other than that they are both output parameters. p4 looks more like a *Vector3 though + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline BOOL FindAnimEventPhase(String animDictionary, String animName, String p2, Any* p3, Any* p4) { return _i(0x07F1BE2BCCAA27A7, animDictionary, animName, p2, p3, p4); } // 0x07f1be2bccaa27a70xc41dda62B323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline Void SetEntityAnimCurrentTime(Entity entity, String animDictionary, String animName, float time) { return _i(0x4487C259F0F70977, entity, animDictionary, animName, time); } // 0x4487c259f0f709770x99d90735B323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline Void SetEntityAnimSpeed(Entity entity, String animDictionary, String animName, float speedMultiplier) { return _i(0x28D1A16553C51776, entity, animDictionary, animName, speedMultiplier); } // 0x28d1a16553c517760x3990c90aB323 + // Makes the specified entity (ped, vehicle or object) persistent. Persistent entities will not automatically be removed by the engine. + // + // p1 has no effect when either its on or off + // maybe a quick disassembly will tell us what it does + // + // p2 has no effect when either its on or off + // maybe a quick disassembly will tell us what it does + inline Void SetEntityAsMissionEntity(Entity entity, BOOL p1, BOOL p2) { return _i(0xAD738C3085FE7E11, entity, p1, p2); } // 0xad738c3085fe7e110x5d1f9e0fB323 + // Marks the specified entity (ped, vehicle or object) as no longer needed if its population type is set to the mission type. + // If the entity is ped, it will also clear their tasks immediately just like when ClearPedTasksImmediately is called. + // Entities marked as no longer needed, will be deleted as the engine sees fit. + // Use this if you just want to just let the game delete the ped: + // Void MarkPedAsAmbientPed(Ped ped) { + // auto addr = getScriptHandleBaseAddress(ped); + // + // if (!addr) { + // return; + // } + // + // //the game uses only lower 4 bits as entity population type + // BYTE origValue = *(BYTE *)(addr + 0xDA); + // *(BYTE *)(addr + 0xDA) = ((origValue & 0xF0) | ePopulationType::POPTYPE_RANDOM_AMBIENT); + // } + inline Void SetEntityAsNoLongerNeeded(Entity* entity) { return _i(0xB736A491E64A32CF, entity); } // 0xb736a491e64a32cf0xadf2267cB323 + // This is an alias of SetEntityAsNoLongerNeeded. + inline Void SetPedAsNoLongerNeeded(Ped* ped) { return _i(0x2595DD4236549CE3, ped); } // 0x2595dd4236549ce30x9a388380B323 + // This is an alias of SetEntityAsNoLongerNeeded. + inline Void SetVehicleAsNoLongerNeeded(Vehicle* vehicle) { return _i(0x629BFA74418D6239, vehicle); } // 0x629bfa74418d62390x9b0e10beB323 + // This is an alias of SetEntityAsNoLongerNeeded. + inline Void SetObjectAsNoLongerNeeded(Object* object) { return _i(0x3AE22DEB5BA5A3E6, object); } // 0x3ae22deb5ba5a3e60x3f6b949fB323 + inline Void SetEntityCanBeDamaged(Entity entity, BOOL toggle) { return _i(0x1760FFA8AB074D66, entity, toggle); } // 0x1760ffa8ab074d660x60b6e744B323 + inline BOOL GetEntityCanBeDamaged(Entity entity) { return _i(0xD95CC5D2AB15A09F, entity); } // 0xd95cc5d2ab15a09f0xe4938b5dB757 + inline Void SetEntityCanBeDamagedByRelationshipGroup(Entity entity, BOOL bCanBeDamaged, int relGroup) { return _i(0xE22D8FDE858B8119, entity, bCanBeDamaged, relGroup); } // 0xe22d8fde858b81190x34165b5dB323 + inline Void SetEntityCanOnlyBeDamagedByScriptParticipants(Entity entity, BOOL toggle) { return _i(0x352E2B5CF420BF3B, entity, toggle); } // 0x352e2b5cf420bf3bB573 + // Sets whether the entity can be targeted without being in line-of-sight. + inline Void SetEntityCanBeTargetedWithoutLos(Entity entity, BOOL toggle) { return _i(0xD3997889736FD899, entity, toggle); } // 0xd3997889736fd8990x3b13797cB323 + inline Void SetEntityCollision(Entity entity, BOOL toggle, BOOL keepPhysics) { return _i(0x1A9205C1B9EE827F, entity, toggle, keepPhysics); } // 0x1a9205c1b9ee827f0x139fd37dB323 + inline BOOL GetEntityCollisionDisabled(Entity entity) { return _i(0xCCF1E97BEFDAE480, entity); } // 0xccf1e97befdae4800xe8c0c629B323 + inline Void SetEntityCompletelyDisableCollision(Entity entity, BOOL toggle, BOOL keepPhysics) { return _i(0x9EBC85ED0FFFE51C, entity, toggle, keepPhysics); } // 0x9ebc85ed0fffe51c0xbd0d4831B323 + // p7 is always 1 in the scripts. Set to 1, an area around the destination coords for the moved entity is cleared from other entities. + // + // Often ends with 1, 0, 0, 1); in the scripts. It works. + // + // Axis - Invert Axis Flags + inline Void SetEntityCoords(Entity entity, float xPos, float yPos, float zPos, BOOL xAxis, BOOL yAxis, BOOL zAxis, BOOL clearArea) { return _i(0x06843DA7060A026B, entity, xPos, yPos, zPos, xAxis, yAxis, zAxis, clearArea); } // 0x06843da7060a026b0xdf70b41bB323 + inline Void SetEntityCoordsWithoutPlantsReset(Entity entity, float xPos, float yPos, float zPos, BOOL alive, BOOL deadFlag, BOOL ragdollFlag, BOOL clearArea) { return _i(0x621873ECE1178967, entity, xPos, yPos, zPos, alive, deadFlag, ragdollFlag, clearArea); } // 0x621873ece11789670x749b282eB323 + // Axis - Invert Axis Flags + inline Void SetEntityCoordsNoOffset(Entity entity, float xPos, float yPos, float zPos, BOOL xAxis, BOOL yAxis, BOOL zAxis) { return _i(0x239A3351AC1DA385, entity, xPos, yPos, zPos, xAxis, yAxis, zAxis); } // 0x239a3351ac1da3850x4c83de8dB323 + inline Void SetEntityDynamic(Entity entity, BOOL toggle) { return _i(0x1718DE8E3F2823CA, entity, toggle); } // 0x1718de8e3f2823ca0x236f525bB323 + // Set the heading of an entity in degrees also known as "Yaw". + inline Void SetEntityHeading(Entity entity, float heading) { return _i(0x8E2530AA8ADA980E, entity, heading); } // 0x8e2530aa8ada980e0xe0ff064dB323 + // health >= 0 + // male ped ~= 100 - 200 + // female ped ~= 0 - 100 + inline Void SetEntityHealth(Entity entity, int health, Entity instigator, Hash weaponType) { return _i(0x6B76DC1F3AE6E6A3, entity, health, instigator, weaponType); } // 0x6b76dc1f3ae6e6a30xfbcd1831B323 + // Sets a ped or an object totally invincible. It doesn't take any kind of damage. Peds will not ragdoll on explosions and the tazer animation won't apply either. + // + // If you use this for a ped and you want Ragdoll to stay enabled, then do: + // *(DWORD *)(pedAddress + 0x188) |= (1 << 9); + // + // Use this if you want to get the invincibility status: + // BOOL IsPedInvincible(Ped ped) + // { + // auto addr = getScriptHandleBaseAddress(ped); + // + // if (addr) + // { + // DWORD flag = *(DWORD *)(addr + 0x188); + // return ((flag & (1 << 8)) != 0) || ((flag & (1 << 9)) != 0); + // } + // + // return false; + // } + inline Void SetEntityInvincible(Entity entity, BOOL toggle) { return _i(0x3882114BDE571AD4, entity, toggle); } // 0x3882114bde571ad40xc1213a21B323 + inline Void SetEntityIsTargetPriority(Entity entity, BOOL p1, float p2) { return _i(0xEA02E132F5C68722, entity, p1, p2); } // 0xea02e132f5c687220x9729ee32B323 + inline Void SetEntityLights(Entity entity, BOOL toggle) { return _i(0x7CFBA6A80BDF3874, entity, toggle); } // 0x7cfba6a80bdf38740xe8fc85afB323 + // Loads collision grid for an entity spawned outside of a player's loaded area. This allows peds to execute tasks rather than sit dormant because of a lack of a physics grid. + // Certainly not the main usage of this native but when set to true for a Vehicle, it will prevent the vehicle to explode if it is spawned far away from the player. + inline Void SetEntityLoadCollisionFlag(Entity entity, BOOL toggle, Any p2) { return _i(0x0DC7CABAB1E9B67E, entity, toggle, p2); } // 0x0dc7cabab1e9b67e0xc52f295bB323 + inline BOOL HasCollisionLoadedAroundEntity(Entity entity) { return _i(0xE9676F61BC0B3321, entity); } // 0xe9676f61bc0b33210x851687f9B323 + inline Void SetEntityMaxSpeed(Entity entity, float speed) { return _i(0x0E46A3FCBDE2A1B1, entity, speed); } // 0x0e46a3fcbde2a1b10x46affed3B323 + inline Void SetEntityOnlyDamagedByPlayer(Entity entity, BOOL toggle) { return _i(0x79F020FF9EDC0748, entity, toggle); } // 0x79f020ff9edc07480x4b707f50B323 + inline Void SetEntityOnlyDamagedByRelationshipGroup(Entity entity, BOOL p1, Any p2) { return _i(0x7022BD828FA0B082, entity, p1, p2); } // 0x7022bd828fa0b0820x202237e2B323 + // Enable / disable each type of damage. + // + // waterProof is damage related to water not drowning + // -------------- + // p7 is to to '1' in am_mp_property_ext/int: ENTITY::SetEntityProofs(uParam0->f_19, true, true, true, true, true, true, 1, true); + // + inline Void SetEntityProofs(Entity entity, BOOL bulletProof, BOOL fireProof, BOOL explosionProof, BOOL collisionProof, BOOL meleeProof, BOOL steamProof, BOOL p7, BOOL waterProof) { return _i(0xFAEE099C6F890BB8, entity, bulletProof, fireProof, explosionProof, collisionProof, meleeProof, steamProof, p7, waterProof); } // 0xfaee099c6f890bb80x7e9eab66B323 + inline BOOL GetEntityProofs(Entity entity, BOOL* bulletProof, BOOL* fireProof, BOOL* explosionProof, BOOL* collisionProof, BOOL* meleeProof, BOOL* steamProof, BOOL* p7, BOOL* drownProof) { return _i(0xBE8CD9BE829BBEBF, entity, bulletProof, fireProof, explosionProof, collisionProof, meleeProof, steamProof, p7, drownProof); } // 0xbe8cd9be829bbebfB1604 + // w is the correct parameter name! + inline Void SetEntityQuaternion(Entity entity, float x, float y, float z, float w) { return _i(0x77B21BE7AC540F07, entity, x, y, z, w); } // 0x77b21be7ac540f070x83b6046fB323 + inline Void SetEntityRecordsCollisions(Entity entity, BOOL toggle) { return _i(0x0A50A1EEDAD01E65, entity, toggle); } // 0x0a50a1eedad01e650x6b189a1aB323 + // rotationOrder refers to the order yaw pitch roll is applied + // value ranges from 0 to 5. What you use for rotationOrder when setting must be the same as rotationOrder when getting the rotation. + // Unsure what value corresponds to what rotation order, more testing will be needed for that. + // For the most part R* uses 1 or 2 as the order. + // p5 is usually set as true + // + inline Void SetEntityRotation(Entity entity, float pitch, float roll, float yaw, int rotationOrder, BOOL p5) { return _i(0x8524A8B0171D5E07, entity, pitch, roll, yaw, rotationOrder, p5); } // 0x8524a8b0171d5e070x0a345efeB323 + // p2 is always 0. + inline Void SetEntityVisible(Entity entity, BOOL toggle, BOOL p2) { return _i(0xEA1C610A04DB6BBB, entity, toggle, p2); } // 0xea1c610a04db6bbb0xd043e8e1B323 + inline Void SetEntityWaterReflectionFlag(Entity entity, BOOL toggle) { return _i(0xC34BC448DA29F5E9, entity, toggle); } // 0xc34bc448da29f5e9B573 + inline Void SetEntityMirrorReflectionFlag(Entity entity, BOOL p1) { return _i(0xE66377CDDADA4810, entity, p1); } // 0xe66377cddada4810B1734 + // Note that the third parameter(denoted as z) is "up and down" with positive numbers encouraging upwards movement. + inline Void SetEntityVelocity(Entity entity, float x, float y, float z) { return _i(0x1C99BB7B6E96D16F, entity, x, y, z); } // 0x1c99bb7b6e96d16f0xff5a1988B323 + inline Void SetEntityAngularVelocity(Entity entity, float x, float y, float z) { return _i(0x8339643499D1222E, entity, x, y, z); } // 0x8339643499d1222eB2372 + inline Void SetEntityHasGravity(Entity entity, BOOL toggle) { return _i(0x4A4722448F18EEF5, entity, toggle); } // 0x4a4722448f18eef50xe2f262bfB323 + // LOD distance can be 0 to 0xFFFF (higher values will result in 0xFFFF) as it is actually stored as a 16-bit value (aka uint16_t). + inline Void SetEntityLodDist(Entity entity, int value) { return _i(0x5927F96A78577363, entity, value); } // 0x5927f96a785773630xd7acc7adB323 + // Returns the LOD distance of an entity. + inline int GetEntityLodDist(Entity entity) { return _i(0x4159C2762B5791D6, entity); } // 0x4159c2762b5791d60x4da3d51fB323 + // skin - everything alpha except skin + // Set entity alpha level. Ranging from 0 to 255 but chnages occur after every 20 percent (after every 51). + inline Void SetEntityAlpha(Entity entity, int alphaLevel, BOOL skin) { return _i(0x44A0870B7E92D7C0, entity, alphaLevel, skin); } // 0x44a0870b7e92d7c00xae667cb0B323 + inline int GetEntityAlpha(Entity entity) { return _i(0x5A47B3B5E63E94C6, entity); } // 0x5a47b3b5e63e94c60x1560b017B323 + inline Void ResetEntityAlpha(Entity entity) { return _i(0x9B1E824FFBB7027A, entity); } // 0x9b1e824ffbb7027a0x8a30761cB323 + // Similar to ResetEntityAlpha + inline Void ResetPickupEntityGlow(Entity entity) { return _i(0x490861B88F4FD846, entity); } // 0x490861b88f4fd846B944 + inline Void SetPickupCollidesWithProjectiles(Any p0, Any p1) { return _i(0xCEA7C8E1B48FF68C, p0, p1); } // 0xcea7c8e1b48ff68cB678 + // Only called once in the scripts. + // + // Related to weapon objects. + // + inline Void SetEntitySortBias(Entity entity, float p1) { return _i(0x5C3B791D580E0BC2, entity, p1); } // 0x5c3b791d580e0bc2B323 + inline Void SetEntityAlwaysPrerender(Entity entity, BOOL toggle) { return _i(0xACAD101E1FB66689, entity, toggle); } // 0xacad101e1fb666890xd8ff798aB323 + inline Void SetEntityRenderScorched(Entity entity, BOOL toggle) { return _i(0x730F5F8D3F0F2050, entity, toggle); } // 0x730f5f8d3f0f20500xaac9317bB323 + // Example here: www.gtaforums.com/topic/830463-help-with-turning-lights-green-and-causing-peds-to-crash-into-each-other/#entry1068211340 + // + // 0 = green + // 1 = red + // 2 = yellow + // 3 = reset changes + // changing lights may not change the behavior of vehicles + inline Void SetEntityTrafficlightOverride(Entity entity, int state) { return _i(0x57C5DB656185EAC4, entity, state); } // 0x57c5db656185eac40xc47f5b91B323 + inline Void SetEntityIsInVehicle(Entity entity) { return _i(0x78E8E3A640178255, entity); } // 0x78e8e3a640178255B323 + // Only works with objects! + inline Void CreateModelSwap(float x, float y, float z, float radius, Hash originalModel, Hash newModel, BOOL p6) { return _i(0x92C47782FDA8B2A3, x, y, z, radius, originalModel, newModel, p6); } // 0x92c47782fda8b2a30x0bc12f9eB323 + inline Void RemoveModelSwap(float x, float y, float z, float radius, Hash originalModel, Hash newModel, BOOL p6) { return _i(0x033C0F9A64E229AE, x, y, z, radius, originalModel, newModel, p6); } // 0x033c0f9a64e229ae0xce0aa8bcB323 + // p5 = sets as true in scripts + // Same as the comment for CreateModelSwap unless for some reason p5 affects it this only works with objects as well. + // + // Network players do not see changes done with this. + inline Void CreateModelHide(float x, float y, float z, float radius, Hash modelHash, BOOL p5) { return _i(0x8A97BCA30A0CE478, x, y, z, radius, modelHash, p5); } // 0x8a97bca30a0ce4780x7bd5cf2fB323 + inline Void CreateModelHideExcludingScriptObjects(float x, float y, float z, float radius, Hash modelHash, BOOL p5) { return _i(0x3A52AE588830BF7F, x, y, z, radius, modelHash, p5); } // 0x3a52ae588830bf7f0x07aaf22cB323 + // This native makes entities visible that are hidden by the native CreateModelHide. + // p5 should be false, true does nothing + inline Void RemoveModelHide(float x, float y, float z, float radius, Hash modelHash, BOOL p5) { return _i(0xD9E3006FB3CBD765, x, y, z, radius, modelHash, p5); } // 0xd9e3006fb3cbd7650x993dbc10B323 + inline Void CreateForcedObject(float x, float y, float z, Any p3, Hash modelHash, BOOL p5) { return _i(0x150E808B375A385A, x, y, z, p3, modelHash, p5); } // 0x150e808b375a385a0x335190a2B323 + inline Void RemoveForcedObject(float x, float y, float z, float p3, Hash modelHash) { return _i(0x61B6775E83C0DB6F, x, y, z, p3, modelHash); } // 0x61b6775e83c0db6f0xaed73addB323 + // Calling this function disables collision between two entities. + // The importance of the order for entity1 and entity2 is unclear. + // The third parameter, `thisFrame`, decides whether the collision is to be disabled until it is turned back on, or if it's just this frame. + inline Void SetEntityNoCollisionEntity(Entity entity1, Entity entity2, BOOL thisFrameOnly) { return _i(0xA53ED5520C07654A, entity1, entity2, thisFrameOnly); } // 0xa53ed5520c07654a0x1e11bfe9B323 + inline Void SetEntityMotionBlur(Entity entity, BOOL toggle) { return _i(0x295D82A8559F9150, entity, toggle); } // 0x295d82a8559f91500xe90005b8B323 + // p1 always false. + inline Void SetCanAutoVaultOnEntity(Entity entity, BOOL toggle) { return _i(0xE12ABE5E3A389A6C, entity, toggle); } // 0xe12abe5e3a389a6c0x44767b31B323 + // p1 always false. + inline Void SetCanClimbOnEntity(Entity entity, BOOL toggle) { return _i(0xA80AE305E0A3044F, entity, toggle); } // 0xa80ae305e0a3044f0xe224a6a5B323 + // Only called within 1 script for x360. 'fm_mission_controller' and it used on an object. + // + // Ran after these 2 natives, + // set_object_targettable(uParam0, 0); + // set_entity_invincible(uParam0, 1); + inline Void SetWaitForCollisionsBeforeProbe(Entity entity, BOOL toggle) { return _i(0xDC6F8601FAF2E893, entity, toggle); } // 0xdc6f8601faf2e8930xa0466a69B323 + inline Void SetEntityNoweapondecals(Entity entity, BOOL p1) { return _i(0x2C2E3DC128F44309, entity, p1); } // 0x2c2e3dc128f44309B323 + inline Void SetEntityUseMaxDistanceForWaterReflection(Entity entity, BOOL p1) { return _i(0x1A092BB0C3808B96, entity, p1); } // 0x1a092bb0c3808b96B323 + // Gets the world rotation of the specified bone of the specified entity. + inline Vector3 GetEntityBoneRotation(Entity entity, int boneIndex) { return _i(0xCE6294A232D03786, entity, boneIndex); } // 0xce6294a232d03786B791 + // Gets the world position of the specified bone of the specified entity. + inline Vector3 GetEntityBonePostion(Entity entity, int boneIndex) { return _i(0x46F8696933A63C9B, entity, boneIndex); } // 0x46f8696933a63c9bB877 + // Gets the local rotation of the specified bone of the specified entity. + inline Vector3 GetEntityBoneObjectRotation(Entity entity, int boneIndex) { return _i(0xBD8D32550E5CEBFE, entity, boneIndex); } // 0xbd8d32550e5cebfeB1734 + inline Vector3 GetEntityBoneObjectPostion(Entity entity, int boneIndex) { return _i(0xCF1247CC86961FD6, entity, boneIndex); } // 0xcf1247cc86961fd6B2802 + inline int GetEntityBoneCount(Entity entity) { return _i(0xB328DCC3A3AA401B, entity); } // 0xb328dcc3a3aa401bB791 + inline Void EnableEntityBulletCollision(Entity entity) { return _i(0x6CE177D014502E8A, entity); } // 0x6ce177d014502e8aB877 + inline Void SetEntityCanOnlyBeDamagedByEntity(Entity entity1, Entity entity2) { return _i(0xB17BC6453F6CF5AC, entity1, entity2); } // 0xb17bc6453f6cf5acB944 + inline Void SetEntityCantCauseCollisionDamagedEntity(Entity entity1, Entity entity2) { return _i(0x68B562E124CC0AEF, entity1, entity2); } // 0x68b562e124cc0aefB1180 + // p1 is always set to 1 + inline Void SetAllowMigrateToSpectator(Entity entity, Any p1) { return _i(0x36F32DE87082343E, entity, p1); } // 0x36f32de87082343eB1011 + // Gets the handle of an entity with a specific model hash attached to another entity, such as an object attached to a ped. + // This native does not appear to have anything to do with pickups as in scripts it is used with objects. + // + // Example from fm_mission_controller_2020.c: + // + // iVar8 = ENTITY::GetEntityOfTypeAttachedToEntity(bParam0->f_9, joaat("p_cs_clipboard")); + inline Entity GetEntityOfTypeAttachedToEntity(Entity entity, Hash modelHash) { return _i(0x1F922734E259BD26, entity, modelHash); } // 0x1f922734e259bd26B1180 + inline Void SetPickUpByCargobobDisabled(Entity entity, BOOL toggle) { return _i(0xD7B80E7C3BEFC396, entity, toggle); } // 0xd7b80e7c3befc396B1180 } namespace EVENT { - inline Void SetDecisionMaker(Ped ped, Hash name) { return _i(0xB604A2942ADED0EE, ped, name); } // 0xb604a2942aded0ee0x19ceac9eB323 - // eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - inline Void ClearDecisionMakerEventResponse(Hash name, int eventType) { return _i(0x4FC9381A7AEE8968, name, eventType); } // 0x4fc9381a7aee89680x07abd94dB323 - // eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - // - // This is limited to 4 blocked events at a time. - inline Void BlockDecisionMakerEvent(Hash name, int eventType) { return _i(0xE42FCDFD0E4196F7, name, eventType); } // 0xe42fcdfd0e4196f70x57506ea6B323 - // eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - inline Void UnblockDecisionMakerEvent(Hash name, int eventType) { return _i(0xD7CD9CF34F2C99E8, name, eventType); } // 0xd7cd9cf34f2c99e80x62a3161dB323 - // eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - inline int AddShockingEventAtPosition(int eventType, float x, float y, float z, float duration) { return _i(0xD9F8455409B525E9, eventType, x, y, z, duration); } // 0xd9f8455409b525e90x0b30f779B323 - // eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - inline int AddShockingEventForEntity(int eventType, Entity entity, float duration) { return _i(0x7FD8F3BE76F89422, eventType, entity, duration); } // 0x7fd8f3be76f894220xa81b5b71B323 - // eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - inline BOOL IsShockingEventInSphere(int eventType, float x, float y, float z, float radius) { return _i(0x1374ABB7C15BAB92, eventType, x, y, z, radius); } // 0x1374abb7c15bab920x2f98823eB323 - inline BOOL RemoveShockingEvent(ScrHandle event) { return _i(0x2CDA538C44C6CCE5, event); } // 0x2cda538c44c6cce50xf82d5a87B323 - inline Void RemoveAllShockingEvents(BOOL p0) { return _i(0xEAABE8FDFA21274C, p0); } // 0xeaabe8fdfa21274c0x64df6282B323 - inline Void RemoveShockingEventSpawnBlockingAreas() { return _i(0x340F1415B68AEADE); } // 0x340f1415b68aeade0xa0ce89c8B323 - inline Void SuppressShockingEventsNextFrame() { return _i(0x2F9A292AD0A3BD89); } // 0x2f9a292ad0a3bd890x4cc674b5B323 - // eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - inline Void SuppressShockingEventTypeNextFrame(int eventType) { return _i(0x3FD2EC8BF1F1CF30, eventType); } // 0x3fd2ec8bf1f1cf300xa0fdcb82B323 - inline Void SuppressAgitationEventsNextFrame() { return _i(0x5F3B7749C112D552); } // 0x5f3b7749c112d5520x80340396B323 + inline Void SetDecisionMaker(Ped ped, Hash name) { return _i(0xB604A2942ADED0EE, ped, name); } // 0xb604a2942aded0ee0x19ceac9eB323 + // eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt + inline Void ClearDecisionMakerEventResponse(Hash name, int eventType) { return _i(0x4FC9381A7AEE8968, name, eventType); } // 0x4fc9381a7aee89680x07abd94dB323 + // eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt + // + // This is limited to 4 blocked events at a time. + inline Void BlockDecisionMakerEvent(Hash name, int eventType) { return _i(0xE42FCDFD0E4196F7, name, eventType); } // 0xe42fcdfd0e4196f70x57506ea6B323 + // eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt + inline Void UnblockDecisionMakerEvent(Hash name, int eventType) { return _i(0xD7CD9CF34F2C99E8, name, eventType); } // 0xd7cd9cf34f2c99e80x62a3161dB323 + // eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt + inline int AddShockingEventAtPosition(int eventType, float x, float y, float z, float duration) { return _i(0xD9F8455409B525E9, eventType, x, y, z, duration); } // 0xd9f8455409b525e90x0b30f779B323 + // eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt + inline int AddShockingEventForEntity(int eventType, Entity entity, float duration) { return _i(0x7FD8F3BE76F89422, eventType, entity, duration); } // 0x7fd8f3be76f894220xa81b5b71B323 + // eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt + inline BOOL IsShockingEventInSphere(int eventType, float x, float y, float z, float radius) { return _i(0x1374ABB7C15BAB92, eventType, x, y, z, radius); } // 0x1374abb7c15bab920x2f98823eB323 + inline BOOL RemoveShockingEvent(ScrHandle event) { return _i(0x2CDA538C44C6CCE5, event); } // 0x2cda538c44c6cce50xf82d5a87B323 + inline Void RemoveAllShockingEvents(BOOL p0) { return _i(0xEAABE8FDFA21274C, p0); } // 0xeaabe8fdfa21274c0x64df6282B323 + inline Void RemoveShockingEventSpawnBlockingAreas() { return _i(0x340F1415B68AEADE); } // 0x340f1415b68aeade0xa0ce89c8B323 + inline Void SuppressShockingEventsNextFrame() { return _i(0x2F9A292AD0A3BD89); } // 0x2f9a292ad0a3bd890x4cc674b5B323 + // eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt + inline Void SuppressShockingEventTypeNextFrame(int eventType) { return _i(0x3FD2EC8BF1F1CF30, eventType); } // 0x3fd2ec8bf1f1cf300xa0fdcb82B323 + inline Void SuppressAgitationEventsNextFrame() { return _i(0x5F3B7749C112D552); } // 0x5f3b7749c112d5520x80340396B323 } namespace FILES { - // Character types: - // 0 = Michael, - // 1 = Franklin, - // 2 = Trevor, - // 3 = MPMale, - // 4 = MPFemale - inline int GetNumTattooShopDlcItems(int character) { return _i(0x278F76C3B0A8F109, character); } // 0x278f76c3b0a8f1090x71d0cf3eB323 - // Character types: - // 0 = Michael, - // 1 = Franklin, - // 2 = Trevor, - // 3 = MPMale, - // 4 = MPFemale - // - // - // enum TattooZoneData - // { - // ZONE_TORSO = 0, - // ZONE_HEAD = 1, - // ZONE_LEFT_ARM = 2, - // ZONE_RIGHT_ARM = 3, - // ZONE_LEFT_LEG = 4, - // ZONE_RIGHT_LEG = 5, - // ZONE_UNKNOWN = 6, - // ZONE_NONE = 7, - // }; - // struct outComponent - // { - // // these vars are suffixed with 4 bytes of padding each. - // uint unk; - // int unk2; - // uint tattooCollectionHash; - // uint tattooNameHash; - // int unk3; - // TattooZoneData zoneId; - // uint unk4; - // uint unk5; - // // maybe more, not sure exactly, decompiled scripts are very vague around this part. - // } - inline BOOL GetTattooShopDlcItemData(int characterType, int decorationIndex, Any* outComponent) { return _i(0xFF56381874F82086, characterType, decorationIndex, outComponent); } // 0xff56381874f820860x2e9d628cB323 - // Returns some sort of index/offset for overlays/decorations. - // - // Character types: - // 0 = Michael, - // 1 = Franklin, - // 2 = Trevor, - // 3 = MPMale, - // 4 = MPFemale - inline int GetTattooShopDlcItemIndex(Hash overlayHash, Any p1, int character) { return _i(0x10144267DD22866C, overlayHash, p1, character); } // 0x10144267dd22866cB2189 - inline Void InitShopPedComponent(Any* outComponent) { return _i(0x1E8C308FD312C036, outComponent); } // 0x1e8c308fd312c0360xb818c7fcB323 - inline Void InitShopPedProp(Any* outProp) { return _i(0xEB0A2B758F7B850F, outProp); } // 0xeb0a2b758f7b850f0xf5659e50B323 - inline int SetupShopPedApparelQuery(int p0, int p1, int p2, int p3) { return _i(0x50F457823CE6EB5F, p0, p1, p2, p3); } // 0x50f457823ce6eb5f0xc937ff3dB323 - // character is 0 for Michael, 1 for Franklin, 2 for Trevor, 3 for freemode male, and 4 for freemode female. - // - // componentId is between 0 and 11 and corresponds to the usual component slots. - // - // p1 could be the outfit number; unsure. - // - // p2 is usually -1; unknown function. - // - // p3 appears to be for selecting between clothes and props; false is used with components/clothes, true is used with props. - // - // p4 is usually -1; unknown function. - // - // componentId is -1 when p3 is true in decompiled scripts. - inline int SetupShopPedApparelQueryTu(int character, int p1, int p2, BOOL p3, int p4, int componentId) { return _i(0x9BDF59818B1E38C1, character, p1, p2, p3, p4, componentId); } // 0x9bdf59818b1e38c10x594e862cB323 - // See https://git.io/JtcRf for example and structs. - inline Void GetShopPedQueryComponent(int componentId, Any* outComponent) { return _i(0x249E310B2D920699, componentId, outComponent); } // 0x249e310b2d9206990xc0718904B323 - // Returns some sort of index/offset for components. - // Needs _GET_NUM_PROPS_FROM_OUTFIT to be called with p3 = false and componentId with the drawable's component slot first, returns -1 otherwise. - inline int GetShopPedQueryComponentIndex(Hash componentHash) { return _i(0x96E2929292A4DB77, componentHash); } // 0x96e2929292a4db77B2189 - // More info here: https://gist.github.com/root-cause/3b80234367b0c856d60bf5cb4b826f86 - inline Void GetShopPedComponent(Hash componentHash, Any* outComponent) { return _i(0x74C0E2A57EC66760, componentHash, outComponent); } // 0x74c0e2a57ec667600xb39677c5B323 - // See https://git.io/JtcRf for example and structs. - inline Void GetShopPedQueryProp(int componentId, Any* outProp) { return _i(0xDE44A00999B2837D, componentId, outProp); } // 0xde44a00999b2837d0x1d3c1466B323 - // Returns some sort of index/offset for props. - // Needs _GET_NUM_PROPS_FROM_OUTFIT to be called with p3 = true and componentId = -1 first, returns -1 otherwise. - inline int GetShopPedQueryPropIndex(Hash componentHash) { return _i(0x6CEBE002E58DEE97, componentHash); } // 0x6cebe002e58dee97B2189 - // More info here: https://gist.github.com/root-cause/3b80234367b0c856d60bf5cb4b826f86 - inline Void GetShopPedProp(Hash componentHash, Any* outProp) { return _i(0x5D5CAFF661DDF6FC, componentHash, outProp); } // 0x5d5caff661ddf6fc0xdb0a7a58B323 - inline Hash GetHashNameForComponent(Entity entity, int componentId, int drawableVariant, int textureVariant) { return _i(0x0368B3A838070348, entity, componentId, drawableVariant, textureVariant); } // 0x0368b3a8380703480xc8a4bf12B323 - inline Hash GetHashNameForProp(Entity entity, int componentId, int propIndex, int propTextureIndex) { return _i(0x5D6160275CAEC8DD, entity, componentId, propIndex, propTextureIndex); } // 0x5d6160275caec8dd0x7d876dc0B323 - inline int GetShopPedApparelVariantComponentCount(Hash componentHash) { return _i(0xC17AD0E5752BECDA, componentHash); } // 0xc17ad0e5752becda0x159751b4B323 - // `propHash`: Ped helmet prop hash? - // This native returns 1 when the player helmet has a visor (there is another prop index for the same helmet with closed/opened visor variant) that can be toggled. 0 if there's no alternative version with a visor for this helmet prop. - inline int GetShopPedApparelVariantPropCount(Hash propHash) { return _i(0xD40AAC51E8E4C663, propHash); } // 0xd40aac51e8e4c663B791 - inline Void GetVariantComponent(Hash componentHash, int variantComponentIndex, Hash* nameHash, int* enumValue, int* componentType) { return _i(0x6E11F282F11863B6, componentHash, variantComponentIndex, nameHash, enumValue, componentType); } // 0x6e11f282f11863b60xe4ff7103B323 - inline Void GetVariantProp(Hash componentHash, int variantPropIndex, Hash* nameHash, int* enumValue, int* anchorPoint) { return _i(0xD81B7F27BC773E66, componentHash, variantPropIndex, nameHash, enumValue, anchorPoint); } // 0xd81b7f27bc773e66B791 - // Returns number of possible values of the forcedComponentIndex argument of GetForcedComponent. - inline int GetShopPedApparelForcedComponentCount(Hash componentHash) { return _i(0xC6B9DB42C04DD8C3, componentHash); } // 0xc6b9db42c04dd8c30xce70f183B323 - // Returns number of possible values of the forcedPropIndex argument of GetForcedProp. - inline int GetShopPedApparelForcedPropCount(Hash componentHash) { return _i(0x017568A8182D98A6, componentHash); } // 0x017568a8182d98a60xc560d7c0B323 - inline Void GetForcedComponent(Hash componentHash, int forcedComponentIndex, Hash* nameHash, int* enumValue, int* componentType) { return _i(0x6C93ED8C2F74859B, componentHash, forcedComponentIndex, nameHash, enumValue, componentType); } // 0x6c93ed8c2f74859b0x382c70beB323 - inline Void GetForcedProp(Hash componentHash, int forcedPropIndex, Hash* nameHash, int* enumValue, int* anchorPoint) { return _i(0xE1CA84EBF72E691D, componentHash, forcedPropIndex, nameHash, enumValue, anchorPoint); } // 0xe1ca84ebf72e691d0x22dae257B323 - // Full list of restriction tags by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedApparelRestrictionTags.json - // - // componentId/last parameter seems to be unused. - inline BOOL DoesShopPedApparelHaveRestrictionTag(Hash componentHash, Hash restrictionTagHash, int componentId) { return _i(0x341DE7ED1D2A1BFD, componentHash, restrictionTagHash, componentId); } // 0x341de7ed1d2a1bfd0x8e2c7fd5B323 - inline BOOL DoesCurrentPedComponentHaveRestrictionTag(Ped ped, int componentId, Hash restrictionTagHash) { return _i(0x7796B21B76221BC5, ped, componentId, restrictionTagHash); } // 0x7796b21b76221bc5B2612 - inline BOOL DoesCurrentPedPropHaveRestrictionTag(Ped ped, int componentId, Hash restrictionTagHash) { return _i(0xD726BAB4554DA580, ped, componentId, restrictionTagHash); } // 0xd726bab4554da580B2612 - // characters - // - // 0: Michael - // 1: Franklin - // 2: Trevor - // 3: MPMale - // 4: MPFemale - inline int SetupShopPedOutfitQuery(int character, BOOL p1) { return _i(0xF3FBE2D50A6A8C28, character, p1); } // 0xf3fbe2d50a6a8c280x1ecd23e7B323 - // outfitIndex: from 0 to SetupShopPedOutfitQuery(characterIndex, false) - 1. - // See https://git.io/JtcB8 for example and outfit struct. - inline Void GetShopPedQueryOutfit(int outfitIndex, Any* outfit) { return _i(0x6D793F03A631FE56, outfitIndex, outfit); } // 0x6d793f03a631fe560x2f8013a1B323 - inline Void GetShopPedOutfit(Any p0, Any* p1) { return _i(0xB7952076E444979D, p0, p1); } // 0xb7952076e444979d0xcafe9209B323 - inline int GetShopPedOutfitLocate(Any p0) { return _i(0x073CA26B079F956E, p0); } // 0x073ca26b079f956e0x2798f56fB323 - // See https://git.io/JtcBH for example and structs. - inline BOOL GetShopPedOutfitPropVariant(Hash outfitHash, int variantIndex, Any* outPropVariant) { return _i(0xA9F9C2E0FDE11CBB, outfitHash, variantIndex, outPropVariant); } // 0xa9f9c2e0fde11cbb0x6641a864B323 - // See https://git.io/JtcBH for example and structs. - inline BOOL GetShopPedOutfitComponentVariant(Hash outfitHash, int variantIndex, Any* outComponentVariant) { return _i(0x19F2A026EDF0013F, outfitHash, variantIndex, outComponentVariant); } // 0x19f2a026edf0013f0x818534acB323 - inline int GetNumDlcVehicles() { return _i(0xA7A866D21CD2329B); } // 0xa7a866d21cd2329b0x8eaf9cf6B323 - // dlcVehicleIndex is 0 to GET_NUM_DLC_VEHICLS() - 1 - inline Hash GetDlcVehicleModel(int dlcVehicleIndex) { return _i(0xECC01B7C5763333C, dlcVehicleIndex); } // 0xecc01b7c5763333c0xa2201e09B323 - // dlcVehicleIndex takes a number from 0 - GetNumDlcVehicles() - 1. - // outData is a struct of 3 8-byte items. - // The Second item in the struct *(Hash *)(outData + 1) is the vehicle hash. - inline BOOL GetDlcVehicleData(int dlcVehicleIndex, Any* outData) { return _i(0x33468EDC08E371F6, dlcVehicleIndex, outData); } // 0x33468edc08e371f60xcf428fa4B323 - inline int GetDlcVehicleFlags(int dlcVehicleIndex) { return _i(0x5549EE11FA22FCF2, dlcVehicleIndex); } // 0x5549ee11fa22fcf20xab12738cB323 - // Returns the total number of DLC weapons. - inline int GetNumDlcWeapons() { return _i(0xEE47635F352DA367); } // 0xee47635f352da3670x2b757e6cB323 - // Returns the total number of DLC weapons that are available in SP (availableInSP field in shop_weapon.meta). - inline int GetNumDlcWeaponsSp() { return _i(0x4160B65AE085B5A9); } // 0x4160b65ae085b5a9B2060 - // - // dlcWeaponIndex takes a number from 0 - GetNumDlcWeapons() - 1. - // struct DlcWeaponData - // { - // int emptyCheck; //use DLC1::IsContentItemLocked on this - // int padding1; - // int weaponHash; - // int padding2; - // int unk; - // int padding3; - // int weaponCost; - // int padding4; - // int ammoCost; - // int padding5; - // int ammoType; - // int padding6; - // int defaultClipSize; - // int padding7; - // char nameLabel[64]; - // char descLabel[64]; - // char desc2Label[64]; // usually "the" + name - // char upperCaseNameLabel[64]; - // }; - inline BOOL GetDlcWeaponData(int dlcWeaponIndex, Any* outData) { return _i(0x79923CD21BECE14E, dlcWeaponIndex, outData); } // 0x79923cd21bece14e0xd88ec8eaB323 - // Same as GetDlcWeaponData but only works for DLC weapons that are available in SP. - inline BOOL GetDlcWeaponDataSp(int dlcWeaponIndex, Any* outData) { return _i(0x310836EE7129BA33, dlcWeaponIndex, outData); } // 0x310836ee7129ba33B2060 - // Returns the total number of DLC weapon components. - inline int GetNumDlcWeaponComponents(int dlcWeaponIndex) { return _i(0x405425358A7D61FE, dlcWeaponIndex); } // 0x405425358a7d61fe0x476b23a9B323 - // Returns the total number of DLC weapon components that are available in SP. - inline int GetNumDlcWeaponComponentsSp(int dlcWeaponIndex) { return _i(0xAD2A7A6DFF55841B, dlcWeaponIndex); } // 0xad2a7a6dff55841bB2060 - // p0 seems to be the weapon index - // p1 seems to be the weapon component index - // struct DlcComponentData{ - // int attachBone; - // int padding1; - // int bActiveByDefault; - // int padding2; - // int unk; - // int padding3; - // int componentHash; - // int padding4; - // int unk2; - // int padding5; - // int componentCost; - // int padding6; - // char nameLabel[64]; - // char descLabel[64]; - // }; - // - inline BOOL GetDlcWeaponComponentData(int dlcWeaponIndex, int dlcWeapCompIndex, Any* ComponentDataPtr) { return _i(0x6CF598A2957C2BF8, dlcWeaponIndex, dlcWeapCompIndex, ComponentDataPtr); } // 0x6cf598a2957c2bf80x4b83fcafB323 - // Same as GetDlcWeaponComponentData but only works for DLC components that are available in SP. - inline BOOL GetDlcWeaponComponentDataSp(int dlcWeaponIndex, int dlcWeapCompIndex, Any* ComponentDataPtr) { return _i(0x31D5E073B6F93CDC, dlcWeaponIndex, dlcWeapCompIndex, ComponentDataPtr); } // 0x31d5e073b6f93cdcB2060 - inline BOOL IsContentItemLocked(Hash itemHash) { return _i(0xD4D7B033C3AA243C, itemHash); } // 0xd4d7b033c3aa243c0x06396058B323 - inline BOOL IsDlcVehicleMod(Hash hash) { return _i(0x0564B9FF9631B82C, hash); } // 0x0564b9ff9631b82c0x35bca844B323 - inline Hash GetDlcVehicleModLockHash(Hash hash) { return _i(0xC098810437312FFF, hash); } // 0xc098810437312fff0x59352658B323 - // From fm_deathmatch_creator and fm_race_creator: - // - // FILES::RevertContentChangesetGroupForAll(joaat("GROUP_MAP_SP")); - // FILES::ExecuteContentChangesetGroupForAll(joaat("GROUP_MAP")); - inline Void ExecuteContentChangesetGroupForAll(Hash hash) { return _i(0x6BEDF5769AC2DC07, hash); } // 0x6bedf5769ac2dc07B1604 - // From fm_deathmatch_creator and fm_race_creator: - // - // FILES::RevertContentChangesetGroupForAll(joaat("GROUP_MAP_SP")); - // FILES::ExecuteContentChangesetGroupForAll(joaat("GROUP_MAP")); - inline Void RevertContentChangesetGroupForAll(Hash hash) { return _i(0x3C1978285B036B25, hash); } // 0x3c1978285b036b25B1604 + // Character types: + // 0 = Michael, + // 1 = Franklin, + // 2 = Trevor, + // 3 = MPMale, + // 4 = MPFemale + inline int GetNumTattooShopDlcItems(int character) { return _i(0x278F76C3B0A8F109, character); } // 0x278f76c3b0a8f1090x71d0cf3eB323 + // Character types: + // 0 = Michael, + // 1 = Franklin, + // 2 = Trevor, + // 3 = MPMale, + // 4 = MPFemale + // + // + // enum TattooZoneData + // { + // ZONE_TORSO = 0, + // ZONE_HEAD = 1, + // ZONE_LEFT_ARM = 2, + // ZONE_RIGHT_ARM = 3, + // ZONE_LEFT_LEG = 4, + // ZONE_RIGHT_LEG = 5, + // ZONE_UNKNOWN = 6, + // ZONE_NONE = 7, + // }; + // struct outComponent + // { + // // these vars are suffixed with 4 bytes of padding each. + // uint unk; + // int unk2; + // uint tattooCollectionHash; + // uint tattooNameHash; + // int unk3; + // TattooZoneData zoneId; + // uint unk4; + // uint unk5; + // // maybe more, not sure exactly, decompiled scripts are very vague around this part. + // } + inline BOOL GetTattooShopDlcItemData(int characterType, int decorationIndex, Any* outComponent) { return _i(0xFF56381874F82086, characterType, decorationIndex, outComponent); } // 0xff56381874f820860x2e9d628cB323 + // Returns some sort of index/offset for overlays/decorations. + // + // Character types: + // 0 = Michael, + // 1 = Franklin, + // 2 = Trevor, + // 3 = MPMale, + // 4 = MPFemale + inline int GetTattooShopDlcItemIndex(Hash overlayHash, Any p1, int character) { return _i(0x10144267DD22866C, overlayHash, p1, character); } // 0x10144267dd22866cB2189 + inline Void InitShopPedComponent(Any* outComponent) { return _i(0x1E8C308FD312C036, outComponent); } // 0x1e8c308fd312c0360xb818c7fcB323 + inline Void InitShopPedProp(Any* outProp) { return _i(0xEB0A2B758F7B850F, outProp); } // 0xeb0a2b758f7b850f0xf5659e50B323 + inline int SetupShopPedApparelQuery(int p0, int p1, int p2, int p3) { return _i(0x50F457823CE6EB5F, p0, p1, p2, p3); } // 0x50f457823ce6eb5f0xc937ff3dB323 + // character is 0 for Michael, 1 for Franklin, 2 for Trevor, 3 for freemode male, and 4 for freemode female. + // + // componentId is between 0 and 11 and corresponds to the usual component slots. + // + // p1 could be the outfit number; unsure. + // + // p2 is usually -1; unknown function. + // + // p3 appears to be for selecting between clothes and props; false is used with components/clothes, true is used with props. + // + // p4 is usually -1; unknown function. + // + // componentId is -1 when p3 is true in decompiled scripts. + inline int SetupShopPedApparelQueryTu(int character, int p1, int p2, BOOL p3, int p4, int componentId) { return _i(0x9BDF59818B1E38C1, character, p1, p2, p3, p4, componentId); } // 0x9bdf59818b1e38c10x594e862cB323 + // See https://git.io/JtcRf for example and structs. + inline Void GetShopPedQueryComponent(int componentId, Any* outComponent) { return _i(0x249E310B2D920699, componentId, outComponent); } // 0x249e310b2d9206990xc0718904B323 + // Returns some sort of index/offset for components. + // Needs _GET_NUM_PROPS_FROM_OUTFIT to be called with p3 = false and componentId with the drawable's component slot first, returns -1 otherwise. + inline int GetShopPedQueryComponentIndex(Hash componentHash) { return _i(0x96E2929292A4DB77, componentHash); } // 0x96e2929292a4db77B2189 + // More info here: https://gist.github.com/root-cause/3b80234367b0c856d60bf5cb4b826f86 + inline Void GetShopPedComponent(Hash componentHash, Any* outComponent) { return _i(0x74C0E2A57EC66760, componentHash, outComponent); } // 0x74c0e2a57ec667600xb39677c5B323 + // See https://git.io/JtcRf for example and structs. + inline Void GetShopPedQueryProp(int componentId, Any* outProp) { return _i(0xDE44A00999B2837D, componentId, outProp); } // 0xde44a00999b2837d0x1d3c1466B323 + // Returns some sort of index/offset for props. + // Needs _GET_NUM_PROPS_FROM_OUTFIT to be called with p3 = true and componentId = -1 first, returns -1 otherwise. + inline int GetShopPedQueryPropIndex(Hash componentHash) { return _i(0x6CEBE002E58DEE97, componentHash); } // 0x6cebe002e58dee97B2189 + // More info here: https://gist.github.com/root-cause/3b80234367b0c856d60bf5cb4b826f86 + inline Void GetShopPedProp(Hash componentHash, Any* outProp) { return _i(0x5D5CAFF661DDF6FC, componentHash, outProp); } // 0x5d5caff661ddf6fc0xdb0a7a58B323 + inline Hash GetHashNameForComponent(Entity entity, int componentId, int drawableVariant, int textureVariant) { return _i(0x0368B3A838070348, entity, componentId, drawableVariant, textureVariant); } // 0x0368b3a8380703480xc8a4bf12B323 + inline Hash GetHashNameForProp(Entity entity, int componentId, int propIndex, int propTextureIndex) { return _i(0x5D6160275CAEC8DD, entity, componentId, propIndex, propTextureIndex); } // 0x5d6160275caec8dd0x7d876dc0B323 + inline int GetShopPedApparelVariantComponentCount(Hash componentHash) { return _i(0xC17AD0E5752BECDA, componentHash); } // 0xc17ad0e5752becda0x159751b4B323 + // `propHash`: Ped helmet prop hash? + // This native returns 1 when the player helmet has a visor (there is another prop index for the same helmet with closed/opened visor variant) that can be toggled. 0 if there's no alternative version with a visor for this helmet prop. + inline int GetShopPedApparelVariantPropCount(Hash propHash) { return _i(0xD40AAC51E8E4C663, propHash); } // 0xd40aac51e8e4c663B791 + inline Void GetVariantComponent(Hash componentHash, int variantComponentIndex, Hash* nameHash, int* enumValue, int* componentType) { return _i(0x6E11F282F11863B6, componentHash, variantComponentIndex, nameHash, enumValue, componentType); } // 0x6e11f282f11863b60xe4ff7103B323 + inline Void GetVariantProp(Hash componentHash, int variantPropIndex, Hash* nameHash, int* enumValue, int* anchorPoint) { return _i(0xD81B7F27BC773E66, componentHash, variantPropIndex, nameHash, enumValue, anchorPoint); } // 0xd81b7f27bc773e66B791 + // Returns number of possible values of the forcedComponentIndex argument of GetForcedComponent. + inline int GetShopPedApparelForcedComponentCount(Hash componentHash) { return _i(0xC6B9DB42C04DD8C3, componentHash); } // 0xc6b9db42c04dd8c30xce70f183B323 + // Returns number of possible values of the forcedPropIndex argument of GetForcedProp. + inline int GetShopPedApparelForcedPropCount(Hash componentHash) { return _i(0x017568A8182D98A6, componentHash); } // 0x017568a8182d98a60xc560d7c0B323 + inline Void GetForcedComponent(Hash componentHash, int forcedComponentIndex, Hash* nameHash, int* enumValue, int* componentType) { return _i(0x6C93ED8C2F74859B, componentHash, forcedComponentIndex, nameHash, enumValue, componentType); } // 0x6c93ed8c2f74859b0x382c70beB323 + inline Void GetForcedProp(Hash componentHash, int forcedPropIndex, Hash* nameHash, int* enumValue, int* anchorPoint) { return _i(0xE1CA84EBF72E691D, componentHash, forcedPropIndex, nameHash, enumValue, anchorPoint); } // 0xe1ca84ebf72e691d0x22dae257B323 + // Full list of restriction tags by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedApparelRestrictionTags.json + // + // componentId/last parameter seems to be unused. + inline BOOL DoesShopPedApparelHaveRestrictionTag(Hash componentHash, Hash restrictionTagHash, int componentId) { return _i(0x341DE7ED1D2A1BFD, componentHash, restrictionTagHash, componentId); } // 0x341de7ed1d2a1bfd0x8e2c7fd5B323 + inline BOOL DoesCurrentPedComponentHaveRestrictionTag(Ped ped, int componentId, Hash restrictionTagHash) { return _i(0x7796B21B76221BC5, ped, componentId, restrictionTagHash); } // 0x7796b21b76221bc5B2612 + inline BOOL DoesCurrentPedPropHaveRestrictionTag(Ped ped, int componentId, Hash restrictionTagHash) { return _i(0xD726BAB4554DA580, ped, componentId, restrictionTagHash); } // 0xd726bab4554da580B2612 + // characters + // + // 0: Michael + // 1: Franklin + // 2: Trevor + // 3: MPMale + // 4: MPFemale + inline int SetupShopPedOutfitQuery(int character, BOOL p1) { return _i(0xF3FBE2D50A6A8C28, character, p1); } // 0xf3fbe2d50a6a8c280x1ecd23e7B323 + // outfitIndex: from 0 to SetupShopPedOutfitQuery(characterIndex, false) - 1. + // See https://git.io/JtcB8 for example and outfit struct. + inline Void GetShopPedQueryOutfit(int outfitIndex, Any* outfit) { return _i(0x6D793F03A631FE56, outfitIndex, outfit); } // 0x6d793f03a631fe560x2f8013a1B323 + inline Void GetShopPedOutfit(Any p0, Any* p1) { return _i(0xB7952076E444979D, p0, p1); } // 0xb7952076e444979d0xcafe9209B323 + inline int GetShopPedOutfitLocate(Any p0) { return _i(0x073CA26B079F956E, p0); } // 0x073ca26b079f956e0x2798f56fB323 + // See https://git.io/JtcBH for example and structs. + inline BOOL GetShopPedOutfitPropVariant(Hash outfitHash, int variantIndex, Any* outPropVariant) { return _i(0xA9F9C2E0FDE11CBB, outfitHash, variantIndex, outPropVariant); } // 0xa9f9c2e0fde11cbb0x6641a864B323 + // See https://git.io/JtcBH for example and structs. + inline BOOL GetShopPedOutfitComponentVariant(Hash outfitHash, int variantIndex, Any* outComponentVariant) { return _i(0x19F2A026EDF0013F, outfitHash, variantIndex, outComponentVariant); } // 0x19f2a026edf0013f0x818534acB323 + inline int GetNumDlcVehicles() { return _i(0xA7A866D21CD2329B); } // 0xa7a866d21cd2329b0x8eaf9cf6B323 + // dlcVehicleIndex is 0 to GET_NUM_DLC_VEHICLS() - 1 + inline Hash GetDlcVehicleModel(int dlcVehicleIndex) { return _i(0xECC01B7C5763333C, dlcVehicleIndex); } // 0xecc01b7c5763333c0xa2201e09B323 + // dlcVehicleIndex takes a number from 0 - GetNumDlcVehicles() - 1. + // outData is a struct of 3 8-byte items. + // The Second item in the struct *(Hash *)(outData + 1) is the vehicle hash. + inline BOOL GetDlcVehicleData(int dlcVehicleIndex, Any* outData) { return _i(0x33468EDC08E371F6, dlcVehicleIndex, outData); } // 0x33468edc08e371f60xcf428fa4B323 + inline int GetDlcVehicleFlags(int dlcVehicleIndex) { return _i(0x5549EE11FA22FCF2, dlcVehicleIndex); } // 0x5549ee11fa22fcf20xab12738cB323 + // Returns the total number of DLC weapons. + inline int GetNumDlcWeapons() { return _i(0xEE47635F352DA367); } // 0xee47635f352da3670x2b757e6cB323 + // Returns the total number of DLC weapons that are available in SP (availableInSP field in shop_weapon.meta). + inline int GetNumDlcWeaponsSp() { return _i(0x4160B65AE085B5A9); } // 0x4160b65ae085b5a9B2060 + // + // dlcWeaponIndex takes a number from 0 - GetNumDlcWeapons() - 1. + // struct DlcWeaponData + // { + // int emptyCheck; //use DLC1::IsContentItemLocked on this + // int padding1; + // int weaponHash; + // int padding2; + // int unk; + // int padding3; + // int weaponCost; + // int padding4; + // int ammoCost; + // int padding5; + // int ammoType; + // int padding6; + // int defaultClipSize; + // int padding7; + // char nameLabel[64]; + // char descLabel[64]; + // char desc2Label[64]; // usually "the" + name + // char upperCaseNameLabel[64]; + // }; + inline BOOL GetDlcWeaponData(int dlcWeaponIndex, Any* outData) { return _i(0x79923CD21BECE14E, dlcWeaponIndex, outData); } // 0x79923cd21bece14e0xd88ec8eaB323 + // Same as GetDlcWeaponData but only works for DLC weapons that are available in SP. + inline BOOL GetDlcWeaponDataSp(int dlcWeaponIndex, Any* outData) { return _i(0x310836EE7129BA33, dlcWeaponIndex, outData); } // 0x310836ee7129ba33B2060 + // Returns the total number of DLC weapon components. + inline int GetNumDlcWeaponComponents(int dlcWeaponIndex) { return _i(0x405425358A7D61FE, dlcWeaponIndex); } // 0x405425358a7d61fe0x476b23a9B323 + // Returns the total number of DLC weapon components that are available in SP. + inline int GetNumDlcWeaponComponentsSp(int dlcWeaponIndex) { return _i(0xAD2A7A6DFF55841B, dlcWeaponIndex); } // 0xad2a7a6dff55841bB2060 + // p0 seems to be the weapon index + // p1 seems to be the weapon component index + // struct DlcComponentData{ + // int attachBone; + // int padding1; + // int bActiveByDefault; + // int padding2; + // int unk; + // int padding3; + // int componentHash; + // int padding4; + // int unk2; + // int padding5; + // int componentCost; + // int padding6; + // char nameLabel[64]; + // char descLabel[64]; + // }; + // + inline BOOL GetDlcWeaponComponentData(int dlcWeaponIndex, int dlcWeapCompIndex, Any* ComponentDataPtr) { return _i(0x6CF598A2957C2BF8, dlcWeaponIndex, dlcWeapCompIndex, ComponentDataPtr); } // 0x6cf598a2957c2bf80x4b83fcafB323 + // Same as GetDlcWeaponComponentData but only works for DLC components that are available in SP. + inline BOOL GetDlcWeaponComponentDataSp(int dlcWeaponIndex, int dlcWeapCompIndex, Any* ComponentDataPtr) { return _i(0x31D5E073B6F93CDC, dlcWeaponIndex, dlcWeapCompIndex, ComponentDataPtr); } // 0x31d5e073b6f93cdcB2060 + inline BOOL IsContentItemLocked(Hash itemHash) { return _i(0xD4D7B033C3AA243C, itemHash); } // 0xd4d7b033c3aa243c0x06396058B323 + inline BOOL IsDlcVehicleMod(Hash hash) { return _i(0x0564B9FF9631B82C, hash); } // 0x0564b9ff9631b82c0x35bca844B323 + inline Hash GetDlcVehicleModLockHash(Hash hash) { return _i(0xC098810437312FFF, hash); } // 0xc098810437312fff0x59352658B323 + // From fm_deathmatch_creator and fm_race_creator: + // + // FILES::RevertContentChangesetGroupForAll(joaat("GROUP_MAP_SP")); + // FILES::ExecuteContentChangesetGroupForAll(joaat("GROUP_MAP")); + inline Void ExecuteContentChangesetGroupForAll(Hash hash) { return _i(0x6BEDF5769AC2DC07, hash); } // 0x6bedf5769ac2dc07B1604 + // From fm_deathmatch_creator and fm_race_creator: + // + // FILES::RevertContentChangesetGroupForAll(joaat("GROUP_MAP_SP")); + // FILES::ExecuteContentChangesetGroupForAll(joaat("GROUP_MAP")); + inline Void RevertContentChangesetGroupForAll(Hash hash) { return _i(0x3C1978285B036B25, hash); } // 0x3c1978285b036b25B1604 } namespace FIRE { - // Starts a fire: - // - // xyz: Location of fire - // maxChildren: The max amount of times a fire can spread to other objects. Must be 25 or less, or the function will do nothing. - // isGasFire: Whether or not the fire is powered by gasoline. - inline FireId StartScriptFire(float X, float Y, float Z, int maxChildren, BOOL isGasFire) { return _i(0x6B83617E04503888, X, Y, Z, maxChildren, isGasFire); } // 0x6b83617e045038880xe7529357B323 - inline Void RemoveScriptFire(FireId fireHandle) { return _i(0x7FF548385680673F, fireHandle); } // 0x7ff548385680673f0x6b21fe26B323 - inline FireId StartEntityFire(Entity entity) { return _i(0xF6A9D9708F6F23DF, entity); } // 0xf6a9d9708f6f23df0x8928428eB323 - inline Void StopEntityFire(Entity entity) { return _i(0x7F0DD2EBBB651AFF, entity); } // 0x7f0dd2ebbb651aff0xce8c9066B323 - inline BOOL IsEntityOnFire(Entity entity) { return _i(0x28D3FED7190D3A0B, entity); } // 0x28d3fed7190d3a0b0x8c73e64fB323 - inline int GetNumberOfFiresInRange(float x, float y, float z, float radius) { return _i(0x50CAD495A460B305, x, y, z, radius); } // 0x50cad495a460b3050x654d93b7B323 - inline Void SetFlammabilityMultiplier(float p0) { return _i(0x8F390AC4155099BA, p0); } // 0x8f390ac4155099baB1734 - inline Void StopFireInRange(float x, float y, float z, float radius) { return _i(0x056A8A219B8E829F, x, y, z, radius); } // 0x056a8a219b8e829f0x725c7205B323 - // Returns TRUE if it found something. FALSE if not. - inline BOOL GetClosestFirePos(Vector3* outPosition, float x, float y, float z) { return _i(0x352A9F6BCF90081F, outPosition, x, y, z); } // 0x352a9f6bcf90081f0xc4977b47B323 - // BOOL isAudible = If explosion makes a sound. - // BOOL isInvisible = If the explosion is invisible or not. - // - // explosionType: https://alloc8or.re/gta5/doc/enums/eExplosionTag.txt - inline Void AddExplosion(float x, float y, float z, int explosionType, float damageScale, BOOL isAudible, BOOL isInvisible, float cameraShake, BOOL noDamage) { return _i(0xE3AD2BDBAEE269AC, x, y, z, explosionType, damageScale, isAudible, isInvisible, cameraShake, noDamage); } // 0xe3ad2bdbaee269ac0x10af5258B323 - // isAudible: If explosion makes a sound. - // isInvisible: If the explosion is invisible or not. - // explosionType: See AddExplosion. - inline Void AddOwnedExplosion(Ped ped, float x, float y, float z, int explosionType, float damageScale, BOOL isAudible, BOOL isInvisible, float cameraShake) { return _i(0x172AA1B624FA1013, ped, x, y, z, explosionType, damageScale, isAudible, isInvisible, cameraShake); } // 0x172aa1b624fa10130x27ee0d67B323 - // isAudible: If explosion makes a sound. - // isInvisible: If the explosion is invisible or not. - // explosionType: See AddExplosion. - inline Void AddExplosionWithUserVfx(float x, float y, float z, int explosionType, Hash explosionFx, float damageScale, BOOL isAudible, BOOL isInvisible, float cameraShake) { return _i(0x36DD3FE58B5E5212, x, y, z, explosionType, explosionFx, damageScale, isAudible, isInvisible, cameraShake); } // 0x36dd3fe58b5e52120xcf358946B323 - // explosionType: See AddExplosion. - inline BOOL IsExplosionInArea(int explosionType, float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x2E2EBA0EE7CED0E0, explosionType, x1, y1, z1, x2, y2, z2); } // 0x2e2eba0ee7ced0e00xfb40075bB323 - // explosionType: See AddExplosion. - inline BOOL IsExplosionActiveInArea(int explosionType, float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x6070104B699B2EF4, explosionType, x1, y1, z1, x2, y2, z2); } // 0x6070104b699b2ef40x37c388dbB323 - // explosionType: See AddExplosion. - inline BOOL IsExplosionInSphere(int explosionType, float x, float y, float z, float radius) { return _i(0xAB0F816885B0E483, explosionType, x, y, z, radius); } // 0xab0f816885b0e4830xd455a7f3B323 - // explosionType: See AddExplosion. - inline Entity GetOwnerOfExplosionInSphere(int explosionType, float x, float y, float z, float radius) { return _i(0xB3CD51E3DB86F176, explosionType, x, y, z, radius); } // 0xb3cd51e3db86f176B1290 - // explosionType: See AddExplosion, -1 for any explosion type - // - inline BOOL IsExplosionInAngledArea(int explosionType, float x1, float y1, float z1, float x2, float y2, float z2, float width) { return _i(0xA079A6C51525DC4B, explosionType, x1, y1, z1, x2, y2, z2, width); } // 0xa079a6c51525dc4b0x0128fed9B323 - // Returns a handle to the first entity within the a circle spawned inside the 2 points from a radius. - // - // explosionType: See AddExplosion. - inline Entity GetOwnerOfExplosionInAngledArea(int explosionType, float x1, float y1, float z1, float x2, float y2, float z2, float radius) { return _i(0x14BA4BA137AF6CEC, explosionType, x1, y1, z1, x2, y2, z2, radius); } // 0x14ba4ba137af6cec0xaec0d176B323 + // Starts a fire: + // + // xyz: Location of fire + // maxChildren: The max amount of times a fire can spread to other objects. Must be 25 or less, or the function will do nothing. + // isGasFire: Whether or not the fire is powered by gasoline. + inline FireId StartScriptFire(float X, float Y, float Z, int maxChildren, BOOL isGasFire) { return _i(0x6B83617E04503888, X, Y, Z, maxChildren, isGasFire); } // 0x6b83617e045038880xe7529357B323 + inline Void RemoveScriptFire(FireId fireHandle) { return _i(0x7FF548385680673F, fireHandle); } // 0x7ff548385680673f0x6b21fe26B323 + inline FireId StartEntityFire(Entity entity) { return _i(0xF6A9D9708F6F23DF, entity); } // 0xf6a9d9708f6f23df0x8928428eB323 + inline Void StopEntityFire(Entity entity) { return _i(0x7F0DD2EBBB651AFF, entity); } // 0x7f0dd2ebbb651aff0xce8c9066B323 + inline BOOL IsEntityOnFire(Entity entity) { return _i(0x28D3FED7190D3A0B, entity); } // 0x28d3fed7190d3a0b0x8c73e64fB323 + inline int GetNumberOfFiresInRange(float x, float y, float z, float radius) { return _i(0x50CAD495A460B305, x, y, z, radius); } // 0x50cad495a460b3050x654d93b7B323 + inline Void SetFlammabilityMultiplier(float p0) { return _i(0x8F390AC4155099BA, p0); } // 0x8f390ac4155099baB1734 + inline Void StopFireInRange(float x, float y, float z, float radius) { return _i(0x056A8A219B8E829F, x, y, z, radius); } // 0x056a8a219b8e829f0x725c7205B323 + // Returns TRUE if it found something. FALSE if not. + inline BOOL GetClosestFirePos(Vector3* outPosition, float x, float y, float z) { return _i(0x352A9F6BCF90081F, outPosition, x, y, z); } // 0x352a9f6bcf90081f0xc4977b47B323 + // BOOL isAudible = If explosion makes a sound. + // BOOL isInvisible = If the explosion is invisible or not. + // + // explosionType: https://alloc8or.re/gta5/doc/enums/eExplosionTag.txt + inline Void AddExplosion(float x, float y, float z, int explosionType, float damageScale, BOOL isAudible, BOOL isInvisible, float cameraShake, BOOL noDamage) { return _i(0xE3AD2BDBAEE269AC, x, y, z, explosionType, damageScale, isAudible, isInvisible, cameraShake, noDamage); } // 0xe3ad2bdbaee269ac0x10af5258B323 + // isAudible: If explosion makes a sound. + // isInvisible: If the explosion is invisible or not. + // explosionType: See AddExplosion. + inline Void AddOwnedExplosion(Ped ped, float x, float y, float z, int explosionType, float damageScale, BOOL isAudible, BOOL isInvisible, float cameraShake) { return _i(0x172AA1B624FA1013, ped, x, y, z, explosionType, damageScale, isAudible, isInvisible, cameraShake); } // 0x172aa1b624fa10130x27ee0d67B323 + // isAudible: If explosion makes a sound. + // isInvisible: If the explosion is invisible or not. + // explosionType: See AddExplosion. + inline Void AddExplosionWithUserVfx(float x, float y, float z, int explosionType, Hash explosionFx, float damageScale, BOOL isAudible, BOOL isInvisible, float cameraShake) { return _i(0x36DD3FE58B5E5212, x, y, z, explosionType, explosionFx, damageScale, isAudible, isInvisible, cameraShake); } // 0x36dd3fe58b5e52120xcf358946B323 + // explosionType: See AddExplosion. + inline BOOL IsExplosionInArea(int explosionType, float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x2E2EBA0EE7CED0E0, explosionType, x1, y1, z1, x2, y2, z2); } // 0x2e2eba0ee7ced0e00xfb40075bB323 + // explosionType: See AddExplosion. + inline BOOL IsExplosionActiveInArea(int explosionType, float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x6070104B699B2EF4, explosionType, x1, y1, z1, x2, y2, z2); } // 0x6070104b699b2ef40x37c388dbB323 + // explosionType: See AddExplosion. + inline BOOL IsExplosionInSphere(int explosionType, float x, float y, float z, float radius) { return _i(0xAB0F816885B0E483, explosionType, x, y, z, radius); } // 0xab0f816885b0e4830xd455a7f3B323 + // explosionType: See AddExplosion. + inline Entity GetOwnerOfExplosionInSphere(int explosionType, float x, float y, float z, float radius) { return _i(0xB3CD51E3DB86F176, explosionType, x, y, z, radius); } // 0xb3cd51e3db86f176B1290 + // explosionType: See AddExplosion, -1 for any explosion type + // + inline BOOL IsExplosionInAngledArea(int explosionType, float x1, float y1, float z1, float x2, float y2, float z2, float width) { return _i(0xA079A6C51525DC4B, explosionType, x1, y1, z1, x2, y2, z2, width); } // 0xa079a6c51525dc4b0x0128fed9B323 + // Returns a handle to the first entity within the a circle spawned inside the 2 points from a radius. + // + // explosionType: See AddExplosion. + inline Entity GetOwnerOfExplosionInAngledArea(int explosionType, float x1, float y1, float z1, float x2, float y2, float z2, float radius) { return _i(0x14BA4BA137AF6CEC, explosionType, x1, y1, z1, x2, y2, z2, radius); } // 0x14ba4ba137af6cec0xaec0d176B323 } namespace GRAPHICS { - // NOTE: Debugging functions are not present in the retail version of the game. - inline Void SetDebugLinesAndSpheresDrawingActive(BOOL enabled) { return _i(0x175B6BFC15CDD0C5, enabled); } // 0x175b6bfc15cdd0c50x1418ca37B323 - inline Void DrawDebugLine(float x1, float y1, float z1, float x2, float y2, float z2, int r, int g, int b, int alpha) { return _i(0x7FDFADE676AA3CB0, x1, y1, z1, x2, y2, z2, r, g, b, alpha); } // 0x7fdfade676aa3cb00xabf783abB323 - // NOTE: Debugging functions are not present in the retail version of the game. - inline Void DrawDebugLineWithTwoColours(float x1, float y1, float z1, float x2, float y2, float z2, int r1, int g1, int b1, int r2, int g2, int b2, int alpha1, int alpha2) { return _i(0xD8B9A8AC5608FF94, x1, y1, z1, x2, y2, z2, r1, g1, b1, r2, g2, b2, alpha1, alpha2); } // 0xd8b9a8ac5608ff940xe8bff632B323 - // NOTE: Debugging functions are not present in the retail version of the game. - inline Void DrawDebugSphere(float x, float y, float z, float radius, int red, int green, int blue, int alpha) { return _i(0xAAD68E1AB39DA632, x, y, z, radius, red, green, blue, alpha); } // 0xaad68e1ab39da6320x304d0eefB323 - inline Void DrawDebugBox(float x1, float y1, float z1, float x2, float y2, float z2, int r, int g, int b, int alpha) { return _i(0x083A2CA4F2E573BD, x1, y1, z1, x2, y2, z2, r, g, b, alpha); } // 0x083a2ca4f2e573bd0x8524a848B323 - // NOTE: Debugging functions are not present in the retail version of the game. - inline Void DrawDebugCross(float x, float y, float z, float size, int red, int green, int blue, int alpha) { return _i(0x73B1189623049839, x, y, z, size, red, green, blue, alpha); } // 0x73b11896230498390xb6df3709B323 - // NOTE: Debugging functions are not present in the retail version of the game. - inline Void DrawDebugText(String text, float x, float y, float z, int red, int green, int blue, int alpha) { return _i(0x3903E216620488E8, text, x, y, z, red, green, blue, alpha); } // 0x3903e216620488e80x269b006fB323 - // NOTE: Debugging functions are not present in the retail version of the game. - inline Void DrawDebugText2d(String text, float x, float y, float z, int red, int green, int blue, int alpha) { return _i(0xA3BB2E9555C05A8F, text, x, y, z, red, green, blue, alpha); } // 0xa3bb2e9555c05a8f0x528b973bB323 - // Draws a depth-tested line from one point to another. - // ---------------- - // x1, y1, z1 : Coordinates for the first point - // x2, y2, z2 : Coordinates for the second point - // r, g, b, alpha : Color with RGBA-Values - // I recommend using a predefined function to call this. - // [VB.NET] - // Public Sub DrawLine(from As Vector3, [to] As Vector3, col As Color) - // [Function].Call(Hash.DrawLine, from.X, from.Y, from.Z, [to].X, [to].Y, [to].Z, col.R, col.G, col.B, col.A) - // End Sub - // - // [C#] - // public Void DrawLine(Vector3 from, Vector3 to, Color col) - // { - // Function.Call(Hash.DrawLine, from.X, from.Y, from.Z, to.X, to.Y, to.Z, col.R, col.G, col.B, col.A); - // } - inline Void DrawLine(float x1, float y1, float z1, float x2, float y2, float z2, int red, int green, int blue, int alpha) { return _i(0x6B7256074AE34680, x1, y1, z1, x2, y2, z2, red, green, blue, alpha); } // 0x6b7256074ae346800xb3426bccB323 - // x/y/z - Location of a vertex (in world coords), presumably. - // ---------------- - // x1, y1, z1 : Coordinates for the first point - // x2, y2, z2 : Coordinates for the second point - // x3, y3, z3 : Coordinates for the third point - // r, g, b, alpha : Color with RGBA-Values - // - // Keep in mind that only one side of the drawn triangle is visible: It's the side, in which the vector-product of the vectors heads to: (b-a)x(c-a) Or (b-a)x(c-b). - // But be aware: The function seems to work somehow differently. I have trouble having them drawn in rotated orientation. Try it yourself and if you somehow succeed, please edit this and post your solution. - // I recommend using a predefined function to call this. - // [VB.NET] - // Public Sub DrawPoly(a As Vector3, b As Vector3, c As Vector3, col As Color) - // [Function].Call(Hash.DrawPoly, a.X, a.Y, a.Z, b.X, b.Y, b.Z, c.X, c.Y, c.Z, col.R, col.G, col.B, col.A) - // End Sub - // - // [C#] - // public Void DrawPoly(Vector3 a, Vector3 b, Vector3 c, Color col) - // { - // Function.Call(Hash.DrawPoly, a.X, a.Y, a.Z, b.X, b.Y, b.Z, c.X, c.Y, c.Z, col.R, col.G, col.B, col.A); - // } - // BTW: Intersecting triangles are not supported: They overlap in the order they were called. - inline Void DrawPoly(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, int red, int green, int blue, int alpha) { return _i(0xAC26716048436851, x1, y1, z1, x2, y2, z2, x3, y3, z3, red, green, blue, alpha); } // 0xac267160484368510xabd19253B323 - // Used for drawling Deadline trailing lights, see deadline.ytd - // - // p15 through p23 are values that appear to be related to illiumation, scaling, and rotation; more testing required. - // For UVW mapping (u,v,w parameters), reference your favourite internet resource for more details. - inline Void DrawTexturedPoly(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, int red, int green, int blue, int alpha, String textureDict, String textureName, float u1, float v1, float w1, float u2, float v2, float w2, float u3, float v3, float w3) { return _i(0x29280002282F1928, x1, y1, z1, x2, y2, z2, x3, y3, z3, red, green, blue, alpha, textureDict, textureName, u1, v1, w1, u2, v2, w2, u3, v3, w3); } // 0x29280002282f1928B877 - // Used for drawling Deadline trailing lights, see deadline.ytd - // - // Each vertex has its own colour that is blended/illuminated on the texture. Additionally, the R, G, and B components are floats that are int-casted internally. - // For UVW mapping (u,v,w parameters), reference your favourite internet resource for more details. - inline Void DrawTexturedPolyWithThreeColours(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, float red1, float green1, float blue1, int alpha1, float red2, float green2, float blue2, int alpha2, float red3, float green3, float blue3, int alpha3, String textureDict, String textureName, float u1, float v1, float w1, float u2, float v2, float w2, float u3, float v3, float w3) { return _i(0x736D7AA1B750856B, x1, y1, z1, x2, y2, z2, x3, y3, z3, red1, green1, blue1, alpha1, red2, green2, blue2, alpha2, red3, green3, blue3, alpha3, textureDict, textureName, u1, v1, w1, u2, v2, w2, u3, v3, w3); } // 0x736d7aa1b750856bB877 - // x,y,z = start pos - // x2,y2,z2 = end pos - // - // Draw's a 3D Box between the two x,y,z coords. - // -------------- - // Keep in mind that the edges of the box do only align to the worlds base-vectors. Therefore something like rotation cannot be applied. That means this function is pretty much useless, unless you want a inline unicolor box somewhere. - // I recommend using a predefined function to call this. - // [VB.NET] - // Public Sub DrawBox(a As Vector3, b As Vector3, col As Color) - // [Function].Call(Hash.DrawBox,a.X, a.Y, a.Z,b.X, b.Y, b.Z,col.R, col.G, col.B, col.A) - // End Sub - // - // [C#] - // public Void DrawBox(Vector3 a, Vector3 b, Color col) - // { - // Function.Call(Hash.DrawBox,a.X, a.Y, a.Z,b.X, b.Y, b.Z,col.R, col.G, col.B, col.A); - // } - inline Void DrawBox(float x1, float y1, float z1, float x2, float y2, float z2, int red, int green, int blue, int alpha) { return _i(0xD3A9971CADAC7252, x1, y1, z1, x2, y2, z2, red, green, blue, alpha); } // 0xd3a9971cadac72520xcd4d9dd5B323 - inline Void SetBackfaceculling(BOOL toggle) { return _i(0x23BA6B0C2AD7B0D3, toggle); } // 0x23ba6b0c2ad7b0d30xc44c2f44B323 - inline Void SetDepthwriting(BOOL toggle) { return _i(0xC5C8F970D4EDFF71, toggle); } // 0xc5c8f970d4edff71B877 - inline BOOL BeginTakeMissionCreatorPhoto() { return _i(0x1DD2139A9A20DCE8); } // 0x1dd2139a9a20dce80xba9ad458B323 - inline int GetStatusOfTakeMissionCreatorPhoto() { return _i(0x90A78ECAA4E78453); } // 0x90a78ecaa4e784530xadbba287B323 - inline Void FreeMemoryForMissionCreatorPhoto() { return _i(0x0A46AF8A78DC5E0A); } // 0x0a46af8a78dc5e0a0x9e553002B323 - inline BOOL LoadMissionCreatorPhoto(Any* p0, Any p1, Any p2, Any p3) { return _i(0x4862437A486F91B0, p0, p1, p2, p3); } // 0x4862437a486f91b00x56c1e488B323 - inline int GetStatusOfLoadMissionCreatorPhoto(Any* p0) { return _i(0x1670F8D05056F257, p0); } // 0x1670f8d05056f2570x226b08eaB323 - inline BOOL BeginCreateMissionCreatorPhotoPreview() { return _i(0x7FA5D82B8F58EC06); } // 0x7fa5d82b8f58ec060x1f3cadb0B323 - inline int GetStatusOfCreateMissionCreatorPhotoPreview() { return _i(0x5B0316762AFD4A64); } // 0x5b0316762afd4a640xa9dc8558B323 - inline Void FreeMemoryForMissionCreatorPhotoPreview() { return _i(0x346EF3ECAAAB149E); } // 0x346ef3ecaaab149e0x88eaf398B323 - inline BOOL BeginTakeHighQualityPhoto() { return _i(0xA67C35C56EB1BD9D); } // 0xa67c35c56eb1bd9d0x47b0c137B323 - inline int GetStatusOfTakeHighQualityPhoto() { return _i(0x0D6CA79EEEBD8CA3); } // 0x0d6ca79eeebd8ca30x65376c9bB323 - inline Void FreeMemoryForHighQualityPhoto() { return _i(0xD801CC02177FA3F1); } // 0xd801cc02177fa3f10x9cba682aB323 - inline Void SetTakenPhotoIsMugshot(BOOL toggle) { return _i(0x1BBC135A4D25EDDE, toggle); } // 0x1bbc135a4d25eddeB323 - inline Void SetArenaThemeAndVariationForTakenPhoto(Any p0, int p1) { return _i(0xF3F776ADA161E47D, p0, p1); } // 0xf3f776ada161e47dB1604 - inline Void SetOnIslandXForTakenPhoto(Any p0) { return _i(0xADD6627C4D325458, p0); } // 0xadd6627c4d325458B2189 - // 1 match in 1 script. cellphone_controller. - // p0 is -1 in scripts. - inline BOOL SaveHighQualityPhoto(int unused) { return _i(0x3DEC726C25A11BAC, unused); } // 0x3dec726c25a11bac0x3b15d33cB323 - inline int GetStatusOfSaveHighQualityPhoto() { return _i(0x0C0C4E81E1AC60A0); } // 0x0c0c4e81e1ac60a00xec5d0317B323 - inline BOOL BeginCreateLowQualityCopyOfPhoto(Any p0) { return _i(0x759650634F07B6B4, p0); } // 0x759650634f07b6b40x25d569ebB323 - inline int GetStatusOfCreateLowQualityCopyOfPhoto(int p0) { return _i(0xCB82A0BF0E3E3265, p0); } // 0xcb82a0bf0e3e32650xcfcdc518B323 - inline Void FreeMemoryForLowQualityPhoto() { return _i(0x6A12D88881435DCA); } // 0x6a12d88881435dca0x108f36ccB323 - inline Void DrawLowQualityPhotoToPhone(BOOL p0, BOOL p1) { return _i(0x1072F115DAB0717E, p0, p1); } // 0x1072f115dab0717e0xe9f2b68fB323 - // This function is hard-coded to always return 0. - inline int GetMaximumNumberOfPhotos() { return _i(0x34D23450F028B0BF); } // 0x34d23450f028b0bf0x727aa63fB323 - // This function is hard-coded to always return 96. - inline int GetMaximumNumberOfCloudPhotos() { return _i(0xDC54A7AF8B3A14EF); } // 0xdc54a7af8b3a14ef0x239272bdB323 - inline int GetCurrentNumberOfCloudPhotos() { return _i(0x473151EBC762C6DA); } // 0x473151ebc762c6da0x21dbf0c9B323 - // 2 matches across 2 scripts. Only showed in appcamera & appmedia. Both were 0. - inline BOOL QueueOperationToCreateSortedListOfPhotos(Any p0) { return _i(0x2A893980E96B659A, p0); } // 0x2a893980e96b659a0x199fabf0B323 - // 3 matches across 3 scripts. First 2 were 0, 3rd was 1. Possibly a bool. - // appcamera, appmedia, and cellphone_controller. - inline int GetStatusOfSortedListOperation(Any p0) { return _i(0xF5BED327CEA362B1, p0); } // 0xf5bed327cea362b10x596b900dB323 - inline Void ClearStatusOfSortedListOperation() { return _i(0x4AF92ACD3141D96C); } // 0x4af92acd3141d96c0xc9ef81edB323 - // This function is hard-coded to always return 0. - inline BOOL DoesThisPhotoSlotContainAValidPhoto(Any p0) { return _i(0xE791DF1F73ED2C8B, p0); } // 0xe791df1f73ed2c8b0x9d84554cB323 - // This function is hard-coded to always return 0. - inline BOOL LoadHighQualityPhoto(Any p0) { return _i(0xEC72C258667BE5EA, p0); } // 0xec72c258667be5ea0x9c106ad9B323 - // Hardcoded to always return 2. - inline int GetLoadHighQualityPhotoStatus(int p0) { return _i(0x40AFB081F8ADD4EE, p0); } // 0x40afb081f8add4ee0x762e5c5fB323 - inline Void DrawLightWithRangeex(float x, float y, float z, int r, int g, int b, float range, float intensity, float shadow) { return _i(0xF49E9A9716A04595, x, y, z, r, g, b, range, intensity, shadow); } // 0xf49e9a9716a04595B323 - inline Void DrawLightWithRange(float posX, float posY, float posZ, int colorR, int colorG, int colorB, float range, float intensity) { return _i(0xF2A1B2771A01DBD4, posX, posY, posZ, colorR, colorG, colorB, range, intensity); } // 0xf2a1b2771a01dbd40x6a396e9aB323 - // Parameters: - // * pos - coordinate where the spotlight is located - // * dir - the direction vector the spotlight should aim at from its current position - // * r,g,b - color of the spotlight - // * distance - the maximum distance the light can reach - // * brightness - the brightness of the light - // * roundness - "smoothness" of the circle edge - // * radius - the radius size of the spotlight - // * falloff - the falloff size of the light's edge (example: www.i.imgur.com/DemAWeO.jpg) - // - // Example in C# (spotlight aims at the closest vehicle): - // Vector3 myPos = Game.Player.Character.Position; - // Vehicle nearest = World.GetClosestVehicle(myPos , 1000f); - // Vector3 destinationCoords = nearest.Position; - // Vector3 dirVector = destinationCoords - myPos; - // dirVector.Normalize(); - // Function.Call(Hash.DrawSpotLight, pos.X, pos.Y, pos.Z, dirVector.X, dirVector.Y, dirVector.Z, 255, 255, 255, 100.0f, 1f, 0.0f, 13.0f, 1f); - inline Void DrawSpotLight(float posX, float posY, float posZ, float dirX, float dirY, float dirZ, int colorR, int colorG, int colorB, float distance, float brightness, float hardness, float radius, float falloff) { return _i(0xD0F64B265C8C8B33, posX, posY, posZ, dirX, dirY, dirZ, colorR, colorG, colorB, distance, brightness, hardness, radius, falloff); } // 0xd0f64b265c8c8b330xbdbc410cB323 - inline Void DrawShadowedSpotLight(float posX, float posY, float posZ, float dirX, float dirY, float dirZ, int colorR, int colorG, int colorB, float distance, float brightness, float roundness, float radius, float falloff, int shadowId) { return _i(0x5BCA583A583194DB, posX, posY, posZ, dirX, dirY, dirZ, colorR, colorG, colorB, distance, brightness, roundness, radius, falloff, shadowId); } // 0x5bca583a583194db0x32bf9598B323 - inline Void FadeUpPedLight(float p0) { return _i(0xC9B18B4619F48F7B, p0); } // 0xc9b18b4619f48f7b0x93628786B323 - inline Void UpdateLightsOnEntity(Entity entity) { return _i(0xDEADC0DEDEADC0DE, entity); } // 0xdeadc0dedeadc0de0xc12ac47aB323 - inline Void SetLightOverrideMaxIntensityScale(Any p0) { return _i(0x9641588DAB93B4B5, p0); } // 0x9641588dab93b4b5B877 - inline float GetLightOverrideMaxIntensityScale() { return _i(0x393BD2275CEB7793); } // 0x393bd2275ceb7793B1103 - // enum MarkerTypes - // { - // MarkerTypeUpsideDownCone = 0, - // MarkerTypeVerticalCylinder = 1, - // MarkerTypeThickChevronUp = 2, - // MarkerTypeThinChevronUp = 3, - // MarkerTypeCheckeredFlagRect = 4, - // MarkerTypeCheckeredFlagCircle = 5, - // MarkerTypeVerticleCircle = 6, - // MarkerTypePlaneModel = 7, - // MarkerTypeLostMCDark = 8, - // MarkerTypeLostMCLight = 9, - // MarkerTypeNumber0 = 10, - // MarkerTypeNumber1 = 11, - // MarkerTypeNumber2 = 12, - // MarkerTypeNumber3 = 13, - // MarkerTypeNumber4 = 14, - // MarkerTypeNumber5 = 15, - // MarkerTypeNumber6 = 16, - // MarkerTypeNumber7 = 17, - // MarkerTypeNumber8 = 18, - // MarkerTypeNumber9 = 19, - // MarkerTypeChevronUpx1 = 20, - // MarkerTypeChevronUpx2 = 21, - // MarkerTypeChevronUpx3 = 22, - // MarkerTypeHorizontalCircleFat = 23, - // MarkerTypeReplayIcon = 24, - // MarkerTypeHorizontalCircleSkinny = 25, - // MarkerTypeHorizontalCircleSkinny_Arrow = 26, - // MarkerTypeHorizontalSplitArrowCircle = 27, - // MarkerTypeDebugSphere = 28, - // MarkerTypeDallorSign = 29, - // MarkerTypeHorizontalBars = 30, - // MarkerTypeWolfHead = 31 - // }; - // - // dirX/Y/Z represent a heading on each axis in which the marker should face, alternatively you can rotate each axis independently with rotX/Y/Z (and set dirX/Y/Z all to 0). - // - // faceCamera - Rotates only the y-axis (the heading) towards the camera - // - // p19 - no effect, default value in script is 2 - // - // rotate - Rotates only on the y-axis (the heading) - // - // textureDict - Name of texture dictionary to load texture from (e.g. "GolfPutting") - // - // textureName - Name of texture inside dictionary to load (e.g. "PuttingMarker") - // - // drawOnEnts - Draws the marker onto any entities that intersect it - // - // basically what he said, except textureDict and textureName are totally not String, or if so, then they are always set to 0/NULL/nullptr in every script I checked, eg: - // - // bj.c: graphics::draw_marker(6, vParam0, 0f, 0f, 1f, 0f, 0f, 0f, 4f, 4f, 4f, 240, 200, 80, iVar1, 0, 0, 2, 0, 0, 0, false); - // - // his is what I used to draw an amber downward pointing chevron "V", has to be redrawn every frame. The 180 is for 180 degrees rotation around the Y axis, the 50 is alpha, assuming max is 100, but it will accept 255. - // - // GRAPHICS::DrawMarker(2, v.x, v.y, v.z + 2, 0, 0, 0, 0, 180, 0, 2, 2, 2, 255, 128, 0, 50, 0, 1, 1, 0, 0, 0, 0); - // - // - inline Void DrawMarker(int type, float posX, float posY, float posZ, float dirX, float dirY, float dirZ, float rotX, float rotY, float rotZ, float scaleX, float scaleY, float scaleZ, int red, int green, int blue, int alpha, BOOL bobUpAndDown, BOOL faceCamera, int p19, BOOL rotate, String textureDict, String textureName, BOOL drawOnEnts) { return _i(0x28477EC23D892089, type, posX, posY, posZ, dirX, dirY, dirZ, rotX, rotY, rotZ, scaleX, scaleY, scaleZ, red, green, blue, alpha, bobUpAndDown, faceCamera, p19, rotate, textureDict, textureName, drawOnEnts); } // 0x28477ec23d8920890x48d84a02B323 - inline Void DrawMarkerEx(int type, float posX, float posY, float posZ, float dirX, float dirY, float dirZ, float rotX, float rotY, float rotZ, float scaleX, float scaleY, float scaleZ, int red, int green, int blue, int alpha, BOOL bobUpAndDown, BOOL faceCamera, Any p19, BOOL rotate, String textureDict, String textureName, BOOL drawOnEnts, BOOL p24, BOOL p25) { return _i(0xE82728F0DE75D13A, type, posX, posY, posZ, dirX, dirY, dirZ, rotX, rotY, rotZ, scaleX, scaleY, scaleZ, red, green, blue, alpha, bobUpAndDown, faceCamera, p19, rotate, textureDict, textureName, drawOnEnts, p24, p25); } // 0xe82728f0de75d13aB573 - // Draws a 3D sphere, typically seen in the GTA:O freemode event "Penned In". - // Example https://imgur.com/nCbtS4H - // - // alpha - The alpha for the sphere. Goes from 0.0 to 1.0. - inline Void DrawMarkerSphere(float x, float y, float z, float radius, int red, int green, int blue, float alpha) { return _i(0x799017F9E3B10112, x, y, z, radius, red, green, blue, alpha); } // 0x799017f9e3b10112B463 - // Creates a checkpoint. Returns the handle of the checkpoint. - // - // 20/03/17 : Attention, checkpoints are already handled by the game itself, so you must not loop it like markers. - // - // Parameters: - // * type - The type of checkpoint to create. See below for a list of checkpoint types. - // * pos1 - The position of the checkpoint. - // * pos2 - The position of the next checkpoint to point to. - // * radius - The radius of the checkpoint. - // * color - The color of the checkpoint. - // * reserved - Special parameter, see below for details. Usually set to 0 in the scripts. - // - // Checkpoint types: - // 0-4---------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - // 5-9---------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - // 10-14-------Ring: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - // 15-19-------1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - // 20-24-------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - // 25-29-------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - // 30-34-------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - // 35-38-------Ring: Airplane Up, Left, Right, UpsideDown - // 39----------? - // 40----------Ring: just a ring - // 41----------? - // 42-44-------Cylinder w/ number (uses 'reserved' parameter) - // 45-47-------Cylinder no arrow or number - // - // If using type 42-44, reserved sets number / number and shape to display - // - // 0-99------------Just numbers (0-99) - // 100-109-----------------Arrow (0-9) - // 110-119------------Two arrows (0-9) - // 120-129----------Three arrows (0-9) - // 130-139----------------Circle (0-9) - // 140-149------------CycleArrow (0-9) - // 150-159----------------Circle (0-9) - // 160-169----Circle w/ pointer (0-9) - // 170-179-------Perforated ring (0-9) - // 180-189----------------Sphere (0-9) - inline int CreateCheckpoint(int type, float posX1, float posY1, float posZ1, float posX2, float posY2, float posZ2, float diameter, int red, int green, int blue, int alpha, int reserved) { return _i(0x0134F0835AB6BFCB, type, posX1, posY1, posZ1, posX2, posY2, posZ2, diameter, red, green, blue, alpha, reserved); } // 0x0134f0835ab6bfcb0xf541b690B323 - inline Void SetCheckpointInsideCylinderHeightScale(int checkpoint, float scale) { return _i(0x4B5B4DA5D79F1943, checkpoint, scale); } // 0x4b5b4da5d79f19430x80151ccfB323 - inline Void SetCheckpointInsideCylinderScale(int checkpoint, float scale) { return _i(0x44621483FF966526, checkpoint, scale); } // 0x44621483ff966526B877 - // Sets the cylinder height of the checkpoint. - // - // Parameters: - // * nearHeight - The height of the checkpoint when inside of the radius. - // * farHeight - The height of the checkpoint when outside of the radius. - // * radius - The radius of the checkpoint. - inline Void SetCheckpointCylinderHeight(int checkpoint, float nearHeight, float farHeight, float radius) { return _i(0x2707AAE9D9297D89, checkpoint, nearHeight, farHeight, radius); } // 0x2707aae9d9297d890xff0f9b22B323 - // Sets the checkpoint color. - inline Void SetCheckpointRgba(int checkpoint, int red, int green, int blue, int alpha) { return _i(0x7167371E8AD747F7, checkpoint, red, green, blue, alpha); } // 0x7167371e8ad747f70xef9c8cb3B323 - // Sets the checkpoint icon color. - inline Void SetCheckpointRgba2(int checkpoint, int red, int green, int blue, int alpha) { return _i(0xB9EA40907C680580, checkpoint, red, green, blue, alpha); } // 0xb9ea40907c6805800xa5456dbbB323 - // This does not move an existing checkpoint... so wtf. - inline Void SetCheckpointClipplaneWithPosNorm(int checkpoint, float posX, float posY, float posZ, float unkX, float unkY, float unkZ) { return _i(0xF51D36185993515D, checkpoint, posX, posY, posZ, unkX, unkY, unkZ); } // 0xf51d36185993515d0x20eabd0fB323 - inline Void SetCheckpointForceOldArrowPointing(int checkpoint) { return _i(0xFCF6788FC4860CD4, checkpoint); } // 0xfcf6788fc4860cd4B1734 - // Unknown. Called after creating a checkpoint (type: 51) in the creators. - inline Void SetCheckpointDecalRotAlignedToCameraRot(int checkpoint) { return _i(0x615D3925E87A3B26, checkpoint); } // 0x615d3925e87a3b260x1e3a3126B323 - inline Void SetCheckpointForceDirection(int checkpoint) { return _i(0xDB1EA9411C8911EC, checkpoint); } // 0xdb1ea9411c8911ecB1180 - inline Void SetCheckpointDirection(int checkpoint, float posX, float posY, float posZ) { return _i(0x3C788E7F6438754D, checkpoint, posX, posY, posZ); } // 0x3c788e7f6438754dB1180 - inline Void DeleteCheckpoint(int checkpoint) { return _i(0xF5ED37F54CD4D52E, checkpoint); } // 0xf5ed37f54cd4d52e0xb66cf3caB323 - inline Void DontRenderInGameUi(BOOL p0) { return _i(0x22A249A53034450A, p0); } // 0x22a249a53034450a0x932fdb81B323 - inline Void ForceRenderInGameUi(BOOL toggle) { return _i(0xDC459CFA0CCE245B, toggle); } // 0xdc459cfa0cce245b0x7e946e87B323 - // This function can requests texture dictonaries from following RPFs: - // scaleform_generic.rpf - // scaleform_minigames.rpf - // scaleform_minimap.rpf - // scaleform_web.rpf - // - // last param isnt a toggle - inline Void RequestStreamedTextureDict(String textureDict, BOOL p1) { return _i(0xDFA2EF8E04127DD5, textureDict, p1); } // 0xdfa2ef8e04127dd50x4c9b035fB323 - inline BOOL HasStreamedTextureDictLoaded(String textureDict) { return _i(0x0145F696AAAAD2E4, textureDict); } // 0x0145f696aaaad2e40x3f436eefB323 - inline Void SetStreamedTextureDictAsNoLongerNeeded(String textureDict) { return _i(0xBE2CACCF5A8AA805, textureDict); } // 0xbe2caccf5a8aa8050xf07dda38B323 - // Draws a rectangle on the screen. - // - // -x: The relative X point of the center of the rectangle. (0.0-1.0, 0.0 is the left edge of the screen, 1.0 is the right edge of the screen) - // - // -y: The relative Y point of the center of the rectangle. (0.0-1.0, 0.0 is the top edge of the screen, 1.0 is the bottom edge of the screen) - // - // -width: The relative width of the rectangle. (0.0-1.0, 1.0 means the whole screen width) - // - // -height: The relative height of the rectangle. (0.0-1.0, 1.0 means the whole screen height) - // - // -R: Red part of the color. (0-255) - // - // -G: Green part of the color. (0-255) - // - // -B: Blue part of the color. (0-255) - // - // -A: Alpha part of the color. (0-255, 0 means totally transparent, 255 means totally opaque) - // - // The total number of rectangles to be drawn in one frame is apparently limited to 399. - // - inline Void DrawRect(float x, float y, float width, float height, int r, int g, int b, int a, BOOL p8) { return _i(0x3A618A217E5154F0, x, y, width, height, r, g, b, a, p8); } // 0x3a618a217e5154f00xdd2bfc77B323 - // Sets a flag defining whether or not script draw commands should continue being drawn behind the pause menu. This is usually used for TV channels and other draw commands that are used with a world render target. - inline Void SetScriptGfxDrawBehindPausemenu(BOOL toggle) { return _i(0xC6372ECD45D73BCD, toggle); } // 0xc6372ecd45d73bcd0xf8fbcc25B323 - // Sets the draw order for script draw commands. - // - // Examples from decompiled scripts: - // GRAPHICS::SetScriptGfxDrawOrder(7); - // GRAPHICS::DrawRect(0.5, 0.5, 3.0, 3.0, v_4, v_5, v_6, a_0._f172, 0); - // - // GRAPHICS::SetScriptGfxDrawOrder(1); - // GRAPHICS::DrawRect(0.5, 0.5, 1.5, 1.5, 0, 0, 0, 255, 0); - inline Void SetScriptGfxDrawOrder(int drawOrder) { return _i(0x61BB1D9B3A95D802, drawOrder); } // 0x61bb1d9b3a95d8020xadf81d24B323 - // horizontalAlign: The horizontal alignment. This can be 67 ('C'), 76 ('L'), or 82 ('R'). - // verticalAlign: The vertical alignment. This can be 67 ('C'), 66 ('B'), or 84 ('T'). - // - // This function anchors script draws to a side of the safe zone. This needs to be called to make the interface independent of the player's safe zone configuration. - // - // These values are equivalent to alignX and alignY in common:/data/ui/frontend.xml, which can be used as a baseline for default alignment. - // - // Using any other value (including 0) will result in the safe zone not being taken into account for this draw. The canonical value for this is 'I' (73). - // - // For example, you can use SetScriptGfxAlign(0, 84) to only scale on the Y axis (to the top), but not change the X axis. - // - // To reset the value, use ResetScriptGfxAlign. - inline Void SetScriptGfxAlign(int horizontalAlign, int verticalAlign) { return _i(0xB8A850F20A067EB6, horizontalAlign, verticalAlign); } // 0xb8a850f20a067eb60x228a2598B323 - // This function resets the alignment set using SetScriptGfxAlign and SetScriptGfxAlignParams to the default values ('I', 'I'; 0, 0, 0, 0). - // This should be used after having used the aforementioned functions in order to not affect any other scripts attempting to draw. - inline Void ResetScriptGfxAlign() { return _i(0xE3A3DB414A373DAB); } // 0xe3a3db414a373dab0x3fe33bd6B323 - // Sets the draw offset/calculated size for SetScriptGfxAlign. If using any alignment other than left/top, the game expects the width/height to be configured using this native in order to get a proper starting position for the draw command. - inline Void SetScriptGfxAlignParams(float x, float y, float w, float h) { return _i(0xF5A2C681787E579D, x, y, w, h); } // 0xf5a2c681787e579d0x76c641e4B323 - // Calculates the effective X/Y fractions when applying the values set by SetScriptGfxAlign and SetScriptGfxAlignParams - inline Void GetScriptGfxAlignPosition(float x, float y, float* calculatedX, float* calculatedY) { return _i(0x6DD8F5AA635EB4B2, x, y, calculatedX, calculatedY); } // 0x6dd8f5aa635eb4b2B323 - // Gets the scale of safe zone. if the safe zone size scale is max, it will return 1.0. - inline float GetSafeZoneSize() { return _i(0xBAF107B6BB2C97F0); } // 0xbaf107b6bb2c97f00x3f0d1a6fB323 - // Draws a 2D sprite on the screen. - // - // Parameters: - // textureDict - Name of texture dictionary to load texture from (e.g. "CommonMenu", "MPWeaponsCommon", etc.) - // - // textureName - Name of texture to load from texture dictionary (e.g. "last_team_standing_icon", "tennis_icon", etc.) - // - // screenX/Y - Screen offset (0.5 = center) - // scaleX/Y - Texture scaling. Negative values can be used to flip the texture on that axis. (0.5 = half) - // - // heading - Texture rotation in degrees (default = 0.0) positive is clockwise, measured in degrees - // - // red,green,blue - Sprite color (default = 255/255/255) - // - // alpha - opacity level - inline Void DrawSprite(String textureDict, String textureName, float screenX, float screenY, float width, float height, float heading, int red, int green, int blue, int alpha, BOOL p11, Any p12) { return _i(0xE7FFAE5EBF23D890, textureDict, textureName, screenX, screenY, width, height, heading, red, green, blue, alpha, p11, p12); } // 0xe7ffae5ebf23d8900x1fec16b0B323 - // Used in arcade games and Beam hack minigame in Doomsday Heist. I will most certainly dive into this to try replicate arcade games. - // x position must be between 0.0 and 1.0 (1.0 being the most right side of the screen) - // y position must be between 0.0 and 1.0 (1.0 being the most bottom side of the screen) - // width 0.0 - 1.0 is the reasonable amount generally - // height 0.0 - 1.0 is the reasonable amount generally - // p6 almost always 0.0 - // p11 seems to be unknown but almost always 0 int - inline Void DrawSpriteArx(String textureDict, String textureName, float x, float y, float width, float height, float p6, int red, int green, int blue, int alpha, Any p11, Any p12) { return _i(0x2D3B147AFAD49DE0, textureDict, textureName, x, y, width, height, p6, red, green, blue, alpha, p11, p12); } // 0x2d3b147afad49de0B1290 - // Similar to _DRAW_SPRITE, but seems to be some kind of "interactive" sprite, at least used by render targets. - // These seem to be the only dicts ever requested by this native: - // - // prop_screen_biker_laptop - // Prop_Screen_GR_Disruption - // Prop_Screen_TaleOfUs - // prop_screen_nightclub - // Prop_Screen_IE_Adhawk - // prop_screen_sm_free_trade_shipping - // prop_screen_hacker_truck - // MPDesktop - // Prop_Screen_Nightclub - // And a few others - // - inline Void DrawSpriteNamedRendertarget(String textureDict, String textureName, float screenX, float screenY, float width, float height, float heading, int red, int green, int blue, int alpha, Any p11) { return _i(0x2BC54A8188768488, textureDict, textureName, screenX, screenY, width, height, heading, red, green, blue, alpha, p11); } // 0x2bc54a8188768488B877 - // Similar to DrawSprite, but allows to specify the texture coordinates used to draw the sprite. - // - // u1, v1 - texture coordinates for the top-left corner - // u2, v2 - texture coordinates for the bottom-right corner - inline Void DrawSpriteArxWithUv(String textureDict, String textureName, float x, float y, float width, float height, float u1, float v1, float u2, float v2, float heading, int red, int green, int blue, int alpha, Any p15) { return _i(0x95812F9B26074726, textureDict, textureName, x, y, width, height, u1, v1, u2, v2, heading, red, green, blue, alpha, p15); } // 0x95812f9b26074726B1868 - // Example: - // GRAPHICS::AddEntityIcon(a_0, "MP_Arrow"); - // - // I tried this and nothing happened... - inline int AddEntityIcon(Entity entity, String icon) { return _i(0x9CD43EEE12BF4DD0, entity, icon); } // 0x9cd43eee12bf4dd00xf3027d21B323 - inline Void SetEntityIconVisibility(Entity entity, BOOL toggle) { return _i(0xE0E8BEECCA96BA31, entity, toggle); } // 0xe0e8beecca96ba310xd1d2fd52B323 - inline Void SetEntityIconColor(Entity entity, int red, int green, int blue, int alpha) { return _i(0x1D5F595CCAE2E238, entity, red, green, blue, alpha); } // 0x1d5f595ccae2e2380x6ee1e946B323 - // Sets the on-screen drawing origin for draw-functions (which is normally x=0,y=0 in the upper left corner of the screen) to a world coordinate. - // From now on, the screen coordinate which displays the given world coordinate on the screen is seen as x=0,y=0. - // - // Example in C#: - // Vector3 boneCoord = somePed.GetBoneCoord(Bone.SKEL_Head); - // Function.Call(Hash.SetDrawOrigin, boneCoord.X, boneCoord.Y, boneCoord.Z, 0); - // Function.Call(Hash.DrawSprite, "helicopterhud", "hud_corner", -0.01, -0.015, 0.013, 0.013, 0.0, 255, 0, 0, 200); - // Function.Call(Hash.DrawSprite, "helicopterhud", "hud_corner", 0.01, -0.015, 0.013, 0.013, 90.0, 255, 0, 0, 200); - // Function.Call(Hash.DrawSprite, "helicopterhud", "hud_corner", -0.01, 0.015, 0.013, 0.013, 270.0, 255, 0, 0, 200); - // Function.Call(Hash.DrawSprite, "helicopterhud", "hud_corner", 0.01, 0.015, 0.013, 0.013, 180.0, 255, 0, 0, 200); - // Function.Call(Hash.ClearDrawOrigin); - // - // Result: www11.pic-upload.de/19.06.15/bkqohvil2uao.jpg - // If the pedestrian starts walking around now, the sprites are always around her head, no matter where the head is displayed on the screen. - // - // This function also effects the drawing of texts and other UI-elements. - // The effect can be reset by calling GRAPHICS::ClearDrawOrigin(). - inline Void SetDrawOrigin(float x, float y, float z, BOOL p3) { return _i(0xAA0008F3BBB8F416, x, y, z, p3); } // 0xaa0008f3bbb8f4160xe10198d5B323 - // Resets the screen's draw-origin which was changed by the function GRAPHICS::SetDrawOrigin(...) back to x=0,y=0. - // - // See GRAPHICS::SetDrawOrigin(...) for further information. - inline Void ClearDrawOrigin() { return _i(0xFF0B610F6BE0D7AF); } // 0xff0b610f6be0d7af0xdd76b263B323 - inline int SetBinkMovie(String name) { return _i(0x338D9F609FD632DB, name); } // 0x338d9f609fd632dbB1290 - inline Void PlayBinkMovie(int binkMovie) { return _i(0x70D2CC8A542A973C, binkMovie); } // 0x70d2cc8a542a973cB1290 - inline Void StopBinkMovie(int binkMovie) { return _i(0x63606A61DE68898A, binkMovie); } // 0x63606a61de68898aB1290 - inline Void ReleaseBinkMovie(int binkMovie) { return _i(0x04D950EEFA4EED8C, binkMovie); } // 0x04d950eefa4eed8cB1290 - inline Void DrawBinkMovie(int binkMovie, float p1, float p2, float p3, float p4, float p5, int r, int g, int b, int a) { return _i(0x7118E83EEB9F7238, binkMovie, p1, p2, p3, p4, p5, r, g, b, a); } // 0x7118e83eeb9f7238B1290 - // In percentage: 0.0 - 100.0 - inline Void SetBinkMovieTime(int binkMovie, float progress) { return _i(0x0CB6B3446855B57A, binkMovie, progress); } // 0x0cb6b3446855b57aB1290 - // In percentage: 0.0 - 100.0 - inline float GetBinkMovieTime(int binkMovie) { return _i(0x8E17DDD6B9D5BF29, binkMovie); } // 0x8e17ddd6b9d5bf29B1734 - // binkMovie: Is return value from _SET_BINK_MOVIE. Has something to do with bink volume? (audRequestedSettings::SetVolumeCurveScale) - inline Void SetBinkMovieVolume(int binkMovie, float value) { return _i(0xAFF33B1178172223, binkMovie, value); } // 0xaff33b1178172223B1290 - // Might be more appropriate in AUDIO? - inline Void AttachTvAudioToEntity(Entity entity) { return _i(0x845BAD77CC770633, entity); } // 0x845bad77cc7706330x784944dbB323 - inline Void SetBinkMovieAudioFrontend(int binkMovie, BOOL p1) { return _i(0xF816F2933752322D, binkMovie, p1); } // 0xf816f2933752322dB1868 - // Probably changes tvs from being a 3d audio to being "global" audio - inline Void SetTvAudioFrontend(BOOL toggle) { return _i(0x113D2C5DC57E1774, toggle); } // 0x113d2c5dc57e17740x2e0dfa35B323 - inline Void SetBinkShouldSkip(int binkMovie, BOOL bShouldSkip) { return _i(0x6805D58CAA427B72, binkMovie, bShouldSkip); } // 0x6805d58caa427b72B1290 - inline int LoadMovieMeshSet(String movieMeshSetName) { return _i(0xB66064452270E8F1, movieMeshSetName); } // 0xb66064452270e8f10x9627905cB323 - inline Void ReleaseMovieMeshSet(int movieMeshSet) { return _i(0xEB119AA014E89183, movieMeshSet); } // 0xeb119aa014e891830x4fa5501dB323 - inline int QueryMovieMeshSetState(Any p0) { return _i(0x9B6E70C5CEEF4EEB, p0); } // 0x9b6e70c5ceef4eeb0x9d5d9b38B323 - // int screenresx,screenresy; - // GetScreenResolution(&screenresx,&screenresy); - inline Void GetScreenResolution(int* x, int* y) { return _i(0x888D57E407E63624, x, y); } // 0x888d57e407e636240x29f3572fB323 - // Returns current screen resolution. - inline Void GetActualScreenResolution(int* x, int* y) { return _i(0x873C9F3104101DD3, x, y); } // 0x873c9f3104101dd3B323 - inline float GetAspectRatio(BOOL b) { return _i(0xF1307EF624A80D87, b); } // 0xf1307ef624a80d87B323 - inline float GetScreenAspectRatio() { return _i(0xB2EBE8CBC58B90E9); } // 0xb2ebe8cbc58b90e9B323 - // Setting Aspect Ratio Manually in game will return: - // - // false - for Narrow format Aspect Ratios (3:2, 4:3, 5:4, etc. ) - // true - for Wide format Aspect Ratios (5:3, 16:9, 16:10, etc. ) - // - // Setting Aspect Ratio to "Auto" in game will return "false" or "true" based on the actual set Resolution Ratio. - inline BOOL GetIsWidescreen() { return _i(0x30CF4BDA4FCB1905); } // 0x30cf4bda4fcb19050xec717aefB323 - // false = Any resolution < 1280x720 - // true = Any resolution >= 1280x720 - inline BOOL GetIsHidef() { return _i(0x84ED31191CC5D2C9); } // 0x84ed31191cc5d2c90x1c340359B323 - inline Void AdjustNextPosSizeAsNormalized169() { return _i(0xEFABC7722293DA7C); } // 0xefabc7722293da7cB323 - // Enables Night Vision. - // - // Example: - // C#: Function.Call(Hash.SetNightvision, true); - // C++: GRAPHICS::SetNightvision(true); - // - // BOOL toggle: - // true = turns night vision on for your player. - // false = turns night vision off for your player. - inline Void SetNightvision(BOOL toggle) { return _i(0x18F621F7A5B1F85D, toggle); } // 0x18f621f7a5b1f85d0xd1e5565fB323 - inline BOOL GetRequestingnightvision() { return _i(0x35FB78DC42B7BD21); } // 0x35fb78dc42b7bd210xf3a6309eB323 - inline BOOL GetUsingnightvision() { return _i(0x2202A3F42C8E5F79); } // 0x2202a3f42c8e5f790x62619061B323 - inline Void SetExposuretweak(BOOL toggle) { return _i(0xEF398BEEE4EF45F9, toggle); } // 0xef398beee4ef45f9B323 - inline Void ForceExposureReadback(BOOL toggle) { return _i(0x814AF7DCAACC597B, toggle); } // 0x814af7dcaacc597bB372 - inline Void OverrideNightvisionLightRange(float p0) { return _i(0x43FA7CBE20DAB219, p0); } // 0x43fa7cbe20dab219B1290 - inline Void SetNoiseoveride(BOOL toggle) { return _i(0xE787BF1C5CF823C9, toggle); } // 0xe787bf1c5cf823c90xd576f5ddB323 - inline Void SetNoisinessoveride(float value) { return _i(0xCB6A7C3BB17A0C67, value); } // 0xcb6a7c3bb17a0c670x046b62d9B323 - // Convert a world coordinate into its relative screen coordinate. (WorldToScreen) - // - // Returns a boolean; whether or not the operation was successful. It will return false if the coordinates given are not visible to the rendering camera. - // - // - // For .NET users... - // - // VB: - // Public Shared Function World3DToScreen2d(pos as vector3) As Vector2 - // - // Dim x2dp, y2dp As New Native.OutputArgument - // - // Native.Function.Call(Of Boolean)(Native.Hash.GetScreenCoordFromWorldCoord , pos.x, pos.y, pos.z, x2dp, y2dp) - // Return New Vector2(x2dp.GetResult(Of Single), y2dp.GetResult(Of Single)) - // - // End Function - // - // C#: - // Vector2 World3DToScreen2d(Vector3 pos) - // { - // var x2dp = new OutputArgument(); - // var y2dp = new OutputArgument(); - // - // Function.Call(Hash.GetScreenCoordFromWorldCoord , pos.X, pos.Y, pos.Z, x2dp, y2dp); - // return new Vector2(x2dp.GetResult(), y2dp.GetResult()); - // } - // //USE VERY SMALL VALUES FOR THE SCALE OF RECTS/TEXT because it is dramatically larger on screen than in 3D, e.g '0.05' small. - // - // Used to be called _WORLD3D_TO_SCREEN2D - // - // I thought we lost you from the scene forever. It does seem however that calling SetDrawOrigin then your natives, then ending it. Seems to work better for certain things such as keeping boxes around people for a predator missile e.g. - inline BOOL GetScreenCoordFromWorldCoord(float worldX, float worldY, float worldZ, float* screenX, float* screenY) { return _i(0x34E82F05DF2974F5, worldX, worldY, worldZ, screenX, screenY); } // 0x34e82f05df2974f50x1f950e4bB323 - // Returns the texture resolution of the passed texture dict+name. - // - // Note: Most texture resolutions are doubled compared to the console version of the game. - inline Vector3 GetTextureResolution(String textureDict, String textureName) { return _i(0x35736EE65BD00C11, textureDict, textureName); } // 0x35736ee65bd00c110x096daa4dB323 - // Overriding ped badge texture to a passed texture. It's synced between players (even custom textures!), don't forget to request used dict on *all* clients to make it sync properly. Can be removed by passing empty strings. - inline BOOL OverridePedCrewLogoTexture(Ped ped, String txd, String txn) { return _i(0x95EB5E34F821BABE, ped, txd, txn); } // 0x95eb5e34f821babeB877 - inline Void SetDistanceBlurStrengthOverride(float p0) { return _i(0xE2892E7E55D7073A, p0); } // 0xe2892e7e55d7073a0x455f1084B323 - // Purpose of p0 and p1 unknown. - inline Void SetFlash(float p0, float p1, float fadeIn, float duration, float fadeOut) { return _i(0x0AB84296FED9CFC6, p0, p1, fadeIn, duration, fadeOut); } // 0x0ab84296fed9cfc60x7e55a1eeB323 - inline Void DisableOcclusionThisFrame() { return _i(0x3669F1B198DCAA4F); } // 0x3669f1b198dcaa4f0x0dcc0b8bB323 - // Does not affect weapons, particles, fire/explosions, flashlights or the sun. - // When set to true, all emissive textures (including ped components that have light effects), street lights, building lights, vehicle lights, etc will all be turned off. - // - // Used in Humane Labs Heist for EMP. - // - // state: True turns off all artificial light sources in the map: buildings, street lights, car lights, etc. False turns them back on. - inline Void SetArtificialLightsState(BOOL state) { return _i(0x1268615ACE24D504, state); } // 0x1268615ace24d5040xaa2a0eafB323 - // If "blackout" is enabled, this native allows you to ignore "blackout" for vehicles. - inline Void SetArtificialVehicleLightsState(BOOL toggle) { return _i(0xE2B187C0939B3D32, toggle); } // 0xe2b187c0939b3d32B2060 - inline Void DisableHdtexThisFrame() { return _i(0xC35A6D07C93802B2); } // 0xc35a6d07c93802b2B323 - // Creates a tracked point, useful for checking the visibility of a 3D point on screen. - inline int CreateTrackedPoint() { return _i(0xE2C9439ED45DEA60); } // 0xe2c9439ed45dea600x3129c31aB323 - inline Void SetTrackedPointInfo(int point, float x, float y, float z, float radius) { return _i(0x164ECBB3CF750CB0, point, x, y, z, radius); } // 0x164ecbb3cf750cb00x28689aa4B323 - inline BOOL IsTrackedPointVisible(int point) { return _i(0xC45CCDAAC9221CA8, point); } // 0xc45ccdaac9221ca80x0bfc4f64B323 - inline Void DestroyTrackedPoint(int point) { return _i(0xB25DC90BAD56CA42, point); } // 0xb25dc90bad56ca420x14ac675fB323 - // This function is hard-coded to always return 0. - inline int SetGrassCullSphere(float p0, float p1, float p2, float p3) { return _i(0xBE197EAA669238F4, p0, p1, p2, p3); } // 0xbe197eaa669238f4B323 - // This native does absolutely nothing, just a nullsub - inline Void RemoveGrassCullSphere(int handle) { return _i(0x61F95E5BB3E0A8C6, handle); } // 0x61f95e5bb3e0a8c6B323 - inline Void ProcgrassEnableCullsphere(int handle, float x, float y, float z, float scale) { return _i(0xAE51BC858F32BA66, handle, x, y, z, scale); } // 0xae51bc858f32ba66B323 - inline Void ProcgrassDisableCullsphere(int handle) { return _i(0x649C97D52332341A, handle); } // 0x649c97d52332341aB323 - inline BOOL ProcgrassIsCullsphereEnabled(int handle) { return _i(0x2C42340F916C5930, handle); } // 0x2c42340f916c5930B323 - inline Void ProcgrassEnableAmbscalescan() { return _i(0x14FC5833464340A8); } // 0x14fc5833464340a8B323 - inline Void ProcgrassDisableAmbscalescan() { return _i(0x0218BA067D249DEA); } // 0x0218ba067d249deaB323 - inline Void DisableProcobjCreation() { return _i(0x1612C45F9E3E0D44); } // 0x1612c45f9e3e0d44B323 - inline Void EnableProcobjCreation() { return _i(0x5DEBD9C4DC995692); } // 0x5debd9c4dc995692B323 - inline Void GrassbatchEnableFlatteningExtInSphere(float x, float y, float z, Any p3, float p4, float p5, float p6, float scale) { return _i(0xAAE9BE70EC7C69AB, x, y, z, p3, p4, p5, p6, scale); } // 0xaae9be70ec7c69abB1290 - // Wraps 0xAAE9BE70EC7C69AB with FLT_MAX as p7, Jenkins: 0x73E96210? - inline Void GrassbatchEnableFlatteningInSphere(float x, float y, float z, float radius, float p4, float p5, float p6) { return _i(0x6D955F6A9E0295B1, x, y, z, radius, p4, p5, p6); } // 0x6d955f6a9e0295b1B323 - inline Void GrassbatchDisableFlattening() { return _i(0x302C91AB2D477F7E); } // 0x302c91ab2d477f7eB323 - inline Void CascadeShadowsInitSession() { return _i(0x03FC694AE06C5A20); } // 0x03fc694ae06c5a200x48f16186B323 - inline Void CascadeShadowsSetCascadeBounds(Any p0, BOOL p1, float p2, float p3, float p4, float p5, BOOL p6, float p7) { return _i(0xD2936CAB8B58FCBD, p0, p1, p2, p3, p4, p5, p6, p7); } // 0xd2936cab8b58fcbd0x84f05943B323 - inline Void CascadeShadowsSetCascadeBoundsScale(float p0) { return _i(0x5F0F3F56635809EF, p0); } // 0x5f0f3f56635809ef0x13d4abc0B323 - inline Void CascadeShadowsSetEntityTrackerScale(float p0) { return _i(0x5E9DAF5A20F15908, p0); } // 0x5e9daf5a20f159080xd2157428B323 - inline Void CascadeShadowsSetSplitZExpWeight(float p0) { return _i(0x36F6626459D91457, p0); } // 0x36f6626459d914570xc07c64c9B323 - inline Void CascadeShadowsSetBoundPosition(Any p0) { return _i(0x259BA6D4E6F808F1, p0); } // 0x259ba6d4e6f808f1B1011 - // When this is set to ON, shadows only draw as you get nearer. - // - // When OFF, they draw from a further distance. - inline Void CascadeShadowsEnableEntityTracker(BOOL toggle) { return _i(0x80ECBC0C856D3B0B, toggle); } // 0x80ecbc0c856d3b0b0xfe903d0fB323 - inline Void CascadeShadowsSetScreenSizeCheckEnabled(BOOL p0) { return _i(0x25FC3E33A31AD0C9, p0); } // 0x25fc3e33a31ad0c9B323 - // Possible values: - // "CSM_ST_POINT" - // "CSM_ST_LINEAR" - // "CSM_ST_TWOTAP" - // "CSM_ST_BOX3x3" - // "CSM_ST_BOX4x4" - // "CSM_ST_DITHER2_LINEAR" - // "CSM_ST_CUBIC" - // "CSM_ST_DITHER4" - // "CSM_ST_DITHER16" - // "CSM_ST_SOFT16" - // "CSM_ST_DITHER16_RPDB" - // "CSM_ST_POISSON16_RPDB_GNORM" - // "CSM_ST_HIGHRES_BOX4x4" - // "CSM_ST_CLOUDS_SIMPLE" - // "CSM_ST_CLOUDS_LINEAR" - // "CSM_ST_CLOUDS_TWOTAP" - // "CSM_ST_CLOUDS_BOX3x3" - // "CSM_ST_CLOUDS_BOX4x4" - // "CSM_ST_CLOUDS_DITHER2_LINEAR" - // "CSM_ST_CLOUDS_SOFT16" - // "CSM_ST_CLOUDS_DITHER16_RPDB" - // "CSM_ST_CLOUDS_POISSON16_RPDB_GNORM" - inline Void CascadeShadowsSetShadowSampleType(String type) { return _i(0xB11D94BC55F41932, type); } // 0xb11d94bc55f419320xde10ba1fB323 - inline Void CascadeShadowsClearShadowSampleType() { return _i(0x27CB772218215325); } // 0x27cb772218215325B323 - inline Void CascadeShadowsSetAircraftMode(BOOL p0) { return _i(0x6DDBF9DFFC4AC080, p0); } // 0x6ddbf9dffc4ac0800x9f470be3B323 - inline Void CascadeShadowsSetDynamicDepthMode(BOOL p0) { return _i(0xD39D13C9FEBF0511, p0); } // 0xd39d13c9febf05110x4a124267B323 - inline Void CascadeShadowsSetDynamicDepthValue(float p0) { return _i(0x02AC28F3A01FA04A, p0); } // 0x02ac28f3a01fa04a0xb19b2764B323 - inline Void CascadeShadowsEnableFreezer(BOOL p0) { return _i(0x0AE73D8DF3A762B2, p0); } // 0x0ae73d8df3a762b20x342fa2b4B323 - inline Void WaterReflectionSetScriptObjectVisibility(Any p0) { return _i(0xCA465D9CC0D231BA, p0); } // 0xca465d9cc0d231baB1011 - inline Void GolfTrailSetEnabled(BOOL toggle) { return _i(0xA51C4B86B71652AE, toggle); } // 0xa51c4b86b71652ae0x5d3bffc9B323 - // p8 seems to always be false. - inline Void GolfTrailSetPath(float p0, float p1, float p2, float p3, float p4, float p5, float p6, float p7, BOOL p8) { return _i(0x312342E1A4874F3F, p0, p1, p2, p3, p4, p5, p6, p7, p8); } // 0x312342e1a4874f3f0xd9653728B323 - inline Void GolfTrailSetRadius(float p0, float p1, float p2) { return _i(0x2485D34E50A22E84, p0, p1, p2); } // 0x2485d34e50a22e840x72ba8a14B323 - inline Void GolfTrailSetColour(int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9, int p10, int p11) { return _i(0x12995F2E53FFA601, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); } // 0x12995f2e53ffa6010x804f444cB323 - inline Void GolfTrailSetTessellation(int p0, int p1) { return _i(0xDBAA5EC848BA2D46, p0, p1); } // 0xdbaa5ec848ba2d460xbb1a1294B323 - inline Void GolfTrailSetFixedControlPointEnable(BOOL p0) { return _i(0xC0416B061F2B7E5E, p0); } // 0xc0416b061f2b7e5e0x1a1a72efB323 - // 12 matches across 4 scripts. All 4 scripts were job creators. - // - // type ranged from 0 - 2. - // p4 was always 0.2f. Likely scale. - // assuming p5 - p8 is RGBA, the graphic is always yellow (255, 255, 0, 255). - // - // Tested but noticed nothing. - inline Void GolfTrailSetFixedControlPoint(int type, float xPos, float yPos, float zPos, float p4, int red, int green, int blue, int alpha) { return _i(0xB1BB03742917A5D6, type, xPos, yPos, zPos, p4, red, green, blue, alpha); } // 0xb1bb03742917a5d60x3bb12b75B323 - // Only appeared in Golf & Golf_mp. Parameters were all ptrs - inline Void GolfTrailSetShaderParams(float p0, float p1, float p2, float p3, float p4) { return _i(0x9CFDD90B2B844BF7, p0, p1, p2, p3, p4); } // 0x9cfdd90b2b844bf70x4ea70fb4B323 - inline Void GolfTrailSetFacing(BOOL p0) { return _i(0x06F761EA47C1D3ED, p0); } // 0x06f761ea47c1d3ed0x0d830dc7B323 - inline float GolfTrailGetMaxHeight() { return _i(0xA4819F5E23E2FFAD); } // 0xa4819f5e23e2ffad0xa08b46adB323 - inline Vector3 GolfTrailGetVisualControlPoint(int p0) { return _i(0xA4664972A9B8F8BA, p0); } // 0xa4664972a9b8f8ba0xecd470f0B323 - // Toggles Heatvision on/off. - inline Void SetSeethrough(BOOL toggle) { return _i(0x7E08924259E08CE0, toggle); } // 0x7e08924259e08ce00x74d4995cB323 - inline BOOL GetUsingseethrough() { return _i(0x44B80ABAB9D80BD3); } // 0x44b80abab9d80bd30x1fe547f2B323 - inline Void SeethroughReset() { return _i(0x70A64C0234EF522C); } // 0x70a64c0234ef522c0x310e9b67B323 - inline Void SeethroughSetFadeStartdistance(float distance) { return _i(0xA78DE25577300BA1, distance); } // 0xa78de25577300ba1B573 - inline Void SeethroughSetFadeEnddistance(float distance) { return _i(0x9D75795B9DC6EBBF, distance); } // 0x9d75795b9dc6ebbfB573 - inline float SeethroughGetMaxThickness() { return _i(0x43DBAE39626CE83F); } // 0x43dbae39626ce83fB1290 - // 0.0 = you will not be able to see people behind the walls. 50.0 and more = you will see everyone through the walls. More value is "better" view. See https://gfycat.com/FirmFlippantGourami - // min: 1.0 - // max: 10000.0 - inline Void SeethroughSetMaxThickness(float thickness) { return _i(0x0C8FAC83902A62DF, thickness); } // 0x0c8fac83902a62dfB573 - inline Void SeethroughSetNoiseMin(float amount) { return _i(0xFF5992E1C9E65D05, amount); } // 0xff5992e1c9e65d05B573 - inline Void SeethroughSetNoiseMax(float amount) { return _i(0xFEBFBFDFB66039DE, amount); } // 0xfebfbfdfb66039deB573 - inline Void SeethroughSetHilightIntensity(float intensity) { return _i(0x19E50EB6E33E1D28, intensity); } // 0x19e50eb6e33e1d28B573 - inline Void SeethroughSetHighlightNoise(float noise) { return _i(0x1636D7FC127B10D2, noise); } // 0x1636d7fc127b10d2B573 - // min: 0.0 - // max: 0.75 - inline Void SeethroughSetHeatscale(int index, float heatScale) { return _i(0xD7D0B00177485411, index, heatScale); } // 0xd7d0b001774854110x654f0287B323 - inline Void SeethroughSetColorNear(int red, int green, int blue) { return _i(0x1086127B3A63505E, red, green, blue); } // 0x1086127b3a63505e0x5b2a67a8B573 - // Setter for GetMotionblurMaxVelScaler - inline Void SetMotionblurMaxVelScaler(float p0) { return _i(0xB3C641F3630BF6DA, p0); } // 0xb3c641f3630bf6da0xf6b837f0B323 - // Getter for SetMotionblurMaxVelScaler - inline float GetMotionblurMaxVelScaler() { return _i(0xE59343E9E96529E7); } // 0xe59343e9e96529e70xd906a3a9B323 - inline Void SetForceMotionblur(BOOL toggle) { return _i(0x6A51F78772175A51, toggle); } // 0x6a51f78772175a51B1011 - inline Void TogglePlayerDamageOverlay(BOOL toggle) { return _i(0xE63D7C6EECECB66B, toggle); } // 0xe63d7c6eececb66b0xd34a6cbaB323 - // Sets an value related to timecycles. - inline Void ResetAdaptation(int p0) { return _i(0xE3E2C1B4C59DBC77, p0); } // 0xe3e2c1b4c59dbc770xd8cc7221B323 - // time in ms to transition to fully blurred screen - inline BOOL TriggerScreenblurFadeIn(float transitionTime) { return _i(0xA328A24AAA6B7FDC, transitionTime); } // 0xa328a24aaa6b7fdc0x5604b890B323 - // time in ms to transition from fully blurred to normal - inline BOOL TriggerScreenblurFadeOut(float transitionTime) { return _i(0xEFACC8AEF94430D5, transitionTime); } // 0xefacc8aef94430d50x46617502B323 - inline Void DisableScreenblurFade() { return _i(0xDE81239437E8C5A8); } // 0xde81239437e8c5a80xdb7aecdaB323 - inline float GetScreenblurFadeCurrentTime() { return _i(0x5CCABFFCA31DDE33); } // 0x5ccabffca31dde330xea432a94B323 - // Returns whether screen transition to blur/from blur is running. - inline BOOL IsScreenblurFadeRunning() { return _i(0x7B226C785A52A0A9); } // 0x7b226c785a52a0a90x926b8734B323 - inline Void TogglePausedRenderphases(BOOL toggle) { return _i(0xDFC252D8A3E15AB7, toggle); } // 0xdfc252d8a3e15ab70x30ade541B323 - inline BOOL GetTogglePausedRenderphasesStatus() { return _i(0xEB3DAC2C86001E5E); } // 0xeb3dac2c86001e5e0xd4f5d07dB323 - inline Void ResetPausedRenderphases() { return _i(0xE1C8709406F2C41C); } // 0xe1c8709406f2c41c0x0113eae4B323 - inline Void GrabPausemenuOwnership() { return _i(0x851CD923176EBA7C); } // 0x851cd923176eba7c0xdcba251bB323 - inline Void SetHidofOverride(BOOL p0, BOOL p1, float nearplaneOut, float nearplaneIn, float farplaneOut, float farplaneIn) { return _i(0xBA3D65906822BED5, p0, p1, nearplaneOut, nearplaneIn, farplaneOut, farplaneIn); } // 0xba3d65906822bed50x513d444bB323 - inline Void SetLockAdaptiveDofDistance(BOOL p0) { return _i(0xB569F41F3E7E83A4, p0); } // 0xb569f41f3e7e83a4B1103 - inline BOOL PhonephotoeditorToggle(BOOL p0) { return _i(0x7AC24EAB6D74118D, p0); } // 0x7ac24eab6d74118d0xb2410eabB323 - inline BOOL PhonephotoeditorIsActive() { return _i(0xBCEDB009461DA156); } // 0xbcedb009461da1560x5ab94128B323 - inline BOOL PhonephotoeditorSetFrameTxd(String textureDict, BOOL p1) { return _i(0x27FEB5254759CDE3, textureDict, p1); } // 0x27feb5254759cde30xd63fcb3eB323 - // GRAPHICS::StartParticleFxNonLoopedAtCoord("scr_paleto_roof_impact", -140.8576f, 6420.789f, 41.1391f, 0f, 0f, 267.3957f, 0x3F800000, 0, 0, 0); - // - // Axis - Invert Axis Flags - // - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - // - // - // ------------------------------------------------------------------- - // C# - // - // Function.Call(Hash.StartParticleFxNonLoopedAtCoord, = you are calling this function. - // - // char *effectname = This is an in-game effect name, for e.g. "scr_fbi4_trucks_crash" is used to give the effects when truck crashes etc - // - // float x, y, z pos = this one is Simple, you just have to declare, where do you want this effect to take place at, so declare the ordinates - // - // float xrot, yrot, zrot = Again simple? just mention the value in case if you want the effect to rotate. - // - // float scale = is declare the scale of the effect, this may vary as per the effects for e.g 1.0f - // - // bool xaxis, yaxis, zaxis = To bool the axis values. - // - // example: - // Function.Call(Hash.StartParticleFxNonLoopedAtCoord, "scr_fbi4_trucks_crash", GTA.Game.Player.Character.Position.X, GTA.Game.Player.Character.Position.Y, GTA.Game.Player.Character.Position.Z + 4f, 0, 0, 0, 5.5f, 0, 0, 0); - inline BOOL StartParticleFxNonLoopedAtCoord(String effectName, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis) { return _i(0x25129531F77B9ED3, effectName, xPos, yPos, zPos, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis); } // 0x25129531f77b9ed30xdd79d679B323 - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - inline BOOL StartNetworkedParticleFxNonLoopedAtCoord(String effectName, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis, BOOL p11) { return _i(0xF56B8137DF10135D, effectName, xPos, yPos, zPos, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, p11); } // 0xf56b8137df10135d0x633f8c48B323 - // GRAPHICS::StartParticleFxNonLoopedOnPedBone("scr_sh_bong_smoke", PLAYER::PlayerPedId(), -0.025f, 0.13f, 0f, 0f, 0f, 0f, 31086, 0x3F800000, 0, 0, 0); - // - // Axis - Invert Axis Flags - // - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - inline BOOL StartParticleFxNonLoopedOnPedBone(String effectName, Ped ped, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, int boneIndex, float scale, BOOL axisX, BOOL axisY, BOOL axisZ) { return _i(0x0E7E72961BA18619, effectName, ped, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ); } // 0x0e7e72961ba186190x53daef4eB323 - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - inline BOOL StartNetworkedParticleFxNonLoopedOnPedBone(String effectName, Ped ped, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, int boneIndex, float scale, BOOL axisX, BOOL axisY, BOOL axisZ) { return _i(0xA41B6A43642AC2CF, effectName, ped, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ); } // 0xa41b6a43642ac2cf0x161780c1B323 - // Starts a particle effect on an entity for example your player. - // - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - // - // Example: - // C#: - // Function.Call(Hash.RequestNamedPtfxAsset, "scr_rcbarry2"); Function.Call(Hash.UseParticleFxAsset, "scr_rcbarry2"); Function.Call(Hash.StartParticleFxNonLoopedOnEntity, "scr_clown_appears", Game.Player.Character, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 1.0, false, false, false); - // - // Internally this calls the same function as GRAPHICS::StartParticleFxNonLoopedOnPedBone - // however it uses -1 for the specified bone index, so it should be possible to start a non looped fx on an entity bone using that native - // - // -can confirm StartParticleFxNonLoopedOnPedBone does NOT work on vehicle bones. - inline BOOL StartParticleFxNonLoopedOnEntity(String effectName, Entity entity, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, float scale, BOOL axisX, BOOL axisY, BOOL axisZ) { return _i(0x0D53A3B8DA0809D2, effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, scale, axisX, axisY, axisZ); } // 0x0d53a3b8da0809d20x9604dad4B323 - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - inline BOOL StartNetworkedParticleFxNonLoopedOnEntity(String effectName, Entity entity, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, float scale, BOOL axisX, BOOL axisY, BOOL axisZ) { return _i(0xC95EB1DB6E92113D, effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, scale, axisX, axisY, axisZ); } // 0xc95eb1db6e92113d0x469a2b4aB323 - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - inline BOOL StartParticleFxNonLoopedOnEntityBone(String effectName, Entity entity, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, int boneIndex, float scale, BOOL axisX, BOOL axisY, BOOL axisZ) { return _i(0x02B1F2A72E0F5325, effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ); } // 0x02b1f2a72e0f5325B2189 - // only works on some fx's, not networked - inline Void SetParticleFxNonLoopedColour(float r, float g, float b) { return _i(0x26143A59EF48B262, r, g, b); } // 0x26143a59ef48b2620x7b689e20B323 - // Usage example for C#: - // - // Function.Call(Hash.SetParticleFxNonLoopedAlpha, new InputArgument[] { 0.1f }); - // - // Note: the argument alpha ranges from 0.0f-1.0f ! - inline Void SetParticleFxNonLoopedAlpha(float alpha) { return _i(0x77168D722C58B2FC, alpha); } // 0x77168d722c58b2fc0x497eaff2B323 - inline Void SetParticleFxNonLoopedScale(float scale) { return _i(0xB7EF5850C39FABCA, scale); } // 0xb7ef5850c39fabcaB2802 - inline Void SetParticleFxNonLoopedEmitterSize(float p0, float p1, float scale) { return _i(0x1E2E01C00837D26E, p0, p1, scale); } // 0x1e2e01c00837d26eB2699 - // Used only once in the scripts (taxi_clowncar) - inline Void SetParticleFxForceVehicleInterior(BOOL toggle) { return _i(0x8CDE909A0370BB3A, toggle); } // 0x8cde909a0370bb3aB323 - // GRAPHICS::StartParticleFxLoopedAtCoord("scr_fbi_falling_debris", 93.7743f, -749.4572f, 70.86904f, 0f, 0f, 0f, 0x3F800000, 0, 0, 0, 0) - // - // - // p11 seems to be always 0 - // - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - inline int StartParticleFxLoopedAtCoord(String effectName, float x, float y, float z, float xRot, float yRot, float zRot, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis, BOOL p11) { return _i(0xE184F4F0DC5910E7, effectName, x, y, z, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, p11); } // 0xe184f4f0dc5910e70xd348e3e6B323 - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - inline int StartParticleFxLoopedOnPedBone(String effectName, Ped ped, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, int boneIndex, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis) { return _i(0xF28DA9F38CD1787C, effectName, ped, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis); } // 0xf28da9f38cd1787c0xf8fc196fB323 - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - inline int StartParticleFxLoopedOnEntity(String effectName, Entity entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis) { return _i(0x1AE42C1660FD6517, effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis); } // 0x1ae42c1660fd65170x0d06ff62B323 - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - inline int StartParticleFxLoopedOnEntityBone(String effectName, Entity entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, int boneIndex, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis) { return _i(0xC6EB449E33977F0B, effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis); } // 0xc6eb449e33977f0b0x23bf0f9bB323 - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - inline int StartNetworkedParticleFxLoopedOnEntity(String effectName, Entity entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis, float r, float g, float b, float a) { return _i(0x6F60E89A7B64EE1D, effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, r, g, b, a); } // 0x6f60e89a7b64ee1d0x110752b2B323 - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - inline int StartNetworkedParticleFxLoopedOnEntityBone(String effectName, Entity entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, int boneIndex, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis, float r, float g, float b, float a) { return _i(0xDDE23F30CC5A0F03, effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis, r, g, b, a); } // 0xdde23f30cc5a0f030xf478efcfB323 - // p1 is always 0 in the native scripts - inline Void StopParticleFxLooped(int ptfxHandle, BOOL p1) { return _i(0x8F75998877616996, ptfxHandle, p1); } // 0x8f759988776169960xd245455bB323 - inline Void RemoveParticleFx(int ptfxHandle, BOOL p1) { return _i(0xC401503DFE8D53CF, ptfxHandle, p1); } // 0xc401503dfe8d53cf0x6ba48c7eB323 - inline Void RemoveParticleFxFromEntity(Entity entity) { return _i(0xB8FEAEEBCC127425, entity); } // 0xb8feaeebcc1274250xcede52e9B323 - inline Void RemoveParticleFxInRange(float X, float Y, float Z, float radius) { return _i(0xDD19FA1C6D657305, X, Y, Z, radius); } // 0xdd19fa1c6d6573050x7eb8f275B323 - inline Void ForceParticleFxInVehicleInterior(Any p0, Any p1) { return _i(0xBA0127DA25FD54C9, p0, p1); } // 0xba0127da25fd54c9B372 - inline BOOL DoesParticleFxLoopedExist(int ptfxHandle) { return _i(0x74AFEF0D2E1E409B, ptfxHandle); } // 0x74afef0d2e1e409b0xcbf91d2aB323 - inline Void SetParticleFxLoopedOffsets(int ptfxHandle, float x, float y, float z, float rotX, float rotY, float rotZ) { return _i(0xF7DDEBEC43483C43, ptfxHandle, x, y, z, rotX, rotY, rotZ); } // 0xf7ddebec43483c430x641f7790B323 - inline Void SetParticleFxLoopedEvolution(int ptfxHandle, String propertyName, float amount, BOOL noNetwork) { return _i(0x5F0C4B5B1C393BE2, ptfxHandle, propertyName, amount, noNetwork); } // 0x5f0c4b5b1c393be20x1cbc1373B323 - // only works on some fx's - // - // p4 = 0 - inline Void SetParticleFxLoopedColour(int ptfxHandle, float r, float g, float b, BOOL p4) { return _i(0x7F8F65877F88783B, ptfxHandle, r, g, b, p4); } // 0x7f8f65877f88783b0x5219d530B323 - inline Void SetParticleFxLoopedAlpha(int ptfxHandle, float alpha) { return _i(0x726845132380142E, ptfxHandle, alpha); } // 0x726845132380142e0x5ed49be1B323 - inline Void SetParticleFxLoopedScale(int ptfxHandle, float scale) { return _i(0xB44250AAA456492D, ptfxHandle, scale); } // 0xb44250aaa456492d0x099b8b49B323 - inline Void SetParticleFxLoopedFarClipDist(int ptfxHandle, float range) { return _i(0xDCB194B85EF7B541, ptfxHandle, range); } // 0xdcb194b85ef7b5410x233de879B323 - inline Void SetParticleFxCamInsideVehicle(BOOL p0) { return _i(0xEEC4047028426510, p0); } // 0xeec40470284265100x19ec0001B323 - inline Void SetParticleFxCamInsideNonplayerVehicle(Vehicle vehicle, BOOL p1) { return _i(0xACEE6F360FC1F6B6, vehicle, p1); } // 0xacee6f360fc1f6b60x6b125a02B323 - inline Void SetParticleFxShootoutBoat(Any p0) { return _i(0x96EF97DAEB89BEF5, p0); } // 0x96ef97daeb89bef50xd938dee0B323 - inline Void ClearParticleFxShootoutBoat() { return _i(0x2A251AA48B2B46DB); } // 0x2a251aa48b2b46dbB323 - inline Void SetParticleFxBloodScale(Any p0) { return _i(0x908311265D42A820, p0); } // 0x908311265d42a820B323 - inline Void DisableInWaterPtfx(BOOL toggle) { return _i(0xCFD16F0DB5A3535C, toggle); } // 0xcfd16f0db5a3535cB2060 - inline Void DisableDownwashPtfx(BOOL toggle) { return _i(0x5F6DF3D92271E8A1, toggle); } // 0x5f6df3d92271e8a1B323 - inline Void SetParticleFxSlipstreamLodrangeScale(float scale) { return _i(0x2B40A97646381508, scale); } // 0x2b40a97646381508B1011 - // Creates cartoon effect when Michel smokes the weed - inline Void EnableClownBloodVfx(BOOL toggle) { return _i(0xD821490579791273, toggle); } // 0xd8214905797912730xc61c75e9B323 - // Creates a motion-blur sort of effect, this native does not seem to work, however by using the `START_SCREEN_EFFECT` native with `DrugsMichaelAliensFight` as the effect parameter, you should be able to get the effect. - inline Void EnableAlienBloodVfx(BOOL toggle) { return _i(0x9DCE1F0F78260875, toggle); } // 0x9dce1f0f782608750xce8b8748B323 - inline Void SetParticleFxBulletImpactScale(float scale) { return _i(0x27E32866E9A5C416, scale); } // 0x27e32866e9a5c4160xc1ad5ddfB323 - inline Void SetParticleFxBulletImpactLodrangeScale(float p0) { return _i(0xBB90E12CAC1DAB25, p0); } // 0xbb90e12cac1dab250x3968e915B323 - inline Void SetParticleFxBulletTraceNoAngleReject(BOOL p0) { return _i(0xCA4AE345A153D573, p0); } // 0xca4ae345a153d5730x64ba4648B323 - inline Void SetParticleFxBangScrapeLodrangeScale(float p0) { return _i(0x54E22EA2C1956A8D, p0); } // 0x54e22ea2c1956a8d0x8be3d47fB323 - inline Void SetParticleFxFootLodrangeScale(float p0) { return _i(0x949F397A288B28B3, p0); } // 0x949f397a288b28b30xe3880f5aB323 - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - inline Void SetParticleFxFootOverrideName(String p0) { return _i(0xBA3D194057C79A7B, p0); } // 0xba3d194057c79a7bB877 - inline Void SetSkidmarkRangeScale(float scale) { return _i(0x5DBF05DB5926D089, scale); } // 0x5dbf05db5926d089B1011 - inline Void SetPtfxForceVehicleInteriorFlag(Any p0) { return _i(0xC6730E0D14E50703, p0); } // 0xc6730e0d14e50703B2545 - inline Void RegisterPostfxBulletImpact(float weaponWorldPosX, float weaponWorldPosY, float weaponWorldPosZ, float intensity) { return _i(0x170911F37F646F29, weaponWorldPosX, weaponWorldPosY, weaponWorldPosZ, intensity); } // 0x170911f37f646f29B2802 - inline Void ForcePostfxBulletImpactsAfterHud(BOOL p0) { return _i(0x9B079E5221D984D3, p0); } // 0x9b079e5221d984d3B323 - // From the b678d decompiled scripts: - // - // GRAPHICS::UseParticleFxAsset("FM_Mission_Controler"); - // GRAPHICS::UseParticleFxAsset("scr_apartment_mp"); - // GRAPHICS::UseParticleFxAsset("scr_indep_fireworks"); - // GRAPHICS::UseParticleFxAsset("scr_mp_cig_plane"); - // GRAPHICS::UseParticleFxAsset("scr_mp_creator"); - // GRAPHICS::UseParticleFxAsset("scr_ornate_heist"); - // GRAPHICS::UseParticleFxAsset("scr_prison_break_heist_station"); - // - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - inline Void UseParticleFxAsset(String name) { return _i(0x6C38AF3693A69A91, name); } // 0x6c38af3693a69a910x9c720b61B323 - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - inline Void SetParticleFxOverride(String oldAsset, String newAsset) { return _i(0xEA1E2D93F6F75ED9, oldAsset, newAsset); } // 0xea1e2d93f6f75ed90xc92719a7B323 - // Resets the effect of SetParticleFxOverride - // - // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - inline Void ResetParticleFxOverride(String name) { return _i(0x89C8553DD3274AAE, name); } // 0x89c8553dd3274aae0x9e8d8b72B323 - inline Void SetWeatherPtfxUseOverrideSettings(BOOL p0) { return _i(0xA46B73FAA3460AE1, p0); } // 0xa46b73faa3460ae1B323 - inline Void SetWeatherPtfxOverrideCurrLevel(float p0) { return _i(0xF78B803082D4386F, p0); } // 0xf78b803082d4386fB323 - inline Void WashDecalsInRange(float x, float y, float z, float range, float p4) { return _i(0x9C30613D50A6ADEF, x, y, z, range, p4); } // 0x9c30613d50a6adef0xdeecbc57B323 - inline Void WashDecalsFromVehicle(Vehicle vehicle, float p1) { return _i(0x5B712761429DBC14, vehicle, p1); } // 0x5b712761429dbc140x2929f11aB323 - // Fades nearby decals within the range specified - inline Void FadeDecalsInRange(float x, float y, float z, float p3, float p4) { return _i(0xD77EDADB0420E6E0, x, y, z, p3, p4); } // 0xd77edadb0420e6e00xf81e884aB323 - // Removes all decals in range from a position, it includes the bullet holes, blood pools, petrol... - inline Void RemoveDecalsInRange(float x, float y, float z, float range) { return _i(0x5D6B2D4830A67C62, x, y, z, range); } // 0x5d6b2d4830a67c620x06a619a0B323 - inline Void RemoveDecalsFromObject(Object obj) { return _i(0xCCF71CBDDF5B6CB9, obj); } // 0xccf71cbddf5b6cb90x8b67dca7B323 - inline Void RemoveDecalsFromObjectFacing(Object obj, float x, float y, float z) { return _i(0xA6F6F70FDC6D144C, obj, x, y, z); } // 0xa6f6f70fdc6d144c0xf4999a55B323 - inline Void RemoveDecalsFromVehicle(Vehicle vehicle) { return _i(0xE91F1B65F2B48D57, vehicle); } // 0xe91f1b65f2b48d570x831d06caB323 - // decal types: - // - // public enum DecalTypes - // { - // splatters_blood = 1010, - // splatters_blood_dir = 1015, - // splatters_blood_mist = 1017, - // splatters_mud = 1020, - // splatters_paint = 1030, - // splatters_water = 1040, - // splatters_water_hydrant = 1050, - // splatters_blood2 = 1110, - // weapImpact_metal = 4010, - // weapImpact_concrete = 4020, - // weapImpact_mattress = 4030, - // weapImpact_mud = 4032, - // weapImpact_wood = 4050, - // weapImpact_sand = 4053, - // weapImpact_cardboard = 4040, - // weapImpact_melee_glass = 4100, - // weapImpact_glass_blood = 4102, - // weapImpact_glass_blood2 = 4104, - // weapImpact_shotgun_paper = 4200, - // weapImpact_shotgun_mattress, - // weapImpact_shotgun_metal, - // weapImpact_shotgun_wood, - // weapImpact_shotgun_dirt, - // weapImpact_shotgun_tvscreen, - // weapImpact_shotgun_tvscreen2, - // weapImpact_shotgun_tvscreen3, - // weapImpact_melee_concrete = 4310, - // weapImpact_melee_wood = 4312, - // weapImpact_melee_metal = 4314, - // burn1 = 4421, - // burn2, - // burn3, - // burn4, - // burn5, - // bang_concrete_bang = 5000, - // bang_concrete_bang2, - // bang_bullet_bang, - // bang_bullet_bang2 = 5004, - // bang_glass = 5031, - // bang_glass2, - // solidPool_water = 9000, - // solidPool_blood, - // solidPool_oil, - // solidPool_petrol, - // solidPool_mud, - // porousPool_water, - // porousPool_blood, - // porousPool_oil, - // porousPool_petrol, - // porousPool_mud, - // porousPool_water_ped_drip, - // liquidTrail_water = 9050 - // } - inline int AddDecal(int decalType, float posX, float posY, float posZ, float p4, float p5, float p6, float p7, float p8, float p9, float width, float height, float rCoef, float gCoef, float bCoef, float opacity, float timeout, BOOL p17, BOOL p18, BOOL p19) { return _i(0xB302244A1839BDAD, decalType, posX, posY, posZ, p4, p5, p6, p7, p8, p9, width, height, rCoef, gCoef, bCoef, opacity, timeout, p17, p18, p19); } // 0xb302244a1839bdad0xead0c412B323 - inline int AddPetrolDecal(float x, float y, float z, float groundLvl, float width, float transparency) { return _i(0x4F5212C7AD880DF8, x, y, z, groundLvl, width, transparency); } // 0x4f5212c7ad880df80x1259df42B323 - inline int AddOilDecal(float x, float y, float z, float groundLvl, float width, float transparency) { return _i(0x126D7F89FE859A5E, x, y, z, groundLvl, width, transparency); } // 0x126d7f89fe859a5eB2699 - inline Void StartPetrolTrailDecals(float p0) { return _i(0x99AC7F0D8B9C893D, p0); } // 0x99ac7f0d8b9c893d0xe3938b0bB323 - inline Void AddPetrolTrailDecalInfo(float x, float y, float z, float p3) { return _i(0x967278682CB6967A, x, y, z, p3); } // 0x967278682cb6967a0xbaec6addB323 - inline Void EndPetrolTrailDecals() { return _i(0x0A123435A26C36CD); } // 0x0a123435a26c36cd0xccca6855B323 - inline Void RemoveDecal(int decal) { return _i(0xED3F346429CCD659, decal); } // 0xed3f346429ccd6590xa4363188B323 - inline BOOL IsDecalAlive(int decal) { return _i(0xC694D74949CAFD0C, decal); } // 0xc694d74949cafd0c0xcdd4a61aB323 - inline float GetDecalWashLevel(int decal) { return _i(0x323F647679A09103, decal); } // 0x323f647679a091030x054448efB323 - inline Void SetDisablePetrolDecalsIgnitingThisFrame() { return _i(0xD9454B5752C857DC); } // 0xd9454b5752c857dc0xeab6417cB323 - inline Void SetDisablePetrolDecalsRecyclingThisFrame() { return _i(0x27CFB1B1E078CB2D); } // 0x27cfb1b1e078cb2d0xc2703b88B323 - inline Void SetDisableDecalRenderingThisFrame() { return _i(0x4B5CFC83122DF602); } // 0x4b5cfc83122df6020xa706e84dB323 - inline BOOL GetIsPetrolDecalInRange(float xCoord, float yCoord, float zCoord, float radius) { return _i(0x2F09F7976C512404, xCoord, yCoord, zCoord, radius); } // 0x2f09f7976c5124040x242c6a04B323 - inline Void PatchDecalDiffuseMap(int decalType, String textureDict, String textureName) { return _i(0x8A35C742130C6080, decalType, textureDict, textureName); } // 0x8a35c742130c60800x335695cfB323 - inline Void UnpatchDecalDiffuseMap(int decalType) { return _i(0xB7ED70C49521A61D, decalType); } // 0xb7ed70c49521a61d0x7b786555B323 - inline Void MoveVehicleDecals(Any p0, Any p1) { return _i(0x84C8D7C2D30D3280, p0, p1); } // 0x84c8d7c2d30d32800xce9e6cf2B323 - // boneIndex is always chassis_dummy in the scripts. The x/y/z params are location relative to the chassis bone. - inline BOOL AddVehicleCrewEmblem(Vehicle vehicle, Ped ped, int boneIndex, float x1, float x2, float x3, float y1, float y2, float y3, float z1, float z2, float z3, float scale, Any p13, int alpha) { return _i(0x428BDCB9DA58DA53, vehicle, ped, boneIndex, x1, x2, x3, y1, y2, y3, z1, z2, z3, scale, p13, alpha); } // 0x428bdcb9da58da530x12077738B323 - inline BOOL AbortVehicleCrewEmblemRequest(int* p0) { return _i(0x82ACC484FFA3B05F, p0); } // 0x82acc484ffa3b05fB372 - inline Void RemoveVehicleCrewEmblem(Vehicle vehicle, int p1) { return _i(0xD2300034310557E4, vehicle, p1); } // 0xd2300034310557e40x667046a8B323 - inline int GetVehicleCrewEmblemRequestState(Vehicle vehicle, int p1) { return _i(0xFE26117A5841B2FF, vehicle, p1); } // 0xfe26117a5841b2ff0x4f4d76e8B323 - inline BOOL DoesVehicleHaveCrewEmblem(Vehicle vehicle, int p1) { return _i(0x060D935D3981A275, vehicle, p1); } // 0x060d935d3981a2750x6d58f73bB323 - inline Void DisableCompositeShotgunDecals(BOOL toggle) { return _i(0x0E4299C549F0D1F1, toggle); } // 0x0e4299c549f0d1f10x9babcba4B323 - inline Void DisableScuffDecals(BOOL toggle) { return _i(0x02369D5C8A51FDCF, toggle); } // 0x02369d5c8a51fdcf0xfdf6d8daB323 - inline Void SetDecalBulletImpactRangeScale(float p0) { return _i(0x46D1A61A21F566FC, p0); } // 0x46d1a61a21f566fc0x2056a015B323 - inline Void OverrideInteriorSmokeName(String name) { return _i(0x2A2A52824DB96700, name); } // 0x2a2a52824db967000x0f486429B323 - inline Void OverrideInteriorSmokeLevel(float level) { return _i(0x1600FD8CF72EBC12, level); } // 0x1600fd8cf72ebc120xd87cc710B323 - inline Void OverrideInteriorSmokeEnd() { return _i(0xEFB55E7C25D3B3BE); } // 0xefb55e7c25d3b3be0xe29ee145B323 - // Used with 'NG_filmnoir_BW{01,02}' timecycles and the "NOIR_FILTER_SOUNDS" audioref. - inline Void RegisterNoirLensEffect() { return _i(0xA44FF770DFBC5DAE); } // 0xa44ff770dfbc5daeB323 - inline Void DisableVehicleDistantlights(BOOL toggle) { return _i(0xC9F98AC1884E73A2, toggle); } // 0xc9f98ac1884e73a20x7cfae36fB323 - inline Void RenderShadowedLightsWithNoShadows(BOOL p0) { return _i(0x03300B57FCAC6DDB, p0); } // 0x03300b57fcac6ddb0x60f72371B323 - inline Void RequestEarlyLightCheck() { return _i(0x98EDF76A7271E4F2); } // 0x98edf76a7271e4f2B323 - // Forces footstep tracks on all surfaces. - inline Void UseSnowFootVfxWhenUnsheltered(BOOL toggle) { return _i(0xAEEDAD1420C65CC0, toggle); } // 0xaeedad1420c65cc00xc53576caB323 - // Forces vehicle trails on all surfaces. - inline Void UseSnowWheelVfxWhenUnsheltered(BOOL toggle) { return _i(0x4CC7F0FEA5283FE0, toggle); } // 0x4cc7f0fea5283fe00x7158b1eaB323 - inline Void DisableRegionVfx(Any p0) { return _i(0xEFD97FF47B745B8D, p0); } // 0xefd97ff47b745b8dB791 - // Only one match in the scripts: - // - // GRAPHICS::PresetInteriorAmbientCache("int_carrier_hanger"); - inline Void PresetInteriorAmbientCache(String timecycleModifierName) { return _i(0xD7021272EB0A451E, timecycleModifierName); } // 0xd7021272eb0a451e0x137e3e24B323 - // Loads the specified timecycle modifier. Modifiers are defined separately in another file (e.g. "timecycle_mods_1.xml") - // - // Parameters: - // modifierName - The modifier to load (e.g. "V_FIB_IT3", "scanline_cam", etc.) - // - // Full list of timecycle modifiers by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/timecycleModifiers.json - inline Void SetTimecycleModifier(String modifierName) { return _i(0x2C933ABF17A1DF41, modifierName); } // 0x2c933abf17a1df410xa81f3638B323 - inline Void SetTimecycleModifierStrength(float strength) { return _i(0x82E7FFCD5B2326B3, strength); } // 0x82e7ffcd5b2326b30x458f4f45B323 - // Full list of timecycle modifiers by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/timecycleModifiers.json - inline Void SetTransitionTimecycleModifier(String modifierName, float transition) { return _i(0x3BCF567485E1971C, modifierName, transition); } // 0x3bcf567485e1971c0xbb2ba72aB323 - inline Void SetTransitionOutOfTimecycleModifier(float strength) { return _i(0x1CBA05AE7BD7EE05, strength); } // 0x1cba05ae7bd7ee050x56345f6bB323 - inline Void ClearTimecycleModifier() { return _i(0x0F07E7745A236711); } // 0x0f07e7745a2367110x8d8df8eeB323 - // Only use for this in the PC scripts is: - // - // if (GRAPHICS::GetTimecycleModifierIndex() != -1) - inline int GetTimecycleModifierIndex() { return _i(0xFDF3D97C674AFB66); } // 0xfdf3d97c674afb660x594feec4B323 - inline int GetTimecycleTransitionModifierIndex() { return _i(0x459FD2C8D0AB78BC); } // 0x459fd2c8d0ab78bc0x03c44e4bB323 - inline BOOL GetIsTimecycleTransitioningOut() { return _i(0x98D18905BF723B99); } // 0x98d18905bf723b99B1493 - inline Void PushTimecycleModifier() { return _i(0x58F735290861E6B4); } // 0x58f735290861e6b40x7e082045B323 - inline Void PopTimecycleModifier() { return _i(0x3C8938D7D872211E); } // 0x3c8938d7d872211e0x79d7d235B323 - inline Void SetCurrentPlayerTcmodifier(String modifierName) { return _i(0xBBF327DED94E4DEB, modifierName); } // 0xbbf327ded94e4deb0x85ba15a4B323 - inline Void SetPlayerTcmodifierTransition(float value) { return _i(0xBDEB86F4D5809204, value); } // 0xbdeb86f4d58092040x9559bb38B323 - inline Void SetNextPlayerTcmodifier(String modifierName) { return _i(0xBF59707B3E5ED531, modifierName); } // 0xbf59707b3e5ed5310x554ba16eB323 - inline Void AddTcmodifierOverride(String modifierName1, String modifierName2) { return _i(0x1A8E2C8B9CF4549C, modifierName1, modifierName2); } // 0x1a8e2c8b9cf4549c0xe8f538b5B323 - inline Void ClearAllTcmodifierOverrides(String p0) { return _i(0x15E33297C3E8DC60, p0); } // 0x15e33297c3e8dc60B323 - // Full list of timecycle modifiers by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/timecycleModifiers.json - inline Void SetExtraTcmodifier(String modifierName) { return _i(0x5096FD9CCB49056D, modifierName); } // 0x5096fd9ccb49056dB323 - // Clears the secondary timecycle modifier usually set with _SET_EXTRA_TIMECYCLE_MODIFIER - inline Void ClearExtraTcmodifier() { return _i(0x92CCC17A7A2285DA); } // 0x92ccc17a7a2285daB323 - // See GetTimecycleModifierIndex for use, works the same just for the secondary timecycle modifier. - // Returns an integer representing the Timecycle modifier - inline int GetExtraTcmodifier() { return _i(0xBB0527EC6341496D); } // 0xbb0527ec6341496dB323 - // The same as SetTimecycleModifierStrength but for the secondary timecycle modifier. - inline Void EnableMoonCycleOverride(float strength) { return _i(0x2C328AF17210F009, strength); } // 0x2c328af17210f009B323 - // Resets the extra timecycle modifier strength normally set with 0x2C328AF17210F009 - inline Void DisableMoonCycleOverride() { return _i(0x2BF72AD5B41AA739); } // 0x2bf72ad5b41aa739B323 - inline int RequestScaleformMovie(String scaleformName) { return _i(0x11FE353CF9733E6F, scaleformName); } // 0x11fe353cf9733e6f0xc67e3dcbB323 - // Another RequestScaleformMovie equivalent. - inline int RequestScaleformMovieWithIgnoreSuperWidescreen(String scaleformName) { return _i(0x65E7E78842E74CDB, scaleformName); } // 0x65e7e78842e74cdbB372 - inline int RequestScaleformMovieInstance(String scaleformName) { return _i(0xC514489CFB8AF806, scaleformName); } // 0xc514489cfb8af8060x7cc8057dB323 - // Similar to RequestScaleformMovie, but seems to be some kind of "interactive" scaleform movie? - // - // These seem to be the only scaleforms ever requested by this native: - // "breaking_news" - // "desktop_pc" - // "ECG_MONITOR" - // "Hacking_PC" - // "TEETH_PULLING" - // - // Note: Unless this hash is out-of-order, this native is next-gen only. - // - inline int RequestScaleformMovieSkipRenderWhilePaused(String scaleformName) { return _i(0xBD06C611BB9048C2, scaleformName); } // 0xbd06c611bb9048c2B323 - inline BOOL HasScaleformMovieLoaded(int scaleformHandle) { return _i(0x85F01B8D5B90570E, scaleformHandle); } // 0x85f01b8d5b90570e0xddfb6448B323 - // val is 1-20 (0 will return false) - inline BOOL IsActiveScaleformMovieDeleting(int val) { return _i(0x2FCB133CA50A49EB, val); } // 0x2fcb133ca50a49ebB1290 - // val is 1-20. Return is related to INSTRUCTIONAL_BUTTONS, COLOUR_SWITCHER_02, etc? - inline BOOL IsScaleformMovieDeleting(int val) { return _i(0x86255B1FC929E33E, val); } // 0x86255b1fc929e33eB1290 - // Only values used in the scripts are: - // - // "heist_mp" - // "heistmap_mp" - // "instructional_buttons" - // "heist_pre" - inline BOOL HasScaleformMovieFilenameLoaded(String scaleformName) { return _i(0x0C1C5D756FB5F337, scaleformName); } // 0x0c1c5d756fb5f3370x494a9e50B323 - inline BOOL HasScaleformContainerMovieLoadedIntoParent(int scaleformHandle) { return _i(0x8217150E1217EBFD, scaleformHandle); } // 0x8217150e1217ebfd0x1dfe8d8aB323 - inline Void SetScaleformMovieAsNoLongerNeeded(int* scaleformHandle) { return _i(0x1D132D614DD86811, scaleformHandle); } // 0x1d132d614dd868110x5fed3ba1B323 - inline Void SetScaleformMovieToUseSystemTime(int scaleform, BOOL toggle) { return _i(0x6D8EB211944DCE08, scaleform, toggle); } // 0x6d8eb211944dce080x18c9de8dB323 - inline Void SetScaleformMovieToUseLargeRt(int scaleformHandle, BOOL toggle) { return _i(0x32F34FF7F617643B, scaleformHandle, toggle); } // 0x32f34ff7f617643bB573 - // This native is used in some casino scripts to fit the scaleform in the rendertarget. - inline Void SetScaleformMovieToUseSuperLargeRt(int scaleformHandle, BOOL toggle) { return _i(0xE6A9F00D4240B519, scaleformHandle, toggle); } // 0xe6a9f00d4240b519B877 - inline Void DrawScaleformMovie(int scaleformHandle, float x, float y, float width, float height, int red, int green, int blue, int alpha, int p9) { return _i(0x54972ADAF0294A93, scaleformHandle, x, y, width, height, red, green, blue, alpha, p9); } // 0x54972adaf0294a930x48da6a58B323 - // unk is not used so no need - inline Void DrawScaleformMovieFullscreen(int scaleform, int red, int green, int blue, int alpha, int p5) { return _i(0x0DF606929C105BE1, scaleform, red, green, blue, alpha, p5); } // 0x0df606929c105be10x7b48e696B323 - inline Void DrawScaleformMovieFullscreenMasked(int scaleform1, int scaleform2, int red, int green, int blue, int alpha) { return _i(0xCF537FDE4FBD4CE5, scaleform1, scaleform2, red, green, blue, alpha); } // 0xcf537fde4fbd4ce50x9c59fc06B323 - inline Void DrawScaleformMovie3d(int scaleform, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, float p7, float p8, float p9, float scaleX, float scaleY, float scaleZ, int rotationOrder) { return _i(0x87D51D72255D4E78, scaleform, posX, posY, posZ, rotX, rotY, rotZ, p7, p8, p9, scaleX, scaleY, scaleZ, rotationOrder); } // 0x87d51d72255d4e780xc4f63a89B323 - inline Void DrawScaleformMovie3dSolid(int scaleform, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, float p7, float p8, float p9, float scaleX, float scaleY, float scaleZ, int rotationOrder) { return _i(0x1CE592FDC749D6F5, scaleform, posX, posY, posZ, rotX, rotY, rotZ, p7, p8, p9, scaleX, scaleY, scaleZ, rotationOrder); } // 0x1ce592fdc749d6f50x899933c8B323 - // Calls the Scaleform function. - inline Void CallScaleformMovieMethod(int scaleform, String method) { return _i(0xFBD96D87AC96D533, scaleform, method); } // 0xfbd96d87ac96d5330x7ab77b57B323 - // Calls the Scaleform function and passes the parameters as floats. - // - // The number of parameters passed to the function varies, so the end of the parameter list is represented by -1.0. - inline Void CallScaleformMovieMethodWithNumber(int scaleform, String methodName, float param1, float param2, float param3, float param4, float param5) { return _i(0xD0837058AE2E4BEE, scaleform, methodName, param1, param2, param3, param4, param5); } // 0xd0837058ae2e4bee0x557eda1dB323 - // Calls the Scaleform function and passes the parameters as strings. - // - // The number of parameters passed to the function varies, so the end of the parameter list is represented by 0 (NULL). - inline Void CallScaleformMovieMethodWithString(int scaleform, String methodName, String param1, String param2, String param3, String param4, String param5) { return _i(0x51BC1ED3CC44E8F7, scaleform, methodName, param1, param2, param3, param4, param5); } // 0x51bc1ed3cc44e8f70x91a7fcebB323 - // Calls the Scaleform function and passes both float and string parameters (in their respective order). - // - // The number of parameters passed to the function varies, so the end of the float parameters is represented by -1.0, and the end of the string parameters is represented by 0 (NULL). - // - // NOTE: The order of parameters in the function prototype is important! All float parameters must come first, followed by the string parameters. - // - // Examples: - // // function MY_FUNCTION(floatParam1, floatParam2, stringParam) - // GRAPHICS::CallScaleformMovieMethodWithNumberAndString(scaleform, "MY_FUNCTION", 10.0, 20.0, -1.0, -1.0, -1.0, "String param", 0, 0, 0, 0); - // - // // function MY_FUNCTION_2(floatParam, stringParam1, stringParam2) - // GRAPHICS::CallScaleformMovieMethodWithNumberAndString(scaleform, "MY_FUNCTION_2", 10.0, -1.0, -1.0, -1.0, -1.0, "String param #1", "String param #2", 0, 0, 0); - inline Void CallScaleformMovieMethodWithNumberAndString(int scaleform, String methodName, float floatParam1, float floatParam2, float floatParam3, float floatParam4, float floatParam5, String stringParam1, String stringParam2, String stringParam3, String stringParam4, String stringParam5) { return _i(0xEF662D8D57E290B1, scaleform, methodName, floatParam1, floatParam2, floatParam3, floatParam4, floatParam5, stringParam1, stringParam2, stringParam3, stringParam4, stringParam5); } // 0xef662d8d57e290b10x6eaf56deB323 - // Pushes a function from the Hud component Scaleform onto the stack. Same behavior as GRAPHICS::BeginScaleformMovieMethod, just a hud component id instead of a Scaleform. - // - // Known components: - // 19 - MP_RANK_BAR - // 20 - HUD_DIRECTOR_MODE - // - // This native requires more research - all information can be found inside of 'hud.gfx'. Using a decompiler, the different components are located under "scripts\__Packages\com\rockstargames\gtav\hud\hudComponents" and "scripts\__Packages\com\rockstargames\gtav\Multiplayer". - inline BOOL BeginScaleformScriptHudMovieMethod(int hudComponent, String methodName) { return _i(0x98C494FD5BDFBFD5, hudComponent, methodName); } // 0x98c494fd5bdfbfd50x5d66ce1eB323 - // Push a function from the Scaleform onto the stack - // - inline BOOL BeginScaleformMovieMethod(int scaleform, String methodName) { return _i(0xF6E48914C7A8694E, scaleform, methodName); } // 0xf6e48914c7a8694e0x215abbe8B323 - // Starts frontend (pause menu) scaleform movie methods. - // This can be used when you want to make custom frontend menus, and customize things like images or text in the menus etc. - // Use `BeginScaleformMovieMethodOnFrontendHeader` for header scaleform functions. - inline BOOL BeginScaleformMovieMethodOnFrontend(String methodName) { return _i(0xAB58C27C2E6123C6, methodName); } // 0xab58c27c2e6123c60xf6015178B323 - // Starts frontend (pause menu) scaleform movie methods for header options. - // Use `BeginScaleformMovieMethodOnFrontend` to customize the content inside the frontend menus. - inline BOOL BeginScaleformMovieMethodOnFrontendHeader(String methodName) { return _i(0xB9449845F73F5E9C, methodName); } // 0xb9449845f73f5e9c0x5e219b67B323 - // Pops and calls the Scaleform function on the stack - inline Void EndScaleformMovieMethod() { return _i(0xC6796A8FFA375E53); } // 0xc6796a8ffa375e530x02dbf2d7B323 - inline int EndScaleformMovieMethodReturnValue() { return _i(0xC50AA39A577AF886); } // 0xc50aa39a577af8860x2f38b526B323 - // methodReturn: The return value of this native: EndScaleformMovieMethodReturnValue - // Returns true if the return value of a scaleform function is ready to be collected (using GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_STRING or GetScaleformMovieMethodReturnValueInt). - inline BOOL IsScaleformMovieMethodReturnValueReady(int methodReturn) { return _i(0x768FF8961BA904D6, methodReturn); } // 0x768ff8961ba904d60x5cd7c3c0B323 - // methodReturn: The return value of this native: EndScaleformMovieMethodReturnValue - // Used to get a return value from a scaleform function. Returns an int in the same way GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_STRING returns a string. - inline int GetScaleformMovieMethodReturnValueInt(int methodReturn) { return _i(0x2DE7EFA66B906036, methodReturn); } // 0x2de7efa66b9060360x2cfb0e6dB323 - // methodReturn: The return value of this native: EndScaleformMovieMethodReturnValue - inline BOOL GetScaleformMovieMethodReturnValueBool(int methodReturn) { return _i(0xD80A80346A45D761, methodReturn); } // 0xd80a80346a45d761B757 - // methodReturn: The return value of this native: EndScaleformMovieMethodReturnValue - // Used to get a return value from a scaleform function. Returns a string in the same way GetScaleformMovieMethodReturnValueInt returns an int. - inline String GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_STRING(int methodReturn) { return _i(0xE1E258829A885245, methodReturn); } // 0xE1E258829A885245 0x516862EB b323 - // Pushes an integer for the Scaleform function onto the stack. - inline Void ScaleformMovieMethodAddParamInt(int value) { return _i(0xC3D0841A0CC546A6, value); } // 0xc3d0841a0cc546a60x716777cbB323 - // Pushes a float for the Scaleform function onto the stack. - inline Void ScaleformMovieMethodAddParamFloat(float value) { return _i(0xD69736AAE04DB51A, value); } // 0xd69736aae04db51a0x9a01ffdaB323 - // Pushes a boolean for the Scaleform function onto the stack. - inline Void ScaleformMovieMethodAddParamBool(BOOL value) { return _i(0xC58424BA936EB458, value); } // 0xc58424ba936eb4580x0d4ae8cbB323 - // Called prior to adding a text component to the UI. After doing so, GRAPHICS::EndTextCommandScaleformString is called. - // - // Examples: - // GRAPHICS::BeginTextCommandScaleformString("NUMBER"); - // HUD::AddTextComponentInteger(MISC::Absi(a_1)); - // GRAPHICS::EndTextCommandScaleformString(); - // - // GRAPHICS::BeginTextCommandScaleformString("STRING"); - // HUD::AddTextComponentSubstringPlayerName(a_2); - // GRAPHICS::EndTextCommandScaleformString(); - // - // GRAPHICS::BeginTextCommandScaleformString("STRTNM2"); - // HUD::AddTextComponentSubstringTextLabelHashKey(v_3); - // HUD::AddTextComponentSubstringTextLabelHashKey(v_4); - // GRAPHICS::EndTextCommandScaleformString(); - // - // GRAPHICS::BeginTextCommandScaleformString("STRTNM1"); - // HUD::AddTextComponentSubstringTextLabelHashKey(v_3); - // GRAPHICS::EndTextCommandScaleformString(); - inline Void BeginTextCommandScaleformString(String componentType) { return _i(0x80338406F3475E55, componentType); } // 0x80338406f3475e550x3ac9cb55B323 - inline Void EndTextCommandScaleformString() { return _i(0x362E2D3FE93A9959); } // 0x362e2d3fe93a99590x386ce0b8B323 - // Same as EndTextCommandScaleformString but does not perform HTML conversion for text tokens. - // - // END_TEXT_COMMAND_VIA_SPECIAL_MODIFIABLE_STRING? - inline Void EndTextCommandUnparsedScaleformString() { return _i(0xAE4E8157D9ECF087); } // 0xae4e8157d9ecf0870x2e80db52B323 - // Same as ScaleformMovieMethodAddParamTextureNameString - // Both ScaleformMovieMethodAddParamTextureNameString / _SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING_2 works, but _SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING_2 is usually used for "name" (organisation, players..). - inline Void ScaleformMovieMethodAddParamLiteralString(String string) { return _i(0x77FE3402004CD1B0, string); } // 0x77fe3402004cd1b0B573 - inline Void ScaleformMovieMethodAddParamTextureNameString(String string) { return _i(0xBA7148484BD90365, string); } // 0xba7148484bd903650x4daad55bB323 - inline Void ScaleformMovieMethodAddParamPlayerNameString(String string) { return _i(0xE83A3E3557A56640, string); } // 0xe83a3e3557a566400xccbf0334B323 - inline BOOL DoesLatestBriefStringExist(int p0) { return _i(0x5E657EF1099EDD65, p0); } // 0x5e657ef1099edd650x91a081a1B323 - inline Void ScaleformMovieMethodAddParamLatestBriefString(int value) { return _i(0xEC52C631A1831C03, value); } // 0xec52c631a1831c030x83a9811dB323 - inline Void RequestScaleformScriptHudMovie(int hudComponent) { return _i(0x9304881D6F6537EA, hudComponent); } // 0x9304881d6f6537ea0x7af85862B323 - inline BOOL HasScaleformScriptHudMovieLoaded(int hudComponent) { return _i(0xDF6E5987D2B4D140, hudComponent); } // 0xdf6e5987d2b4d1400x79b43255B323 - inline Void RemoveScaleformScriptHudMovie(int hudComponent) { return _i(0xF44A5456AC3F4F97, hudComponent); } // 0xf44a5456ac3f4f970x03d87600B323 - inline BOOL PassKeyboardInputToScaleform(int scaleformHandle) { return _i(0xD1C7CB175E012964, scaleformHandle); } // 0xd1c7cb175e0129640xe9183d3aB323 - inline Void SetTvChannel(int channel) { return _i(0xBAABBB23EB6E484E, channel); } // 0xbaabbb23eb6e484e0x41a8a627B323 - inline int GetTvChannel() { return _i(0xFC1E275A90D39995); } // 0xfc1e275a90d399950x6b96145aB323 - inline Void SetTvVolume(float volume) { return _i(0x2982BF73F66E9DDC, volume); } // 0x2982bf73f66e9ddc0xf3504f4dB323 - inline float GetTvVolume() { return _i(0x2170813D3DD8661B); } // 0x2170813d3dd8661b0x39555cf0B323 - // All calls to this native are preceded by calls to GRAPHICS::SetScriptGfxDrawOrder and GRAPHICS::SetScriptGfxDrawBehindPausemenu, respectively. - // - // "act_cinema.ysc", line 1483: - // HUD::SetHudComponentPosition(15, 0.0, -0.0375); - // HUD::SetTextRenderId(l_AE); - // GRAPHICS::SetScriptGfxDrawOrder(4); - // GRAPHICS::SetScriptGfxDrawBehindPausemenu(1); - // if (GRAPHICS::IsTvshowCurrentlyPlaying(${movie_arthouse})) { - // GRAPHICS::DrawTvChannel(0.5, 0.5, 0.7375, 1.0, 0.0, 255, 255, 255, 255); - // } else { - // GRAPHICS::DrawTvChannel(0.5, 0.5, 1.0, 1.0, 0.0, 255, 255, 255, 255); - // } - // - // "am_mp_property_int.ysc", line 102545: - // if (ENTITY::DoesEntityExist(a_2._f3)) { - // if (HUD::IsNamedRendertargetLinked(ENTITY::GetEntityModel(a_2._f3))) { - // HUD::SetTextRenderId(a_2._f1); - // GRAPHICS::SetScriptGfxDrawOrder(4); - // GRAPHICS::SetScriptGfxDrawBehindPausemenu(1); - // GRAPHICS::DrawTvChannel(0.5, 0.5, 1.0, 1.0, 0.0, 255, 255, 255, 255); - // if (GRAPHICS::GetTvChannel() == -1) { - // sub_a8fa5(a_2, 1); - // } else { - // sub_a8fa5(a_2, 1); - // GRAPHICS::AttachTvAudioToEntity(a_2._f3); - // } - // HUD::SetTextRenderId(HUD::GetDefaultScriptRendertargetRenderId()); - // } - // } - // - inline Void DrawTvChannel(float xPos, float yPos, float xScale, float yScale, float rotation, int red, int green, int blue, int alpha) { return _i(0xFDDC2B4ED3C69DF0, xPos, yPos, xScale, yScale, rotation, red, green, blue, alpha); } // 0xfddc2b4ed3c69df00x8129ef89B323 - // Loads specified video sequence into the TV Channel - // TV_Channel ranges from 0-2 - // VideoSequence can be any of the following: - // "PL_STD_CNT" CNT Standard Channel - // "PL_STD_WZL" Weazel Standard Channel - // "PL_LO_CNT" - // "PL_LO_WZL" - // "PL_SP_WORKOUT" - // "PL_SP_INV" - Jay Norris Assassination Mission Fail - // "PL_SP_INV_EXP" - Jay Norris Assassination Mission Success - // "PL_LO_RS" - Righteous Slaughter Ad - // "PL_LO_RS_CUTSCENE" - Righteous Slaughter Cut-scene - // "PL_SP_PLSH1_INTRO" - // "PL_LES1_FAME_OR_SHAME" - // "PL_STD_WZL_FOS_EP2" - // "PL_MP_WEAZEL" - Weazel Logo on loop - // "PL_MP_CCTV" - Generic CCTV loop - // - // Restart: - // 0=video sequence continues as normal - // 1=sequence restarts from beginning every time that channel is selected - // - // - // The above playlists work as intended, and are commonly used, but there are many more playlists, as seen in `tvplaylists.xml`. A pastebin below outlines all playlists, they will be surronded by the name tag I.E. (PL_STD_CNT = PL_STD_CNT). - // https://pastebin.com/zUzGB6h7 - inline Void SetTvChannelPlaylist(int tvChannel, String playlistName, BOOL restart) { return _i(0xF7B38B8305F1FE8B, tvChannel, playlistName, restart); } // 0xf7b38b8305f1fe8b0xb262de67B323 - inline Void SetTvChannelPlaylistAtHour(int tvChannel, String playlistName, int hour) { return _i(0x2201C576FACAEBE8, tvChannel, playlistName, hour); } // 0x2201c576facaebe80x78c4dcbeB323 - inline Void ClearTvChannelPlaylist(int tvChannel) { return _i(0xBEB3D46BB7F043C0, tvChannel); } // 0xbeb3d46bb7f043c00xcbe7068fB323 - inline BOOL IsPlaylistOnChannel(int tvChannel, Any p1) { return _i(0x1F710BFF7DAE6261, tvChannel, p1); } // 0x1f710bff7dae6261B1604 - inline BOOL IsTvshowCurrentlyPlaying(Hash videoCliphash) { return _i(0x0AD973CA1E077B60, videoCliphash); } // 0x0ad973ca1e077b600x4d1eb0fbB323 - inline Void EnableMovieKeyframeWait(BOOL toggle) { return _i(0x74C180030FDE4B69, toggle); } // 0x74c180030fde4b690x796de696B323 - inline Void SetTvPlayerWatchingThisFrame(Any p0) { return _i(0xD1C55B110E4DF534, p0); } // 0xd1c55b110e4df5340xd99ec000B323 - inline Hash GetCurrentTvClipNamehash() { return _i(0x30432A0118736E00); } // 0x30432a0118736e00B1493 - inline Void EnableMovieSubtitles(BOOL toggle) { return _i(0x873FA65C778AD970, toggle); } // 0x873fa65c778ad9700xc2deba3dB323 - inline BOOL Ui3dsceneIsAvailable() { return _i(0xD3A10FC7FD8D98CD); } // 0xd3a10fc7fd8d98cd0xe40a0f1aB323 - // All presets can be found in common\data\ui\uiscenes.meta - inline BOOL Ui3dscenePushPreset(String presetName) { return _i(0xF1CEA8A4198D8E9A, presetName); } // 0xf1cea8a4198d8e9a0x2e7d9b98B323 - // It's called after Ui3dsceneIsAvailable and Ui3dscenePushPreset - // - // presetName was always "CELEBRATION_WINNER" - // All presets can be found in common\data\ui\uiscenes.meta - inline BOOL Ui3dsceneAssignPedToSlot(String presetName, Ped ped, int slot, float posX, float posY, float posZ) { return _i(0x98C4FE6EC34154CA, presetName, ped, slot, posX, posY, posZ); } // 0x98c4fe6ec34154ca0x9a0e3bfeB323 - inline Void Ui3dsceneClearPatchedData() { return _i(0x7A42B2E236E71415); } // 0x7a42b2e236e714150x431aa036B323 - inline Void Ui3dsceneMakePushedPresetPersistent(BOOL toggle) { return _i(0x108BE26959A9D9BB, toggle); } // 0x108be26959a9d9bb0x24a7a7f6B323 - // This native enables/disables the gold putting grid display (https://i.imgur.com/TC6cku6.png). - // This requires these two natives to be called as well to configure the grid: `TerraingridSetParams` and `TerraingridSetColours`. - inline Void TerraingridActivate(BOOL toggle) { return _i(0xA356990E161C9E65, toggle); } // 0xa356990e161c9e650xa1cb6c94B323 - // This native is used along with these two natives: `TerraingridActivate` and `TerraingridSetColours`. - // This native configures the location, size, rotation, normal height, and the difference ratio between min, normal and max. - // - // All those natives combined they will output something like this: https://i.imgur.com/TC6cku6.png - // - // This native renders a box at the given position, with a special shader that renders a grid on world geometry behind it. This box does not have backface culling. - // The forward args here are a direction vector, something similar to what's returned by GetEntityForwardVector. - // normalHeight and heightDiff are used for positioning the color gradient of the grid, colors specified via TerraingridSetColours. - // - // Example with box superimposed on the image to demonstrate: https://i.imgur.com/wdqskxd.jpg - inline Void TerraingridSetParams(float x, float y, float z, float forwardX, float forwardY, float forwardZ, float sizeX, float sizeY, float sizeZ, float gridScale, float glowIntensity, float normalHeight, float heightDiff) { return _i(0x1C4FC5752BCD8E48, x, y, z, forwardX, forwardY, forwardZ, sizeX, sizeY, sizeZ, gridScale, glowIntensity, normalHeight, heightDiff); } // 0x1c4fc5752bcd8e480x3b637aa7B323 - // This native is used along with these two natives: `TerraingridActivate` and `TerraingridSetParams`. - // This native sets the colors for the golf putting grid. the 'min...' values are for the lower areas that the grid covers, the 'max...' values are for the higher areas that the grid covers, all remaining values are for the 'normal' ground height. - // All those natives combined they will output something like this: https://i.imgur.com/TC6cku6.png - inline Void TerraingridSetColours(int lowR, int lowG, int lowB, int lowAlpha, int r, int g, int b, int alpha, int highR, int highG, int highB, int highAlpha) { return _i(0x5CE62918F8D703C7, lowR, lowG, lowB, lowAlpha, r, g, b, alpha, highR, highG, highB, highAlpha); } // 0x5ce62918f8d703c70xdf552973B323 - // duration - is how long to play the effect for in milliseconds. If 0, it plays the default length - // if loop is true, the effect won't stop until you call AnimpostfxStop on it. (only loopable effects) - // - // Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json - inline Void AnimpostfxPlay(String effectName, int duration, BOOL looped) { return _i(0x2206BF9A37B7F724, effectName, duration, looped); } // 0x2206bf9a37b7f7240x1d980479B323 - // See AnimpostfxPlay - // - // Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json - inline Void AnimpostfxStop(String effectName) { return _i(0x068E835A1D0DC0E3, effectName); } // 0x068e835a1d0dc0e30x06bb5cdaB323 - // See AnimpostfxPlay - // - // Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json - inline float AnimpostfxGetCurrentTime(String effectName) { return _i(0xE35B38A27E8E7179, effectName); } // 0xe35b38a27e8e7179B877 - // Returns whether the specified effect is active. - // See AnimpostfxPlay - // - // Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json - inline BOOL AnimpostfxIsRunning(String effectName) { return _i(0x36AD3E690DA5ACEB, effectName); } // 0x36ad3e690da5aceb0x089d5921B323 - // Stops ALL currently playing effects. - inline Void AnimpostfxStopAll() { return _i(0xB4EDDC19532BFB85); } // 0xb4eddc19532bfb850x4e6d875bB323 - // Stops the effect and sets a value (bool) in its data (+0x199) to false. - // See AnimpostfxPlay - // - // Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json - inline Void AnimpostfxStopAndFlushRequests(String effectName) { return _i(0xD2209BE128B5418C, effectName); } // 0xd2209be128b5418cB323 + // NOTE: Debugging functions are not present in the retail version of the game. + inline Void SetDebugLinesAndSpheresDrawingActive(BOOL enabled) { return _i(0x175B6BFC15CDD0C5, enabled); } // 0x175b6bfc15cdd0c50x1418ca37B323 + inline Void DrawDebugLine(float x1, float y1, float z1, float x2, float y2, float z2, int r, int g, int b, int alpha) { return _i(0x7FDFADE676AA3CB0, x1, y1, z1, x2, y2, z2, r, g, b, alpha); } // 0x7fdfade676aa3cb00xabf783abB323 + // NOTE: Debugging functions are not present in the retail version of the game. + inline Void DrawDebugLineWithTwoColours(float x1, float y1, float z1, float x2, float y2, float z2, int r1, int g1, int b1, int r2, int g2, int b2, int alpha1, int alpha2) { return _i(0xD8B9A8AC5608FF94, x1, y1, z1, x2, y2, z2, r1, g1, b1, r2, g2, b2, alpha1, alpha2); } // 0xd8b9a8ac5608ff940xe8bff632B323 + // NOTE: Debugging functions are not present in the retail version of the game. + inline Void DrawDebugSphere(float x, float y, float z, float radius, int red, int green, int blue, int alpha) { return _i(0xAAD68E1AB39DA632, x, y, z, radius, red, green, blue, alpha); } // 0xaad68e1ab39da6320x304d0eefB323 + inline Void DrawDebugBox(float x1, float y1, float z1, float x2, float y2, float z2, int r, int g, int b, int alpha) { return _i(0x083A2CA4F2E573BD, x1, y1, z1, x2, y2, z2, r, g, b, alpha); } // 0x083a2ca4f2e573bd0x8524a848B323 + // NOTE: Debugging functions are not present in the retail version of the game. + inline Void DrawDebugCross(float x, float y, float z, float size, int red, int green, int blue, int alpha) { return _i(0x73B1189623049839, x, y, z, size, red, green, blue, alpha); } // 0x73b11896230498390xb6df3709B323 + // NOTE: Debugging functions are not present in the retail version of the game. + inline Void DrawDebugText(String text, float x, float y, float z, int red, int green, int blue, int alpha) { return _i(0x3903E216620488E8, text, x, y, z, red, green, blue, alpha); } // 0x3903e216620488e80x269b006fB323 + // NOTE: Debugging functions are not present in the retail version of the game. + inline Void DrawDebugText2d(String text, float x, float y, float z, int red, int green, int blue, int alpha) { return _i(0xA3BB2E9555C05A8F, text, x, y, z, red, green, blue, alpha); } // 0xa3bb2e9555c05a8f0x528b973bB323 + // Draws a depth-tested line from one point to another. + // ---------------- + // x1, y1, z1 : Coordinates for the first point + // x2, y2, z2 : Coordinates for the second point + // r, g, b, alpha : Color with RGBA-Values + // I recommend using a predefined function to call this. + // [VB.NET] + // Public Sub DrawLine(from As Vector3, [to] As Vector3, col As Color) + // [Function].Call(Hash.DrawLine, from.X, from.Y, from.Z, [to].X, [to].Y, [to].Z, col.R, col.G, col.B, col.A) + // End Sub + // + // [C#] + // public Void DrawLine(Vector3 from, Vector3 to, Color col) + // { + // Function.Call(Hash.DrawLine, from.X, from.Y, from.Z, to.X, to.Y, to.Z, col.R, col.G, col.B, col.A); + // } + inline Void DrawLine(float x1, float y1, float z1, float x2, float y2, float z2, int red, int green, int blue, int alpha) { return _i(0x6B7256074AE34680, x1, y1, z1, x2, y2, z2, red, green, blue, alpha); } // 0x6b7256074ae346800xb3426bccB323 + // x/y/z - Location of a vertex (in world coords), presumably. + // ---------------- + // x1, y1, z1 : Coordinates for the first point + // x2, y2, z2 : Coordinates for the second point + // x3, y3, z3 : Coordinates for the third point + // r, g, b, alpha : Color with RGBA-Values + // + // Keep in mind that only one side of the drawn triangle is visible: It's the side, in which the vector-product of the vectors heads to: (b-a)x(c-a) Or (b-a)x(c-b). + // But be aware: The function seems to work somehow differently. I have trouble having them drawn in rotated orientation. Try it yourself and if you somehow succeed, please edit this and post your solution. + // I recommend using a predefined function to call this. + // [VB.NET] + // Public Sub DrawPoly(a As Vector3, b As Vector3, c As Vector3, col As Color) + // [Function].Call(Hash.DrawPoly, a.X, a.Y, a.Z, b.X, b.Y, b.Z, c.X, c.Y, c.Z, col.R, col.G, col.B, col.A) + // End Sub + // + // [C#] + // public Void DrawPoly(Vector3 a, Vector3 b, Vector3 c, Color col) + // { + // Function.Call(Hash.DrawPoly, a.X, a.Y, a.Z, b.X, b.Y, b.Z, c.X, c.Y, c.Z, col.R, col.G, col.B, col.A); + // } + // BTW: Intersecting triangles are not supported: They overlap in the order they were called. + inline Void DrawPoly(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, int red, int green, int blue, int alpha) { return _i(0xAC26716048436851, x1, y1, z1, x2, y2, z2, x3, y3, z3, red, green, blue, alpha); } // 0xac267160484368510xabd19253B323 + // Used for drawling Deadline trailing lights, see deadline.ytd + // + // p15 through p23 are values that appear to be related to illiumation, scaling, and rotation; more testing required. + // For UVW mapping (u,v,w parameters), reference your favourite internet resource for more details. + inline Void DrawTexturedPoly(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, int red, int green, int blue, int alpha, String textureDict, String textureName, float u1, float v1, float w1, float u2, float v2, float w2, float u3, float v3, float w3) { return _i(0x29280002282F1928, x1, y1, z1, x2, y2, z2, x3, y3, z3, red, green, blue, alpha, textureDict, textureName, u1, v1, w1, u2, v2, w2, u3, v3, w3); } // 0x29280002282f1928B877 + // Used for drawling Deadline trailing lights, see deadline.ytd + // + // Each vertex has its own colour that is blended/illuminated on the texture. Additionally, the R, G, and B components are floats that are int-casted internally. + // For UVW mapping (u,v,w parameters), reference your favourite internet resource for more details. + inline Void DrawTexturedPolyWithThreeColours(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, float red1, float green1, float blue1, int alpha1, float red2, float green2, float blue2, int alpha2, float red3, float green3, float blue3, int alpha3, String textureDict, String textureName, float u1, float v1, float w1, float u2, float v2, float w2, float u3, float v3, float w3) { return _i(0x736D7AA1B750856B, x1, y1, z1, x2, y2, z2, x3, y3, z3, red1, green1, blue1, alpha1, red2, green2, blue2, alpha2, red3, green3, blue3, alpha3, textureDict, textureName, u1, v1, w1, u2, v2, w2, u3, v3, w3); } // 0x736d7aa1b750856bB877 + // x,y,z = start pos + // x2,y2,z2 = end pos + // + // Draw's a 3D Box between the two x,y,z coords. + // -------------- + // Keep in mind that the edges of the box do only align to the worlds base-vectors. Therefore something like rotation cannot be applied. That means this function is pretty much useless, unless you want a static unicolor box somewhere. + // I recommend using a predefined function to call this. + // [VB.NET] + // Public Sub DrawBox(a As Vector3, b As Vector3, col As Color) + // [Function].Call(Hash.DrawBox,a.X, a.Y, a.Z,b.X, b.Y, b.Z,col.R, col.G, col.B, col.A) + // End Sub + // + // [C#] + // public Void DrawBox(Vector3 a, Vector3 b, Color col) + // { + // Function.Call(Hash.DrawBox,a.X, a.Y, a.Z,b.X, b.Y, b.Z,col.R, col.G, col.B, col.A); + // } + inline Void DrawBox(float x1, float y1, float z1, float x2, float y2, float z2, int red, int green, int blue, int alpha) { return _i(0xD3A9971CADAC7252, x1, y1, z1, x2, y2, z2, red, green, blue, alpha); } // 0xd3a9971cadac72520xcd4d9dd5B323 + inline Void SetBackfaceculling(BOOL toggle) { return _i(0x23BA6B0C2AD7B0D3, toggle); } // 0x23ba6b0c2ad7b0d30xc44c2f44B323 + inline Void SetDepthwriting(BOOL toggle) { return _i(0xC5C8F970D4EDFF71, toggle); } // 0xc5c8f970d4edff71B877 + inline BOOL BeginTakeMissionCreatorPhoto() { return _i(0x1DD2139A9A20DCE8); } // 0x1dd2139a9a20dce80xba9ad458B323 + inline int GetStatusOfTakeMissionCreatorPhoto() { return _i(0x90A78ECAA4E78453); } // 0x90a78ecaa4e784530xadbba287B323 + inline Void FreeMemoryForMissionCreatorPhoto() { return _i(0x0A46AF8A78DC5E0A); } // 0x0a46af8a78dc5e0a0x9e553002B323 + inline BOOL LoadMissionCreatorPhoto(Any* p0, Any p1, Any p2, Any p3) { return _i(0x4862437A486F91B0, p0, p1, p2, p3); } // 0x4862437a486f91b00x56c1e488B323 + inline int GetStatusOfLoadMissionCreatorPhoto(Any* p0) { return _i(0x1670F8D05056F257, p0); } // 0x1670f8d05056f2570x226b08eaB323 + inline BOOL BeginCreateMissionCreatorPhotoPreview() { return _i(0x7FA5D82B8F58EC06); } // 0x7fa5d82b8f58ec060x1f3cadb0B323 + inline int GetStatusOfCreateMissionCreatorPhotoPreview() { return _i(0x5B0316762AFD4A64); } // 0x5b0316762afd4a640xa9dc8558B323 + inline Void FreeMemoryForMissionCreatorPhotoPreview() { return _i(0x346EF3ECAAAB149E); } // 0x346ef3ecaaab149e0x88eaf398B323 + inline BOOL BeginTakeHighQualityPhoto() { return _i(0xA67C35C56EB1BD9D); } // 0xa67c35c56eb1bd9d0x47b0c137B323 + inline int GetStatusOfTakeHighQualityPhoto() { return _i(0x0D6CA79EEEBD8CA3); } // 0x0d6ca79eeebd8ca30x65376c9bB323 + inline Void FreeMemoryForHighQualityPhoto() { return _i(0xD801CC02177FA3F1); } // 0xd801cc02177fa3f10x9cba682aB323 + inline Void SetTakenPhotoIsMugshot(BOOL toggle) { return _i(0x1BBC135A4D25EDDE, toggle); } // 0x1bbc135a4d25eddeB323 + inline Void SetArenaThemeAndVariationForTakenPhoto(Any p0, int p1) { return _i(0xF3F776ADA161E47D, p0, p1); } // 0xf3f776ada161e47dB1604 + inline Void SetOnIslandXForTakenPhoto(Any p0) { return _i(0xADD6627C4D325458, p0); } // 0xadd6627c4d325458B2189 + // 1 match in 1 script. cellphone_controller. + // p0 is -1 in scripts. + inline BOOL SaveHighQualityPhoto(int unused) { return _i(0x3DEC726C25A11BAC, unused); } // 0x3dec726c25a11bac0x3b15d33cB323 + inline int GetStatusOfSaveHighQualityPhoto() { return _i(0x0C0C4E81E1AC60A0); } // 0x0c0c4e81e1ac60a00xec5d0317B323 + inline BOOL BeginCreateLowQualityCopyOfPhoto(Any p0) { return _i(0x759650634F07B6B4, p0); } // 0x759650634f07b6b40x25d569ebB323 + inline int GetStatusOfCreateLowQualityCopyOfPhoto(int p0) { return _i(0xCB82A0BF0E3E3265, p0); } // 0xcb82a0bf0e3e32650xcfcdc518B323 + inline Void FreeMemoryForLowQualityPhoto() { return _i(0x6A12D88881435DCA); } // 0x6a12d88881435dca0x108f36ccB323 + inline Void DrawLowQualityPhotoToPhone(BOOL p0, BOOL p1) { return _i(0x1072F115DAB0717E, p0, p1); } // 0x1072f115dab0717e0xe9f2b68fB323 + // This function is hard-coded to always return 0. + inline int GetMaximumNumberOfPhotos() { return _i(0x34D23450F028B0BF); } // 0x34d23450f028b0bf0x727aa63fB323 + // This function is hard-coded to always return 96. + inline int GetMaximumNumberOfCloudPhotos() { return _i(0xDC54A7AF8B3A14EF); } // 0xdc54a7af8b3a14ef0x239272bdB323 + inline int GetCurrentNumberOfCloudPhotos() { return _i(0x473151EBC762C6DA); } // 0x473151ebc762c6da0x21dbf0c9B323 + // 2 matches across 2 scripts. Only showed in appcamera & appmedia. Both were 0. + inline BOOL QueueOperationToCreateSortedListOfPhotos(Any p0) { return _i(0x2A893980E96B659A, p0); } // 0x2a893980e96b659a0x199fabf0B323 + // 3 matches across 3 scripts. First 2 were 0, 3rd was 1. Possibly a BOOL. + // appcamera, appmedia, and cellphone_controller. + inline int GetStatusOfSortedListOperation(Any p0) { return _i(0xF5BED327CEA362B1, p0); } // 0xf5bed327cea362b10x596b900dB323 + inline Void ClearStatusOfSortedListOperation() { return _i(0x4AF92ACD3141D96C); } // 0x4af92acd3141d96c0xc9ef81edB323 + // This function is hard-coded to always return 0. + inline BOOL DoesThisPhotoSlotContainAValidPhoto(Any p0) { return _i(0xE791DF1F73ED2C8B, p0); } // 0xe791df1f73ed2c8b0x9d84554cB323 + // This function is hard-coded to always return 0. + inline BOOL LoadHighQualityPhoto(Any p0) { return _i(0xEC72C258667BE5EA, p0); } // 0xec72c258667be5ea0x9c106ad9B323 + // Hardcoded to always return 2. + inline int GetLoadHighQualityPhotoStatus(int p0) { return _i(0x40AFB081F8ADD4EE, p0); } // 0x40afb081f8add4ee0x762e5c5fB323 + inline Void DrawLightWithRangeex(float x, float y, float z, int r, int g, int b, float range, float intensity, float shadow) { return _i(0xF49E9A9716A04595, x, y, z, r, g, b, range, intensity, shadow); } // 0xf49e9a9716a04595B323 + inline Void DrawLightWithRange(float posX, float posY, float posZ, int colorR, int colorG, int colorB, float range, float intensity) { return _i(0xF2A1B2771A01DBD4, posX, posY, posZ, colorR, colorG, colorB, range, intensity); } // 0xf2a1b2771a01dbd40x6a396e9aB323 + // Parameters: + // * pos - coordinate where the spotlight is located + // * dir - the direction vector the spotlight should aim at from its current position + // * r,g,b - color of the spotlight + // * distance - the maximum distance the light can reach + // * brightness - the brightness of the light + // * roundness - "smoothness" of the circle edge + // * radius - the radius size of the spotlight + // * falloff - the falloff size of the light's edge (example: www.i.imgur.com/DemAWeO.jpg) + // + // Example in C# (spotlight aims at the closest vehicle): + // Vector3 myPos = Game.Player.Character.Position; + // Vehicle nearest = World.GetClosestVehicle(myPos , 1000f); + // Vector3 destinationCoords = nearest.Position; + // Vector3 dirVector = destinationCoords - myPos; + // dirVector.Normalize(); + // Function.Call(Hash.DrawSpotLight, pos.X, pos.Y, pos.Z, dirVector.X, dirVector.Y, dirVector.Z, 255, 255, 255, 100.0f, 1f, 0.0f, 13.0f, 1f); + inline Void DrawSpotLight(float posX, float posY, float posZ, float dirX, float dirY, float dirZ, int colorR, int colorG, int colorB, float distance, float brightness, float hardness, float radius, float falloff) { return _i(0xD0F64B265C8C8B33, posX, posY, posZ, dirX, dirY, dirZ, colorR, colorG, colorB, distance, brightness, hardness, radius, falloff); } // 0xd0f64b265c8c8b330xbdbc410cB323 + inline Void DrawShadowedSpotLight(float posX, float posY, float posZ, float dirX, float dirY, float dirZ, int colorR, int colorG, int colorB, float distance, float brightness, float roundness, float radius, float falloff, int shadowId) { return _i(0x5BCA583A583194DB, posX, posY, posZ, dirX, dirY, dirZ, colorR, colorG, colorB, distance, brightness, roundness, radius, falloff, shadowId); } // 0x5bca583a583194db0x32bf9598B323 + inline Void FadeUpPedLight(float p0) { return _i(0xC9B18B4619F48F7B, p0); } // 0xc9b18b4619f48f7b0x93628786B323 + inline Void UpdateLightsOnEntity(Entity entity) { return _i(0xDEADC0DEDEADC0DE, entity); } // 0xdeadc0dedeadc0de0xc12ac47aB323 + inline Void SetLightOverrideMaxIntensityScale(Any p0) { return _i(0x9641588DAB93B4B5, p0); } // 0x9641588dab93b4b5B877 + inline float GetLightOverrideMaxIntensityScale() { return _i(0x393BD2275CEB7793); } // 0x393bd2275ceb7793B1103 + // enum MarkerTypes + // { + // MarkerTypeUpsideDownCone = 0, + // MarkerTypeVerticalCylinder = 1, + // MarkerTypeThickChevronUp = 2, + // MarkerTypeThinChevronUp = 3, + // MarkerTypeCheckeredFlagRect = 4, + // MarkerTypeCheckeredFlagCircle = 5, + // MarkerTypeVerticleCircle = 6, + // MarkerTypePlaneModel = 7, + // MarkerTypeLostMCDark = 8, + // MarkerTypeLostMCLight = 9, + // MarkerTypeNumber0 = 10, + // MarkerTypeNumber1 = 11, + // MarkerTypeNumber2 = 12, + // MarkerTypeNumber3 = 13, + // MarkerTypeNumber4 = 14, + // MarkerTypeNumber5 = 15, + // MarkerTypeNumber6 = 16, + // MarkerTypeNumber7 = 17, + // MarkerTypeNumber8 = 18, + // MarkerTypeNumber9 = 19, + // MarkerTypeChevronUpx1 = 20, + // MarkerTypeChevronUpx2 = 21, + // MarkerTypeChevronUpx3 = 22, + // MarkerTypeHorizontalCircleFat = 23, + // MarkerTypeReplayIcon = 24, + // MarkerTypeHorizontalCircleSkinny = 25, + // MarkerTypeHorizontalCircleSkinny_Arrow = 26, + // MarkerTypeHorizontalSplitArrowCircle = 27, + // MarkerTypeDebugSphere = 28, + // MarkerTypeDallorSign = 29, + // MarkerTypeHorizontalBars = 30, + // MarkerTypeWolfHead = 31 + // }; + // + // dirX/Y/Z represent a heading on each axis in which the marker should face, alternatively you can rotate each axis independently with rotX/Y/Z (and set dirX/Y/Z all to 0). + // + // faceCamera - Rotates only the y-axis (the heading) towards the camera + // + // p19 - no effect, default value in script is 2 + // + // rotate - Rotates only on the y-axis (the heading) + // + // textureDict - Name of texture dictionary to load texture from (e.g. "GolfPutting") + // + // textureName - Name of texture inside dictionary to load (e.g. "PuttingMarker") + // + // drawOnEnts - Draws the marker onto any entities that intersect it + // + // basically what he said, except textureDict and textureName are totally not String, or if so, then they are always set to 0/NULL/nullptr in every script I checked, eg: + // + // bj.c: graphics::draw_marker(6, vParam0, 0f, 0f, 1f, 0f, 0f, 0f, 4f, 4f, 4f, 240, 200, 80, iVar1, 0, 0, 2, 0, 0, 0, false); + // + // his is what I used to draw an amber downward pointing chevron "V", has to be redrawn every frame. The 180 is for 180 degrees rotation around the Y axis, the 50 is alpha, assuming max is 100, but it will accept 255. + // + // GRAPHICS::DrawMarker(2, v.x, v.y, v.z + 2, 0, 0, 0, 0, 180, 0, 2, 2, 2, 255, 128, 0, 50, 0, 1, 1, 0, 0, 0, 0); + // + // + inline Void DrawMarker(int type, float posX, float posY, float posZ, float dirX, float dirY, float dirZ, float rotX, float rotY, float rotZ, float scaleX, float scaleY, float scaleZ, int red, int green, int blue, int alpha, BOOL bobUpAndDown, BOOL faceCamera, int p19, BOOL rotate, String textureDict, String textureName, BOOL drawOnEnts) { return _i(0x28477EC23D892089, type, posX, posY, posZ, dirX, dirY, dirZ, rotX, rotY, rotZ, scaleX, scaleY, scaleZ, red, green, blue, alpha, bobUpAndDown, faceCamera, p19, rotate, textureDict, textureName, drawOnEnts); } // 0x28477ec23d8920890x48d84a02B323 + inline Void DrawMarkerEx(int type, float posX, float posY, float posZ, float dirX, float dirY, float dirZ, float rotX, float rotY, float rotZ, float scaleX, float scaleY, float scaleZ, int red, int green, int blue, int alpha, BOOL bobUpAndDown, BOOL faceCamera, Any p19, BOOL rotate, String textureDict, String textureName, BOOL drawOnEnts, BOOL p24, BOOL p25) { return _i(0xE82728F0DE75D13A, type, posX, posY, posZ, dirX, dirY, dirZ, rotX, rotY, rotZ, scaleX, scaleY, scaleZ, red, green, blue, alpha, bobUpAndDown, faceCamera, p19, rotate, textureDict, textureName, drawOnEnts, p24, p25); } // 0xe82728f0de75d13aB573 + // Draws a 3D sphere, typically seen in the GTA:O freemode event "Penned In". + // Example https://imgur.com/nCbtS4H + // + // alpha - The alpha for the sphere. Goes from 0.0 to 1.0. + inline Void DrawMarkerSphere(float x, float y, float z, float radius, int red, int green, int blue, float alpha) { return _i(0x799017F9E3B10112, x, y, z, radius, red, green, blue, alpha); } // 0x799017f9e3b10112B463 + // Creates a checkpoint. Returns the handle of the checkpoint. + // + // 20/03/17 : Attention, checkpoints are already handled by the game itself, so you must not loop it like markers. + // + // Parameters: + // * type - The type of checkpoint to create. See below for a list of checkpoint types. + // * pos1 - The position of the checkpoint. + // * pos2 - The position of the next checkpoint to point to. + // * radius - The radius of the checkpoint. + // * color - The color of the checkpoint. + // * reserved - Special parameter, see below for details. Usually set to 0 in the scripts. + // + // Checkpoint types: + // 0-4---------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker + // 5-9---------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker + // 10-14-------Ring: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker + // 15-19-------1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker + // 20-24-------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker + // 25-29-------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker + // 30-34-------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker + // 35-38-------Ring: Airplane Up, Left, Right, UpsideDown + // 39----------? + // 40----------Ring: just a ring + // 41----------? + // 42-44-------Cylinder w/ number (uses 'reserved' parameter) + // 45-47-------Cylinder no arrow or number + // + // If using type 42-44, reserved sets number / number and shape to display + // + // 0-99------------Just numbers (0-99) + // 100-109-----------------Arrow (0-9) + // 110-119------------Two arrows (0-9) + // 120-129----------Three arrows (0-9) + // 130-139----------------Circle (0-9) + // 140-149------------CycleArrow (0-9) + // 150-159----------------Circle (0-9) + // 160-169----Circle w/ pointer (0-9) + // 170-179-------Perforated ring (0-9) + // 180-189----------------Sphere (0-9) + inline int CreateCheckpoint(int type, float posX1, float posY1, float posZ1, float posX2, float posY2, float posZ2, float diameter, int red, int green, int blue, int alpha, int reserved) { return _i(0x0134F0835AB6BFCB, type, posX1, posY1, posZ1, posX2, posY2, posZ2, diameter, red, green, blue, alpha, reserved); } // 0x0134f0835ab6bfcb0xf541b690B323 + inline Void SetCheckpointInsideCylinderHeightScale(int checkpoint, float scale) { return _i(0x4B5B4DA5D79F1943, checkpoint, scale); } // 0x4b5b4da5d79f19430x80151ccfB323 + inline Void SetCheckpointInsideCylinderScale(int checkpoint, float scale) { return _i(0x44621483FF966526, checkpoint, scale); } // 0x44621483ff966526B877 + // Sets the cylinder height of the checkpoint. + // + // Parameters: + // * nearHeight - The height of the checkpoint when inside of the radius. + // * farHeight - The height of the checkpoint when outside of the radius. + // * radius - The radius of the checkpoint. + inline Void SetCheckpointCylinderHeight(int checkpoint, float nearHeight, float farHeight, float radius) { return _i(0x2707AAE9D9297D89, checkpoint, nearHeight, farHeight, radius); } // 0x2707aae9d9297d890xff0f9b22B323 + // Sets the checkpoint color. + inline Void SetCheckpointRgba(int checkpoint, int red, int green, int blue, int alpha) { return _i(0x7167371E8AD747F7, checkpoint, red, green, blue, alpha); } // 0x7167371e8ad747f70xef9c8cb3B323 + // Sets the checkpoint icon color. + inline Void SetCheckpointRgba2(int checkpoint, int red, int green, int blue, int alpha) { return _i(0xB9EA40907C680580, checkpoint, red, green, blue, alpha); } // 0xb9ea40907c6805800xa5456dbbB323 + // This does not move an existing checkpoint... so wtf. + inline Void SetCheckpointClipplaneWithPosNorm(int checkpoint, float posX, float posY, float posZ, float unkX, float unkY, float unkZ) { return _i(0xF51D36185993515D, checkpoint, posX, posY, posZ, unkX, unkY, unkZ); } // 0xf51d36185993515d0x20eabd0fB323 + inline Void SetCheckpointForceOldArrowPointing(int checkpoint) { return _i(0xFCF6788FC4860CD4, checkpoint); } // 0xfcf6788fc4860cd4B1734 + // Unknown. Called after creating a checkpoint (type: 51) in the creators. + inline Void SetCheckpointDecalRotAlignedToCameraRot(int checkpoint) { return _i(0x615D3925E87A3B26, checkpoint); } // 0x615d3925e87a3b260x1e3a3126B323 + inline Void SetCheckpointForceDirection(int checkpoint) { return _i(0xDB1EA9411C8911EC, checkpoint); } // 0xdb1ea9411c8911ecB1180 + inline Void SetCheckpointDirection(int checkpoint, float posX, float posY, float posZ) { return _i(0x3C788E7F6438754D, checkpoint, posX, posY, posZ); } // 0x3c788e7f6438754dB1180 + inline Void DeleteCheckpoint(int checkpoint) { return _i(0xF5ED37F54CD4D52E, checkpoint); } // 0xf5ed37f54cd4d52e0xb66cf3caB323 + inline Void DontRenderInGameUi(BOOL p0) { return _i(0x22A249A53034450A, p0); } // 0x22a249a53034450a0x932fdb81B323 + inline Void ForceRenderInGameUi(BOOL toggle) { return _i(0xDC459CFA0CCE245B, toggle); } // 0xdc459cfa0cce245b0x7e946e87B323 + // This function can requests texture dictonaries from following RPFs: + // scaleform_generic.rpf + // scaleform_minigames.rpf + // scaleform_minimap.rpf + // scaleform_web.rpf + // + // last param isnt a toggle + inline Void RequestStreamedTextureDict(String textureDict, BOOL p1) { return _i(0xDFA2EF8E04127DD5, textureDict, p1); } // 0xdfa2ef8e04127dd50x4c9b035fB323 + inline BOOL HasStreamedTextureDictLoaded(String textureDict) { return _i(0x0145F696AAAAD2E4, textureDict); } // 0x0145f696aaaad2e40x3f436eefB323 + inline Void SetStreamedTextureDictAsNoLongerNeeded(String textureDict) { return _i(0xBE2CACCF5A8AA805, textureDict); } // 0xbe2caccf5a8aa8050xf07dda38B323 + // Draws a rectangle on the screen. + // + // -x: The relative X point of the center of the rectangle. (0.0-1.0, 0.0 is the left edge of the screen, 1.0 is the right edge of the screen) + // + // -y: The relative Y point of the center of the rectangle. (0.0-1.0, 0.0 is the top edge of the screen, 1.0 is the bottom edge of the screen) + // + // -width: The relative width of the rectangle. (0.0-1.0, 1.0 means the whole screen width) + // + // -height: The relative height of the rectangle. (0.0-1.0, 1.0 means the whole screen height) + // + // -R: Red part of the color. (0-255) + // + // -G: Green part of the color. (0-255) + // + // -B: Blue part of the color. (0-255) + // + // -A: Alpha part of the color. (0-255, 0 means totally transparent, 255 means totally opaque) + // + // The total number of rectangles to be drawn in one frame is apparently limited to 399. + // + inline Void DrawRect(float x, float y, float width, float height, int r, int g, int b, int a, BOOL p8) { return _i(0x3A618A217E5154F0, x, y, width, height, r, g, b, a, p8); } // 0x3a618a217e5154f00xdd2bfc77B323 + // Sets a flag defining whether or not script draw commands should continue being drawn behind the pause menu. This is usually used for TV channels and other draw commands that are used with a world render target. + inline Void SetScriptGfxDrawBehindPausemenu(BOOL toggle) { return _i(0xC6372ECD45D73BCD, toggle); } // 0xc6372ecd45d73bcd0xf8fbcc25B323 + // Sets the draw order for script draw commands. + // + // Examples from decompiled scripts: + // GRAPHICS::SetScriptGfxDrawOrder(7); + // GRAPHICS::DrawRect(0.5, 0.5, 3.0, 3.0, v_4, v_5, v_6, a_0._f172, 0); + // + // GRAPHICS::SetScriptGfxDrawOrder(1); + // GRAPHICS::DrawRect(0.5, 0.5, 1.5, 1.5, 0, 0, 0, 255, 0); + inline Void SetScriptGfxDrawOrder(int drawOrder) { return _i(0x61BB1D9B3A95D802, drawOrder); } // 0x61bb1d9b3a95d8020xadf81d24B323 + // horizontalAlign: The horizontal alignment. This can be 67 ('C'), 76 ('L'), or 82 ('R'). + // verticalAlign: The vertical alignment. This can be 67 ('C'), 66 ('B'), or 84 ('T'). + // + // This function anchors script draws to a side of the safe zone. This needs to be called to make the interface independent of the player's safe zone configuration. + // + // These values are equivalent to alignX and alignY in common:/data/ui/frontend.xml, which can be used as a baseline for default alignment. + // + // Using any other value (including 0) will result in the safe zone not being taken into account for this draw. The canonical value for this is 'I' (73). + // + // For example, you can use SetScriptGfxAlign(0, 84) to only scale on the Y axis (to the top), but not change the X axis. + // + // To reset the value, use ResetScriptGfxAlign. + inline Void SetScriptGfxAlign(int horizontalAlign, int verticalAlign) { return _i(0xB8A850F20A067EB6, horizontalAlign, verticalAlign); } // 0xb8a850f20a067eb60x228a2598B323 + // This function resets the alignment set using SetScriptGfxAlign and SetScriptGfxAlignParams to the default values ('I', 'I'; 0, 0, 0, 0). + // This should be used after having used the aforementioned functions in order to not affect any other scripts attempting to draw. + inline Void ResetScriptGfxAlign() { return _i(0xE3A3DB414A373DAB); } // 0xe3a3db414a373dab0x3fe33bd6B323 + // Sets the draw offset/calculated size for SetScriptGfxAlign. If using any alignment other than left/top, the game expects the width/height to be configured using this native in order to get a proper starting position for the draw command. + inline Void SetScriptGfxAlignParams(float x, float y, float w, float h) { return _i(0xF5A2C681787E579D, x, y, w, h); } // 0xf5a2c681787e579d0x76c641e4B323 + // Calculates the effective X/Y fractions when applying the values set by SetScriptGfxAlign and SetScriptGfxAlignParams + inline Void GetScriptGfxAlignPosition(float x, float y, float* calculatedX, float* calculatedY) { return _i(0x6DD8F5AA635EB4B2, x, y, calculatedX, calculatedY); } // 0x6dd8f5aa635eb4b2B323 + // Gets the scale of safe zone. if the safe zone size scale is max, it will return 1.0. + inline float GetSafeZoneSize() { return _i(0xBAF107B6BB2C97F0); } // 0xbaf107b6bb2c97f00x3f0d1a6fB323 + // Draws a 2D sprite on the screen. + // + // Parameters: + // textureDict - Name of texture dictionary to load texture from (e.g. "CommonMenu", "MPWeaponsCommon", etc.) + // + // textureName - Name of texture to load from texture dictionary (e.g. "last_team_standing_icon", "tennis_icon", etc.) + // + // screenX/Y - Screen offset (0.5 = center) + // scaleX/Y - Texture scaling. Negative values can be used to flip the texture on that axis. (0.5 = half) + // + // heading - Texture rotation in degrees (default = 0.0) positive is clockwise, measured in degrees + // + // red,green,blue - Sprite color (default = 255/255/255) + // + // alpha - opacity level + inline Void DrawSprite(String textureDict, String textureName, float screenX, float screenY, float width, float height, float heading, int red, int green, int blue, int alpha, BOOL p11, Any p12) { return _i(0xE7FFAE5EBF23D890, textureDict, textureName, screenX, screenY, width, height, heading, red, green, blue, alpha, p11, p12); } // 0xe7ffae5ebf23d8900x1fec16b0B323 + // Used in arcade games and Beam hack minigame in Doomsday Heist. I will most certainly dive into this to try replicate arcade games. + // x position must be between 0.0 and 1.0 (1.0 being the most right side of the screen) + // y position must be between 0.0 and 1.0 (1.0 being the most bottom side of the screen) + // width 0.0 - 1.0 is the reasonable amount generally + // height 0.0 - 1.0 is the reasonable amount generally + // p6 almost always 0.0 + // p11 seems to be unknown but almost always 0 int + inline Void DrawSpriteArx(String textureDict, String textureName, float x, float y, float width, float height, float p6, int red, int green, int blue, int alpha, Any p11, Any p12) { return _i(0x2D3B147AFAD49DE0, textureDict, textureName, x, y, width, height, p6, red, green, blue, alpha, p11, p12); } // 0x2d3b147afad49de0B1290 + // Similar to _DRAW_SPRITE, but seems to be some kind of "interactive" sprite, at least used by render targets. + // These seem to be the only dicts ever requested by this native: + // + // prop_screen_biker_laptop + // Prop_Screen_GR_Disruption + // Prop_Screen_TaleOfUs + // prop_screen_nightclub + // Prop_Screen_IE_Adhawk + // prop_screen_sm_free_trade_shipping + // prop_screen_hacker_truck + // MPDesktop + // Prop_Screen_Nightclub + // And a few others + // + inline Void DrawSpriteNamedRendertarget(String textureDict, String textureName, float screenX, float screenY, float width, float height, float heading, int red, int green, int blue, int alpha, Any p11) { return _i(0x2BC54A8188768488, textureDict, textureName, screenX, screenY, width, height, heading, red, green, blue, alpha, p11); } // 0x2bc54a8188768488B877 + // Similar to DrawSprite, but allows to specify the texture coordinates used to draw the sprite. + // + // u1, v1 - texture coordinates for the top-left corner + // u2, v2 - texture coordinates for the bottom-right corner + inline Void DrawSpriteArxWithUv(String textureDict, String textureName, float x, float y, float width, float height, float u1, float v1, float u2, float v2, float heading, int red, int green, int blue, int alpha, Any p15) { return _i(0x95812F9B26074726, textureDict, textureName, x, y, width, height, u1, v1, u2, v2, heading, red, green, blue, alpha, p15); } // 0x95812f9b26074726B1868 + // Example: + // GRAPHICS::AddEntityIcon(a_0, "MP_Arrow"); + // + // I tried this and nothing happened... + inline int AddEntityIcon(Entity entity, String icon) { return _i(0x9CD43EEE12BF4DD0, entity, icon); } // 0x9cd43eee12bf4dd00xf3027d21B323 + inline Void SetEntityIconVisibility(Entity entity, BOOL toggle) { return _i(0xE0E8BEECCA96BA31, entity, toggle); } // 0xe0e8beecca96ba310xd1d2fd52B323 + inline Void SetEntityIconColor(Entity entity, int red, int green, int blue, int alpha) { return _i(0x1D5F595CCAE2E238, entity, red, green, blue, alpha); } // 0x1d5f595ccae2e2380x6ee1e946B323 + // Sets the on-screen drawing origin for draw-functions (which is normally x=0,y=0 in the upper left corner of the screen) to a world coordinate. + // From now on, the screen coordinate which displays the given world coordinate on the screen is seen as x=0,y=0. + // + // Example in C#: + // Vector3 boneCoord = somePed.GetBoneCoord(Bone.SKEL_Head); + // Function.Call(Hash.SetDrawOrigin, boneCoord.X, boneCoord.Y, boneCoord.Z, 0); + // Function.Call(Hash.DrawSprite, "helicopterhud", "hud_corner", -0.01, -0.015, 0.013, 0.013, 0.0, 255, 0, 0, 200); + // Function.Call(Hash.DrawSprite, "helicopterhud", "hud_corner", 0.01, -0.015, 0.013, 0.013, 90.0, 255, 0, 0, 200); + // Function.Call(Hash.DrawSprite, "helicopterhud", "hud_corner", -0.01, 0.015, 0.013, 0.013, 270.0, 255, 0, 0, 200); + // Function.Call(Hash.DrawSprite, "helicopterhud", "hud_corner", 0.01, 0.015, 0.013, 0.013, 180.0, 255, 0, 0, 200); + // Function.Call(Hash.ClearDrawOrigin); + // + // Result: www11.pic-upload.de/19.06.15/bkqohvil2uao.jpg + // If the pedestrian starts walking around now, the sprites are always around her head, no matter where the head is displayed on the screen. + // + // This function also effects the drawing of texts and other UI-elements. + // The effect can be reset by calling GRAPHICS::ClearDrawOrigin(). + inline Void SetDrawOrigin(float x, float y, float z, BOOL p3) { return _i(0xAA0008F3BBB8F416, x, y, z, p3); } // 0xaa0008f3bbb8f4160xe10198d5B323 + // Resets the screen's draw-origin which was changed by the function GRAPHICS::SetDrawOrigin(...) back to x=0,y=0. + // + // See GRAPHICS::SetDrawOrigin(...) for further information. + inline Void ClearDrawOrigin() { return _i(0xFF0B610F6BE0D7AF); } // 0xff0b610f6be0d7af0xdd76b263B323 + inline int SetBinkMovie(String name) { return _i(0x338D9F609FD632DB, name); } // 0x338d9f609fd632dbB1290 + inline Void PlayBinkMovie(int binkMovie) { return _i(0x70D2CC8A542A973C, binkMovie); } // 0x70d2cc8a542a973cB1290 + inline Void StopBinkMovie(int binkMovie) { return _i(0x63606A61DE68898A, binkMovie); } // 0x63606a61de68898aB1290 + inline Void ReleaseBinkMovie(int binkMovie) { return _i(0x04D950EEFA4EED8C, binkMovie); } // 0x04d950eefa4eed8cB1290 + inline Void DrawBinkMovie(int binkMovie, float p1, float p2, float p3, float p4, float p5, int r, int g, int b, int a) { return _i(0x7118E83EEB9F7238, binkMovie, p1, p2, p3, p4, p5, r, g, b, a); } // 0x7118e83eeb9f7238B1290 + // In percentage: 0.0 - 100.0 + inline Void SetBinkMovieTime(int binkMovie, float progress) { return _i(0x0CB6B3446855B57A, binkMovie, progress); } // 0x0cb6b3446855b57aB1290 + // In percentage: 0.0 - 100.0 + inline float GetBinkMovieTime(int binkMovie) { return _i(0x8E17DDD6B9D5BF29, binkMovie); } // 0x8e17ddd6b9d5bf29B1734 + // binkMovie: Is return value from _SET_BINK_MOVIE. Has something to do with bink volume? (audRequestedSettings::SetVolumeCurveScale) + inline Void SetBinkMovieVolume(int binkMovie, float value) { return _i(0xAFF33B1178172223, binkMovie, value); } // 0xaff33b1178172223B1290 + // Might be more appropriate in AUDIO? + inline Void AttachTvAudioToEntity(Entity entity) { return _i(0x845BAD77CC770633, entity); } // 0x845bad77cc7706330x784944dbB323 + inline Void SetBinkMovieAudioFrontend(int binkMovie, BOOL p1) { return _i(0xF816F2933752322D, binkMovie, p1); } // 0xf816f2933752322dB1868 + // Probably changes tvs from being a 3d audio to being "global" audio + inline Void SetTvAudioFrontend(BOOL toggle) { return _i(0x113D2C5DC57E1774, toggle); } // 0x113d2c5dc57e17740x2e0dfa35B323 + inline Void SetBinkShouldSkip(int binkMovie, BOOL bShouldSkip) { return _i(0x6805D58CAA427B72, binkMovie, bShouldSkip); } // 0x6805d58caa427b72B1290 + inline int LoadMovieMeshSet(String movieMeshSetName) { return _i(0xB66064452270E8F1, movieMeshSetName); } // 0xb66064452270e8f10x9627905cB323 + inline Void ReleaseMovieMeshSet(int movieMeshSet) { return _i(0xEB119AA014E89183, movieMeshSet); } // 0xeb119aa014e891830x4fa5501dB323 + inline int QueryMovieMeshSetState(Any p0) { return _i(0x9B6E70C5CEEF4EEB, p0); } // 0x9b6e70c5ceef4eeb0x9d5d9b38B323 + // int screenresx,screenresy; + // GetScreenResolution(&screenresx,&screenresy); + inline Void GetScreenResolution(int* x, int* y) { return _i(0x888D57E407E63624, x, y); } // 0x888d57e407e636240x29f3572fB323 + // Returns current screen resolution. + inline Void GetActualScreenResolution(int* x, int* y) { return _i(0x873C9F3104101DD3, x, y); } // 0x873c9f3104101dd3B323 + inline float GetAspectRatio(BOOL b) { return _i(0xF1307EF624A80D87, b); } // 0xf1307ef624a80d87B323 + inline float GetScreenAspectRatio() { return _i(0xB2EBE8CBC58B90E9); } // 0xb2ebe8cbc58b90e9B323 + // Setting Aspect Ratio Manually in game will return: + // + // false - for Narrow format Aspect Ratios (3:2, 4:3, 5:4, etc. ) + // true - for Wide format Aspect Ratios (5:3, 16:9, 16:10, etc. ) + // + // Setting Aspect Ratio to "Auto" in game will return "false" or "true" based on the actual set Resolution Ratio. + inline BOOL GetIsWidescreen() { return _i(0x30CF4BDA4FCB1905); } // 0x30cf4bda4fcb19050xec717aefB323 + // false = Any resolution < 1280x720 + // true = Any resolution >= 1280x720 + inline BOOL GetIsHidef() { return _i(0x84ED31191CC5D2C9); } // 0x84ed31191cc5d2c90x1c340359B323 + inline Void AdjustNextPosSizeAsNormalized169() { return _i(0xEFABC7722293DA7C); } // 0xefabc7722293da7cB323 + // Enables Night Vision. + // + // Example: + // C#: Function.Call(Hash.SetNightvision, true); + // C++: GRAPHICS::SetNightvision(true); + // + // BOOL toggle: + // true = turns night vision on for your player. + // false = turns night vision off for your player. + inline Void SetNightvision(BOOL toggle) { return _i(0x18F621F7A5B1F85D, toggle); } // 0x18f621f7a5b1f85d0xd1e5565fB323 + inline BOOL GetRequestingnightvision() { return _i(0x35FB78DC42B7BD21); } // 0x35fb78dc42b7bd210xf3a6309eB323 + inline BOOL GetUsingnightvision() { return _i(0x2202A3F42C8E5F79); } // 0x2202a3f42c8e5f790x62619061B323 + inline Void SetExposuretweak(BOOL toggle) { return _i(0xEF398BEEE4EF45F9, toggle); } // 0xef398beee4ef45f9B323 + inline Void ForceExposureReadback(BOOL toggle) { return _i(0x814AF7DCAACC597B, toggle); } // 0x814af7dcaacc597bB372 + inline Void OverrideNightvisionLightRange(float p0) { return _i(0x43FA7CBE20DAB219, p0); } // 0x43fa7cbe20dab219B1290 + inline Void SetNoiseoveride(BOOL toggle) { return _i(0xE787BF1C5CF823C9, toggle); } // 0xe787bf1c5cf823c90xd576f5ddB323 + inline Void SetNoisinessoveride(float value) { return _i(0xCB6A7C3BB17A0C67, value); } // 0xcb6a7c3bb17a0c670x046b62d9B323 + // Convert a world coordinate into its relative screen coordinate. (WorldToScreen) + // + // Returns a boolean; whether or not the operation was successful. It will return false if the coordinates given are not visible to the rendering camera. + // + // + // For .NET users... + // + // VB: + // Public Shared Function World3DToScreen2d(pos as vector3) As Vector2 + // + // Dim x2dp, y2dp As New Native.OutputArgument + // + // Native.Function.Call(Of Boolean)(Native.Hash.GetScreenCoordFromWorldCoord , pos.x, pos.y, pos.z, x2dp, y2dp) + // Return New Vector2(x2dp.GetResult(Of Single), y2dp.GetResult(Of Single)) + // + // End Function + // + // C#: + // Vector2 World3DToScreen2d(Vector3 pos) + // { + // var x2dp = new OutputArgument(); + // var y2dp = new OutputArgument(); + // + // Function.Call(Hash.GetScreenCoordFromWorldCoord , pos.X, pos.Y, pos.Z, x2dp, y2dp); + // return new Vector2(x2dp.GetResult(), y2dp.GetResult()); + // } + // //USE VERY SMALL VALUES FOR THE SCALE OF RECTS/TEXT because it is dramatically larger on screen than in 3D, e.g '0.05' small. + // + // Used to be called _WORLD3D_TO_SCREEN2D + // + // I thought we lost you from the scene forever. It does seem however that calling SetDrawOrigin then your natives, then ending it. Seems to work better for certain things such as keeping boxes around people for a predator missile e.g. + inline BOOL GetScreenCoordFromWorldCoord(float worldX, float worldY, float worldZ, float* screenX, float* screenY) { return _i(0x34E82F05DF2974F5, worldX, worldY, worldZ, screenX, screenY); } // 0x34e82f05df2974f50x1f950e4bB323 + // Returns the texture resolution of the passed texture dict+name. + // + // Note: Most texture resolutions are doubled compared to the console version of the game. + inline Vector3 GetTextureResolution(String textureDict, String textureName) { return _i(0x35736EE65BD00C11, textureDict, textureName); } // 0x35736ee65bd00c110x096daa4dB323 + // Overriding ped badge texture to a passed texture. It's synced between players (even custom textures!), don't forget to request used dict on *all* clients to make it sync properly. Can be removed by passing empty strings. + inline BOOL OverridePedCrewLogoTexture(Ped ped, String txd, String txn) { return _i(0x95EB5E34F821BABE, ped, txd, txn); } // 0x95eb5e34f821babeB877 + inline Void SetDistanceBlurStrengthOverride(float p0) { return _i(0xE2892E7E55D7073A, p0); } // 0xe2892e7e55d7073a0x455f1084B323 + // Purpose of p0 and p1 unknown. + inline Void SetFlash(float p0, float p1, float fadeIn, float duration, float fadeOut) { return _i(0x0AB84296FED9CFC6, p0, p1, fadeIn, duration, fadeOut); } // 0x0ab84296fed9cfc60x7e55a1eeB323 + inline Void DisableOcclusionThisFrame() { return _i(0x3669F1B198DCAA4F); } // 0x3669f1b198dcaa4f0x0dcc0b8bB323 + // Does not affect weapons, particles, fire/explosions, flashlights or the sun. + // When set to true, all emissive textures (including ped components that have light effects), street lights, building lights, vehicle lights, etc will all be turned off. + // + // Used in Humane Labs Heist for EMP. + // + // state: True turns off all artificial light sources in the map: buildings, street lights, car lights, etc. False turns them back on. + inline Void SetArtificialLightsState(BOOL state) { return _i(0x1268615ACE24D504, state); } // 0x1268615ace24d5040xaa2a0eafB323 + // If "blackout" is enabled, this native allows you to ignore "blackout" for vehicles. + inline Void SetArtificialVehicleLightsState(BOOL toggle) { return _i(0xE2B187C0939B3D32, toggle); } // 0xe2b187c0939b3d32B2060 + inline Void DisableHdtexThisFrame() { return _i(0xC35A6D07C93802B2); } // 0xc35a6d07c93802b2B323 + // Creates a tracked point, useful for checking the visibility of a 3D point on screen. + inline int CreateTrackedPoint() { return _i(0xE2C9439ED45DEA60); } // 0xe2c9439ed45dea600x3129c31aB323 + inline Void SetTrackedPointInfo(int point, float x, float y, float z, float radius) { return _i(0x164ECBB3CF750CB0, point, x, y, z, radius); } // 0x164ecbb3cf750cb00x28689aa4B323 + inline BOOL IsTrackedPointVisible(int point) { return _i(0xC45CCDAAC9221CA8, point); } // 0xc45ccdaac9221ca80x0bfc4f64B323 + inline Void DestroyTrackedPoint(int point) { return _i(0xB25DC90BAD56CA42, point); } // 0xb25dc90bad56ca420x14ac675fB323 + // This function is hard-coded to always return 0. + inline int SetGrassCullSphere(float p0, float p1, float p2, float p3) { return _i(0xBE197EAA669238F4, p0, p1, p2, p3); } // 0xbe197eaa669238f4B323 + // This native does absolutely nothing, just a nullsub + inline Void RemoveGrassCullSphere(int handle) { return _i(0x61F95E5BB3E0A8C6, handle); } // 0x61f95e5bb3e0a8c6B323 + inline Void ProcgrassEnableCullsphere(int handle, float x, float y, float z, float scale) { return _i(0xAE51BC858F32BA66, handle, x, y, z, scale); } // 0xae51bc858f32ba66B323 + inline Void ProcgrassDisableCullsphere(int handle) { return _i(0x649C97D52332341A, handle); } // 0x649c97d52332341aB323 + inline BOOL ProcgrassIsCullsphereEnabled(int handle) { return _i(0x2C42340F916C5930, handle); } // 0x2c42340f916c5930B323 + inline Void ProcgrassEnableAmbscalescan() { return _i(0x14FC5833464340A8); } // 0x14fc5833464340a8B323 + inline Void ProcgrassDisableAmbscalescan() { return _i(0x0218BA067D249DEA); } // 0x0218ba067d249deaB323 + inline Void DisableProcobjCreation() { return _i(0x1612C45F9E3E0D44); } // 0x1612c45f9e3e0d44B323 + inline Void EnableProcobjCreation() { return _i(0x5DEBD9C4DC995692); } // 0x5debd9c4dc995692B323 + inline Void GrassbatchEnableFlatteningExtInSphere(float x, float y, float z, Any p3, float p4, float p5, float p6, float scale) { return _i(0xAAE9BE70EC7C69AB, x, y, z, p3, p4, p5, p6, scale); } // 0xaae9be70ec7c69abB1290 + // Wraps 0xAAE9BE70EC7C69AB with FLT_MAX as p7, Jenkins: 0x73E96210? + inline Void GrassbatchEnableFlatteningInSphere(float x, float y, float z, float radius, float p4, float p5, float p6) { return _i(0x6D955F6A9E0295B1, x, y, z, radius, p4, p5, p6); } // 0x6d955f6a9e0295b1B323 + inline Void GrassbatchDisableFlattening() { return _i(0x302C91AB2D477F7E); } // 0x302c91ab2d477f7eB323 + inline Void CascadeShadowsInitSession() { return _i(0x03FC694AE06C5A20); } // 0x03fc694ae06c5a200x48f16186B323 + inline Void CascadeShadowsSetCascadeBounds(Any p0, BOOL p1, float p2, float p3, float p4, float p5, BOOL p6, float p7) { return _i(0xD2936CAB8B58FCBD, p0, p1, p2, p3, p4, p5, p6, p7); } // 0xd2936cab8b58fcbd0x84f05943B323 + inline Void CascadeShadowsSetCascadeBoundsScale(float p0) { return _i(0x5F0F3F56635809EF, p0); } // 0x5f0f3f56635809ef0x13d4abc0B323 + inline Void CascadeShadowsSetEntityTrackerScale(float p0) { return _i(0x5E9DAF5A20F15908, p0); } // 0x5e9daf5a20f159080xd2157428B323 + inline Void CascadeShadowsSetSplitZExpWeight(float p0) { return _i(0x36F6626459D91457, p0); } // 0x36f6626459d914570xc07c64c9B323 + inline Void CascadeShadowsSetBoundPosition(Any p0) { return _i(0x259BA6D4E6F808F1, p0); } // 0x259ba6d4e6f808f1B1011 + // When this is set to ON, shadows only draw as you get nearer. + // + // When OFF, they draw from a further distance. + inline Void CascadeShadowsEnableEntityTracker(BOOL toggle) { return _i(0x80ECBC0C856D3B0B, toggle); } // 0x80ecbc0c856d3b0b0xfe903d0fB323 + inline Void CascadeShadowsSetScreenSizeCheckEnabled(BOOL p0) { return _i(0x25FC3E33A31AD0C9, p0); } // 0x25fc3e33a31ad0c9B323 + // Possible values: + // "CSM_ST_POINT" + // "CSM_ST_LINEAR" + // "CSM_ST_TWOTAP" + // "CSM_ST_BOX3x3" + // "CSM_ST_BOX4x4" + // "CSM_ST_DITHER2_LINEAR" + // "CSM_ST_CUBIC" + // "CSM_ST_DITHER4" + // "CSM_ST_DITHER16" + // "CSM_ST_SOFT16" + // "CSM_ST_DITHER16_RPDB" + // "CSM_ST_POISSON16_RPDB_GNORM" + // "CSM_ST_HIGHRES_BOX4x4" + // "CSM_ST_CLOUDS_SIMPLE" + // "CSM_ST_CLOUDS_LINEAR" + // "CSM_ST_CLOUDS_TWOTAP" + // "CSM_ST_CLOUDS_BOX3x3" + // "CSM_ST_CLOUDS_BOX4x4" + // "CSM_ST_CLOUDS_DITHER2_LINEAR" + // "CSM_ST_CLOUDS_SOFT16" + // "CSM_ST_CLOUDS_DITHER16_RPDB" + // "CSM_ST_CLOUDS_POISSON16_RPDB_GNORM" + inline Void CascadeShadowsSetShadowSampleType(String type) { return _i(0xB11D94BC55F41932, type); } // 0xb11d94bc55f419320xde10ba1fB323 + inline Void CascadeShadowsClearShadowSampleType() { return _i(0x27CB772218215325); } // 0x27cb772218215325B323 + inline Void CascadeShadowsSetAircraftMode(BOOL p0) { return _i(0x6DDBF9DFFC4AC080, p0); } // 0x6ddbf9dffc4ac0800x9f470be3B323 + inline Void CascadeShadowsSetDynamicDepthMode(BOOL p0) { return _i(0xD39D13C9FEBF0511, p0); } // 0xd39d13c9febf05110x4a124267B323 + inline Void CascadeShadowsSetDynamicDepthValue(float p0) { return _i(0x02AC28F3A01FA04A, p0); } // 0x02ac28f3a01fa04a0xb19b2764B323 + inline Void CascadeShadowsEnableFreezer(BOOL p0) { return _i(0x0AE73D8DF3A762B2, p0); } // 0x0ae73d8df3a762b20x342fa2b4B323 + inline Void WaterReflectionSetScriptObjectVisibility(Any p0) { return _i(0xCA465D9CC0D231BA, p0); } // 0xca465d9cc0d231baB1011 + inline Void GolfTrailSetEnabled(BOOL toggle) { return _i(0xA51C4B86B71652AE, toggle); } // 0xa51c4b86b71652ae0x5d3bffc9B323 + // p8 seems to always be false. + inline Void GolfTrailSetPath(float p0, float p1, float p2, float p3, float p4, float p5, float p6, float p7, BOOL p8) { return _i(0x312342E1A4874F3F, p0, p1, p2, p3, p4, p5, p6, p7, p8); } // 0x312342e1a4874f3f0xd9653728B323 + inline Void GolfTrailSetRadius(float p0, float p1, float p2) { return _i(0x2485D34E50A22E84, p0, p1, p2); } // 0x2485d34e50a22e840x72ba8a14B323 + inline Void GolfTrailSetColour(int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9, int p10, int p11) { return _i(0x12995F2E53FFA601, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); } // 0x12995f2e53ffa6010x804f444cB323 + inline Void GolfTrailSetTessellation(int p0, int p1) { return _i(0xDBAA5EC848BA2D46, p0, p1); } // 0xdbaa5ec848ba2d460xbb1a1294B323 + inline Void GolfTrailSetFixedControlPointEnable(BOOL p0) { return _i(0xC0416B061F2B7E5E, p0); } // 0xc0416b061f2b7e5e0x1a1a72efB323 + // 12 matches across 4 scripts. All 4 scripts were job creators. + // + // type ranged from 0 - 2. + // p4 was always 0.2f. Likely scale. + // assuming p5 - p8 is RGBA, the graphic is always yellow (255, 255, 0, 255). + // + // Tested but noticed nothing. + inline Void GolfTrailSetFixedControlPoint(int type, float xPos, float yPos, float zPos, float p4, int red, int green, int blue, int alpha) { return _i(0xB1BB03742917A5D6, type, xPos, yPos, zPos, p4, red, green, blue, alpha); } // 0xb1bb03742917a5d60x3bb12b75B323 + // Only appeared in Golf & Golf_mp. Parameters were all ptrs + inline Void GolfTrailSetShaderParams(float p0, float p1, float p2, float p3, float p4) { return _i(0x9CFDD90B2B844BF7, p0, p1, p2, p3, p4); } // 0x9cfdd90b2b844bf70x4ea70fb4B323 + inline Void GolfTrailSetFacing(BOOL p0) { return _i(0x06F761EA47C1D3ED, p0); } // 0x06f761ea47c1d3ed0x0d830dc7B323 + inline float GolfTrailGetMaxHeight() { return _i(0xA4819F5E23E2FFAD); } // 0xa4819f5e23e2ffad0xa08b46adB323 + inline Vector3 GolfTrailGetVisualControlPoint(int p0) { return _i(0xA4664972A9B8F8BA, p0); } // 0xa4664972a9b8f8ba0xecd470f0B323 + // Toggles Heatvision on/off. + inline Void SetSeethrough(BOOL toggle) { return _i(0x7E08924259E08CE0, toggle); } // 0x7e08924259e08ce00x74d4995cB323 + inline BOOL GetUsingseethrough() { return _i(0x44B80ABAB9D80BD3); } // 0x44b80abab9d80bd30x1fe547f2B323 + inline Void SeethroughReset() { return _i(0x70A64C0234EF522C); } // 0x70a64c0234ef522c0x310e9b67B323 + inline Void SeethroughSetFadeStartdistance(float distance) { return _i(0xA78DE25577300BA1, distance); } // 0xa78de25577300ba1B573 + inline Void SeethroughSetFadeEnddistance(float distance) { return _i(0x9D75795B9DC6EBBF, distance); } // 0x9d75795b9dc6ebbfB573 + inline float SeethroughGetMaxThickness() { return _i(0x43DBAE39626CE83F); } // 0x43dbae39626ce83fB1290 + // 0.0 = you will not be able to see people behind the walls. 50.0 and more = you will see everyone through the walls. More value is "better" view. See https://gfycat.com/FirmFlippantGourami + // min: 1.0 + // max: 10000.0 + inline Void SeethroughSetMaxThickness(float thickness) { return _i(0x0C8FAC83902A62DF, thickness); } // 0x0c8fac83902a62dfB573 + inline Void SeethroughSetNoiseMin(float amount) { return _i(0xFF5992E1C9E65D05, amount); } // 0xff5992e1c9e65d05B573 + inline Void SeethroughSetNoiseMax(float amount) { return _i(0xFEBFBFDFB66039DE, amount); } // 0xfebfbfdfb66039deB573 + inline Void SeethroughSetHilightIntensity(float intensity) { return _i(0x19E50EB6E33E1D28, intensity); } // 0x19e50eb6e33e1d28B573 + inline Void SeethroughSetHighlightNoise(float noise) { return _i(0x1636D7FC127B10D2, noise); } // 0x1636d7fc127b10d2B573 + // min: 0.0 + // max: 0.75 + inline Void SeethroughSetHeatscale(int index, float heatScale) { return _i(0xD7D0B00177485411, index, heatScale); } // 0xd7d0b001774854110x654f0287B323 + inline Void SeethroughSetColorNear(int red, int green, int blue) { return _i(0x1086127B3A63505E, red, green, blue); } // 0x1086127b3a63505e0x5b2a67a8B573 + // Setter for GetMotionblurMaxVelScaler + inline Void SetMotionblurMaxVelScaler(float p0) { return _i(0xB3C641F3630BF6DA, p0); } // 0xb3c641f3630bf6da0xf6b837f0B323 + // Getter for SetMotionblurMaxVelScaler + inline float GetMotionblurMaxVelScaler() { return _i(0xE59343E9E96529E7); } // 0xe59343e9e96529e70xd906a3a9B323 + inline Void SetForceMotionblur(BOOL toggle) { return _i(0x6A51F78772175A51, toggle); } // 0x6a51f78772175a51B1011 + inline Void TogglePlayerDamageOverlay(BOOL toggle) { return _i(0xE63D7C6EECECB66B, toggle); } // 0xe63d7c6eececb66b0xd34a6cbaB323 + // Sets an value related to timecycles. + inline Void ResetAdaptation(int p0) { return _i(0xE3E2C1B4C59DBC77, p0); } // 0xe3e2c1b4c59dbc770xd8cc7221B323 + // time in ms to transition to fully blurred screen + inline BOOL TriggerScreenblurFadeIn(float transitionTime) { return _i(0xA328A24AAA6B7FDC, transitionTime); } // 0xa328a24aaa6b7fdc0x5604b890B323 + // time in ms to transition from fully blurred to normal + inline BOOL TriggerScreenblurFadeOut(float transitionTime) { return _i(0xEFACC8AEF94430D5, transitionTime); } // 0xefacc8aef94430d50x46617502B323 + inline Void DisableScreenblurFade() { return _i(0xDE81239437E8C5A8); } // 0xde81239437e8c5a80xdb7aecdaB323 + inline float GetScreenblurFadeCurrentTime() { return _i(0x5CCABFFCA31DDE33); } // 0x5ccabffca31dde330xea432a94B323 + // Returns whether screen transition to blur/from blur is running. + inline BOOL IsScreenblurFadeRunning() { return _i(0x7B226C785A52A0A9); } // 0x7b226c785a52a0a90x926b8734B323 + inline Void TogglePausedRenderphases(BOOL toggle) { return _i(0xDFC252D8A3E15AB7, toggle); } // 0xdfc252d8a3e15ab70x30ade541B323 + inline BOOL GetTogglePausedRenderphasesStatus() { return _i(0xEB3DAC2C86001E5E); } // 0xeb3dac2c86001e5e0xd4f5d07dB323 + inline Void ResetPausedRenderphases() { return _i(0xE1C8709406F2C41C); } // 0xe1c8709406f2c41c0x0113eae4B323 + inline Void GrabPausemenuOwnership() { return _i(0x851CD923176EBA7C); } // 0x851cd923176eba7c0xdcba251bB323 + inline Void SetHidofOverride(BOOL p0, BOOL p1, float nearplaneOut, float nearplaneIn, float farplaneOut, float farplaneIn) { return _i(0xBA3D65906822BED5, p0, p1, nearplaneOut, nearplaneIn, farplaneOut, farplaneIn); } // 0xba3d65906822bed50x513d444bB323 + inline Void SetLockAdaptiveDofDistance(BOOL p0) { return _i(0xB569F41F3E7E83A4, p0); } // 0xb569f41f3e7e83a4B1103 + inline BOOL PhonephotoeditorToggle(BOOL p0) { return _i(0x7AC24EAB6D74118D, p0); } // 0x7ac24eab6d74118d0xb2410eabB323 + inline BOOL PhonephotoeditorIsActive() { return _i(0xBCEDB009461DA156); } // 0xbcedb009461da1560x5ab94128B323 + inline BOOL PhonephotoeditorSetFrameTxd(String textureDict, BOOL p1) { return _i(0x27FEB5254759CDE3, textureDict, p1); } // 0x27feb5254759cde30xd63fcb3eB323 + // GRAPHICS::StartParticleFxNonLoopedAtCoord("scr_paleto_roof_impact", -140.8576f, 6420.789f, 41.1391f, 0f, 0f, 267.3957f, 0x3F800000, 0, 0, 0); + // + // Axis - Invert Axis Flags + // + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + // + // + // ------------------------------------------------------------------- + // C# + // + // Function.Call(Hash.StartParticleFxNonLoopedAtCoord, = you are calling this function. + // + // char *effectname = This is an in-game effect name, for e.g. "scr_fbi4_trucks_crash" is used to give the effects when truck crashes etc + // + // float x, y, z pos = this one is Simple, you just have to declare, where do you want this effect to take place at, so declare the ordinates + // + // float xrot, yrot, zrot = Again simple? just mention the value in case if you want the effect to rotate. + // + // float scale = is declare the scale of the effect, this may vary as per the effects for e.g 1.0f + // + // BOOL xaxis, yaxis, zaxis = To BOOL the axis values. + // + // example: + // Function.Call(Hash.StartParticleFxNonLoopedAtCoord, "scr_fbi4_trucks_crash", GTA.Game.Player.Character.Position.X, GTA.Game.Player.Character.Position.Y, GTA.Game.Player.Character.Position.Z + 4f, 0, 0, 0, 5.5f, 0, 0, 0); + inline BOOL StartParticleFxNonLoopedAtCoord(String effectName, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis) { return _i(0x25129531F77B9ED3, effectName, xPos, yPos, zPos, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis); } // 0x25129531f77b9ed30xdd79d679B323 + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + inline BOOL StartNetworkedParticleFxNonLoopedAtCoord(String effectName, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis, BOOL p11) { return _i(0xF56B8137DF10135D, effectName, xPos, yPos, zPos, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, p11); } // 0xf56b8137df10135d0x633f8c48B323 + // GRAPHICS::StartParticleFxNonLoopedOnPedBone("scr_sh_bong_smoke", PLAYER::PlayerPedId(), -0.025f, 0.13f, 0f, 0f, 0f, 0f, 31086, 0x3F800000, 0, 0, 0); + // + // Axis - Invert Axis Flags + // + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + inline BOOL StartParticleFxNonLoopedOnPedBone(String effectName, Ped ped, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, int boneIndex, float scale, BOOL axisX, BOOL axisY, BOOL axisZ) { return _i(0x0E7E72961BA18619, effectName, ped, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ); } // 0x0e7e72961ba186190x53daef4eB323 + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + inline BOOL StartNetworkedParticleFxNonLoopedOnPedBone(String effectName, Ped ped, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, int boneIndex, float scale, BOOL axisX, BOOL axisY, BOOL axisZ) { return _i(0xA41B6A43642AC2CF, effectName, ped, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ); } // 0xa41b6a43642ac2cf0x161780c1B323 + // Starts a particle effect on an entity for example your player. + // + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + // + // Example: + // C#: + // Function.Call(Hash.RequestNamedPtfxAsset, "scr_rcbarry2"); Function.Call(Hash.UseParticleFxAsset, "scr_rcbarry2"); Function.Call(Hash.StartParticleFxNonLoopedOnEntity, "scr_clown_appears", Game.Player.Character, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 1.0, false, false, false); + // + // Internally this calls the same function as GRAPHICS::StartParticleFxNonLoopedOnPedBone + // however it uses -1 for the specified bone index, so it should be possible to start a non looped fx on an entity bone using that native + // + // -can confirm StartParticleFxNonLoopedOnPedBone does NOT work on vehicle bones. + inline BOOL StartParticleFxNonLoopedOnEntity(String effectName, Entity entity, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, float scale, BOOL axisX, BOOL axisY, BOOL axisZ) { return _i(0x0D53A3B8DA0809D2, effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, scale, axisX, axisY, axisZ); } // 0x0d53a3b8da0809d20x9604dad4B323 + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + inline BOOL StartNetworkedParticleFxNonLoopedOnEntity(String effectName, Entity entity, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, float scale, BOOL axisX, BOOL axisY, BOOL axisZ) { return _i(0xC95EB1DB6E92113D, effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, scale, axisX, axisY, axisZ); } // 0xc95eb1db6e92113d0x469a2b4aB323 + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + inline BOOL StartParticleFxNonLoopedOnEntityBone(String effectName, Entity entity, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, int boneIndex, float scale, BOOL axisX, BOOL axisY, BOOL axisZ) { return _i(0x02B1F2A72E0F5325, effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ); } // 0x02b1f2a72e0f5325B2189 + // only works on some fx's, not networked + inline Void SetParticleFxNonLoopedColour(float r, float g, float b) { return _i(0x26143A59EF48B262, r, g, b); } // 0x26143a59ef48b2620x7b689e20B323 + // Usage example for C#: + // + // Function.Call(Hash.SetParticleFxNonLoopedAlpha, new InputArgument[] { 0.1f }); + // + // Note: the argument alpha ranges from 0.0f-1.0f ! + inline Void SetParticleFxNonLoopedAlpha(float alpha) { return _i(0x77168D722C58B2FC, alpha); } // 0x77168d722c58b2fc0x497eaff2B323 + inline Void SetParticleFxNonLoopedScale(float scale) { return _i(0xB7EF5850C39FABCA, scale); } // 0xb7ef5850c39fabcaB2802 + inline Void SetParticleFxNonLoopedEmitterSize(float p0, float p1, float scale) { return _i(0x1E2E01C00837D26E, p0, p1, scale); } // 0x1e2e01c00837d26eB2699 + // Used only once in the scripts (taxi_clowncar) + inline Void SetParticleFxForceVehicleInterior(BOOL toggle) { return _i(0x8CDE909A0370BB3A, toggle); } // 0x8cde909a0370bb3aB323 + // GRAPHICS::StartParticleFxLoopedAtCoord("scr_fbi_falling_debris", 93.7743f, -749.4572f, 70.86904f, 0f, 0f, 0f, 0x3F800000, 0, 0, 0, 0) + // + // + // p11 seems to be always 0 + // + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + inline int StartParticleFxLoopedAtCoord(String effectName, float x, float y, float z, float xRot, float yRot, float zRot, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis, BOOL p11) { return _i(0xE184F4F0DC5910E7, effectName, x, y, z, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, p11); } // 0xe184f4f0dc5910e70xd348e3e6B323 + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + inline int StartParticleFxLoopedOnPedBone(String effectName, Ped ped, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, int boneIndex, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis) { return _i(0xF28DA9F38CD1787C, effectName, ped, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis); } // 0xf28da9f38cd1787c0xf8fc196fB323 + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + inline int StartParticleFxLoopedOnEntity(String effectName, Entity entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis) { return _i(0x1AE42C1660FD6517, effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis); } // 0x1ae42c1660fd65170x0d06ff62B323 + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + inline int StartParticleFxLoopedOnEntityBone(String effectName, Entity entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, int boneIndex, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis) { return _i(0xC6EB449E33977F0B, effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis); } // 0xc6eb449e33977f0b0x23bf0f9bB323 + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + inline int StartNetworkedParticleFxLoopedOnEntity(String effectName, Entity entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis, float r, float g, float b, float a) { return _i(0x6F60E89A7B64EE1D, effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, r, g, b, a); } // 0x6f60e89a7b64ee1d0x110752b2B323 + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + inline int StartNetworkedParticleFxLoopedOnEntityBone(String effectName, Entity entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, int boneIndex, float scale, BOOL xAxis, BOOL yAxis, BOOL zAxis, float r, float g, float b, float a) { return _i(0xDDE23F30CC5A0F03, effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis, r, g, b, a); } // 0xdde23f30cc5a0f030xf478efcfB323 + // p1 is always 0 in the native scripts + inline Void StopParticleFxLooped(int ptfxHandle, BOOL p1) { return _i(0x8F75998877616996, ptfxHandle, p1); } // 0x8f759988776169960xd245455bB323 + inline Void RemoveParticleFx(int ptfxHandle, BOOL p1) { return _i(0xC401503DFE8D53CF, ptfxHandle, p1); } // 0xc401503dfe8d53cf0x6ba48c7eB323 + inline Void RemoveParticleFxFromEntity(Entity entity) { return _i(0xB8FEAEEBCC127425, entity); } // 0xb8feaeebcc1274250xcede52e9B323 + inline Void RemoveParticleFxInRange(float X, float Y, float Z, float radius) { return _i(0xDD19FA1C6D657305, X, Y, Z, radius); } // 0xdd19fa1c6d6573050x7eb8f275B323 + inline Void ForceParticleFxInVehicleInterior(Any p0, Any p1) { return _i(0xBA0127DA25FD54C9, p0, p1); } // 0xba0127da25fd54c9B372 + inline BOOL DoesParticleFxLoopedExist(int ptfxHandle) { return _i(0x74AFEF0D2E1E409B, ptfxHandle); } // 0x74afef0d2e1e409b0xcbf91d2aB323 + inline Void SetParticleFxLoopedOffsets(int ptfxHandle, float x, float y, float z, float rotX, float rotY, float rotZ) { return _i(0xF7DDEBEC43483C43, ptfxHandle, x, y, z, rotX, rotY, rotZ); } // 0xf7ddebec43483c430x641f7790B323 + inline Void SetParticleFxLoopedEvolution(int ptfxHandle, String propertyName, float amount, BOOL noNetwork) { return _i(0x5F0C4B5B1C393BE2, ptfxHandle, propertyName, amount, noNetwork); } // 0x5f0c4b5b1c393be20x1cbc1373B323 + // only works on some fx's + // + // p4 = 0 + inline Void SetParticleFxLoopedColour(int ptfxHandle, float r, float g, float b, BOOL p4) { return _i(0x7F8F65877F88783B, ptfxHandle, r, g, b, p4); } // 0x7f8f65877f88783b0x5219d530B323 + inline Void SetParticleFxLoopedAlpha(int ptfxHandle, float alpha) { return _i(0x726845132380142E, ptfxHandle, alpha); } // 0x726845132380142e0x5ed49be1B323 + inline Void SetParticleFxLoopedScale(int ptfxHandle, float scale) { return _i(0xB44250AAA456492D, ptfxHandle, scale); } // 0xb44250aaa456492d0x099b8b49B323 + inline Void SetParticleFxLoopedFarClipDist(int ptfxHandle, float range) { return _i(0xDCB194B85EF7B541, ptfxHandle, range); } // 0xdcb194b85ef7b5410x233de879B323 + inline Void SetParticleFxLoopedCameraBias(int ptfxHandle, float p1) { return _i(0x4100BF0346A8D2C3, ptfxHandle, p1); } // 0x4100bf0346a8d2c3B3095 + inline Void SetParticleFxCamInsideVehicle(BOOL p0) { return _i(0xEEC4047028426510, p0); } // 0xeec40470284265100x19ec0001B323 + inline Void SetParticleFxCamInsideNonplayerVehicle(Vehicle vehicle, BOOL p1) { return _i(0xACEE6F360FC1F6B6, vehicle, p1); } // 0xacee6f360fc1f6b60x6b125a02B323 + inline Void SetParticleFxShootoutBoat(Any p0) { return _i(0x96EF97DAEB89BEF5, p0); } // 0x96ef97daeb89bef50xd938dee0B323 + inline Void ClearParticleFxShootoutBoat() { return _i(0x2A251AA48B2B46DB); } // 0x2a251aa48b2b46dbB323 + inline Void SetParticleFxBloodScale(Any p0) { return _i(0x908311265D42A820, p0); } // 0x908311265d42a820B323 + inline Void DisableInWaterPtfx(BOOL toggle) { return _i(0xCFD16F0DB5A3535C, toggle); } // 0xcfd16f0db5a3535cB2060 + inline Void DisableDownwashPtfx(BOOL toggle) { return _i(0x5F6DF3D92271E8A1, toggle); } // 0x5f6df3d92271e8a1B323 + inline Void SetParticleFxSlipstreamLodrangeScale(float scale) { return _i(0x2B40A97646381508, scale); } // 0x2b40a97646381508B1011 + // Creates cartoon effect when Michel smokes the weed + inline Void EnableClownBloodVfx(BOOL toggle) { return _i(0xD821490579791273, toggle); } // 0xd8214905797912730xc61c75e9B323 + // Creates a motion-blur sort of effect, this native does not seem to work, however by using the `START_SCREEN_EFFECT` native with `DrugsMichaelAliensFight` as the effect parameter, you should be able to get the effect. + inline Void EnableAlienBloodVfx(BOOL toggle) { return _i(0x9DCE1F0F78260875, toggle); } // 0x9dce1f0f782608750xce8b8748B323 + inline Void SetParticleFxBulletImpactScale(float scale) { return _i(0x27E32866E9A5C416, scale); } // 0x27e32866e9a5c4160xc1ad5ddfB323 + inline Void SetParticleFxBulletImpactLodrangeScale(float p0) { return _i(0xBB90E12CAC1DAB25, p0); } // 0xbb90e12cac1dab250x3968e915B323 + inline Void SetParticleFxBulletTraceNoAngleReject(BOOL p0) { return _i(0xCA4AE345A153D573, p0); } // 0xca4ae345a153d5730x64ba4648B323 + inline Void SetParticleFxBangScrapeLodrangeScale(float p0) { return _i(0x54E22EA2C1956A8D, p0); } // 0x54e22ea2c1956a8d0x8be3d47fB323 + inline Void SetParticleFxFootLodrangeScale(float p0) { return _i(0x949F397A288B28B3, p0); } // 0x949f397a288b28b30xe3880f5aB323 + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + inline Void SetParticleFxFootOverrideName(String p0) { return _i(0xBA3D194057C79A7B, p0); } // 0xba3d194057c79a7bB877 + inline Void SetSkidmarkRangeScale(float scale) { return _i(0x5DBF05DB5926D089, scale); } // 0x5dbf05db5926d089B1011 + inline Void SetPtfxForceVehicleInteriorFlag(Any p0) { return _i(0xC6730E0D14E50703, p0); } // 0xc6730e0d14e50703B2545 + inline Void RegisterPostfxBulletImpact(float weaponWorldPosX, float weaponWorldPosY, float weaponWorldPosZ, float intensity) { return _i(0x170911F37F646F29, weaponWorldPosX, weaponWorldPosY, weaponWorldPosZ, intensity); } // 0x170911f37f646f29B2802 + inline Void ForcePostfxBulletImpactsAfterHud(BOOL p0) { return _i(0x9B079E5221D984D3, p0); } // 0x9b079e5221d984d3B323 + // From the b678d decompiled scripts: + // + // GRAPHICS::UseParticleFxAsset("FM_Mission_Controler"); + // GRAPHICS::UseParticleFxAsset("scr_apartment_mp"); + // GRAPHICS::UseParticleFxAsset("scr_indep_fireworks"); + // GRAPHICS::UseParticleFxAsset("scr_mp_cig_plane"); + // GRAPHICS::UseParticleFxAsset("scr_mp_creator"); + // GRAPHICS::UseParticleFxAsset("scr_ornate_heist"); + // GRAPHICS::UseParticleFxAsset("scr_prison_break_heist_station"); + // + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + inline Void UseParticleFxAsset(String name) { return _i(0x6C38AF3693A69A91, name); } // 0x6c38af3693a69a910x9c720b61B323 + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + inline Void SetParticleFxOverride(String oldAsset, String newAsset) { return _i(0xEA1E2D93F6F75ED9, oldAsset, newAsset); } // 0xea1e2d93f6f75ed90xc92719a7B323 + // Resets the effect of SetParticleFxOverride + // + // Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json + inline Void ResetParticleFxOverride(String name) { return _i(0x89C8553DD3274AAE, name); } // 0x89c8553dd3274aae0x9e8d8b72B323 + // Returns ptfxHandle + // effectName: scr_sv_drag_burnout + inline int StartVehicleParticleFxLooped(Vehicle vehicle, String effectName, BOOL frontBack, BOOL leftRight, BOOL localOnly) { return _i(0xDF269BE2909E181A, vehicle, effectName, frontBack, leftRight, localOnly); } // 0xdf269be2909e181aB3095 + inline Void SetWeatherPtfxUseOverrideSettings(BOOL p0) { return _i(0xA46B73FAA3460AE1, p0); } // 0xa46b73faa3460ae1B323 + inline Void SetWeatherPtfxOverrideCurrLevel(float p0) { return _i(0xF78B803082D4386F, p0); } // 0xf78b803082d4386fB323 + inline Void WashDecalsInRange(float x, float y, float z, float range, float p4) { return _i(0x9C30613D50A6ADEF, x, y, z, range, p4); } // 0x9c30613d50a6adef0xdeecbc57B323 + inline Void WashDecalsFromVehicle(Vehicle vehicle, float p1) { return _i(0x5B712761429DBC14, vehicle, p1); } // 0x5b712761429dbc140x2929f11aB323 + // Fades nearby decals within the range specified + inline Void FadeDecalsInRange(float x, float y, float z, float p3, float p4) { return _i(0xD77EDADB0420E6E0, x, y, z, p3, p4); } // 0xd77edadb0420e6e00xf81e884aB323 + // Removes all decals in range from a position, it includes the bullet holes, blood pools, petrol... + inline Void RemoveDecalsInRange(float x, float y, float z, float range) { return _i(0x5D6B2D4830A67C62, x, y, z, range); } // 0x5d6b2d4830a67c620x06a619a0B323 + inline Void RemoveDecalsFromObject(Object obj) { return _i(0xCCF71CBDDF5B6CB9, obj); } // 0xccf71cbddf5b6cb90x8b67dca7B323 + inline Void RemoveDecalsFromObjectFacing(Object obj, float x, float y, float z) { return _i(0xA6F6F70FDC6D144C, obj, x, y, z); } // 0xa6f6f70fdc6d144c0xf4999a55B323 + inline Void RemoveDecalsFromVehicle(Vehicle vehicle) { return _i(0xE91F1B65F2B48D57, vehicle); } // 0xe91f1b65f2b48d570x831d06caB323 + // decal types: + // + // public enum DecalTypes + // { + // splatters_blood = 1010, + // splatters_blood_dir = 1015, + // splatters_blood_mist = 1017, + // splatters_mud = 1020, + // splatters_paint = 1030, + // splatters_water = 1040, + // splatters_water_hydrant = 1050, + // splatters_blood2 = 1110, + // weapImpact_metal = 4010, + // weapImpact_concrete = 4020, + // weapImpact_mattress = 4030, + // weapImpact_mud = 4032, + // weapImpact_wood = 4050, + // weapImpact_sand = 4053, + // weapImpact_cardboard = 4040, + // weapImpact_melee_glass = 4100, + // weapImpact_glass_blood = 4102, + // weapImpact_glass_blood2 = 4104, + // weapImpact_shotgun_paper = 4200, + // weapImpact_shotgun_mattress, + // weapImpact_shotgun_metal, + // weapImpact_shotgun_wood, + // weapImpact_shotgun_dirt, + // weapImpact_shotgun_tvscreen, + // weapImpact_shotgun_tvscreen2, + // weapImpact_shotgun_tvscreen3, + // weapImpact_melee_concrete = 4310, + // weapImpact_melee_wood = 4312, + // weapImpact_melee_metal = 4314, + // burn1 = 4421, + // burn2, + // burn3, + // burn4, + // burn5, + // bang_concrete_bang = 5000, + // bang_concrete_bang2, + // bang_bullet_bang, + // bang_bullet_bang2 = 5004, + // bang_glass = 5031, + // bang_glass2, + // solidPool_water = 9000, + // solidPool_blood, + // solidPool_oil, + // solidPool_petrol, + // solidPool_mud, + // porousPool_water, + // porousPool_blood, + // porousPool_oil, + // porousPool_petrol, + // porousPool_mud, + // porousPool_water_ped_drip, + // liquidTrail_water = 9050 + // } + inline int AddDecal(int decalType, float posX, float posY, float posZ, float p4, float p5, float p6, float p7, float p8, float p9, float width, float height, float rCoef, float gCoef, float bCoef, float opacity, float timeout, BOOL p17, BOOL p18, BOOL p19) { return _i(0xB302244A1839BDAD, decalType, posX, posY, posZ, p4, p5, p6, p7, p8, p9, width, height, rCoef, gCoef, bCoef, opacity, timeout, p17, p18, p19); } // 0xb302244a1839bdad0xead0c412B323 + inline int AddPetrolDecal(float x, float y, float z, float groundLvl, float width, float transparency) { return _i(0x4F5212C7AD880DF8, x, y, z, groundLvl, width, transparency); } // 0x4f5212c7ad880df80x1259df42B323 + inline int AddOilDecal(float x, float y, float z, float groundLvl, float width, float transparency) { return _i(0x126D7F89FE859A5E, x, y, z, groundLvl, width, transparency); } // 0x126d7f89fe859a5eB2699 + inline Void StartPetrolTrailDecals(float p0) { return _i(0x99AC7F0D8B9C893D, p0); } // 0x99ac7f0d8b9c893d0xe3938b0bB323 + inline Void AddPetrolTrailDecalInfo(float x, float y, float z, float p3) { return _i(0x967278682CB6967A, x, y, z, p3); } // 0x967278682cb6967a0xbaec6addB323 + inline Void EndPetrolTrailDecals() { return _i(0x0A123435A26C36CD); } // 0x0a123435a26c36cd0xccca6855B323 + inline Void RemoveDecal(int decal) { return _i(0xED3F346429CCD659, decal); } // 0xed3f346429ccd6590xa4363188B323 + inline BOOL IsDecalAlive(int decal) { return _i(0xC694D74949CAFD0C, decal); } // 0xc694d74949cafd0c0xcdd4a61aB323 + inline float GetDecalWashLevel(int decal) { return _i(0x323F647679A09103, decal); } // 0x323f647679a091030x054448efB323 + inline Void SetDisablePetrolDecalsIgnitingThisFrame() { return _i(0xD9454B5752C857DC); } // 0xd9454b5752c857dc0xeab6417cB323 + inline Void SetDisablePetrolDecalsRecyclingThisFrame() { return _i(0x27CFB1B1E078CB2D); } // 0x27cfb1b1e078cb2d0xc2703b88B323 + inline Void SetDisableDecalRenderingThisFrame() { return _i(0x4B5CFC83122DF602); } // 0x4b5cfc83122df6020xa706e84dB323 + inline BOOL GetIsPetrolDecalInRange(float xCoord, float yCoord, float zCoord, float radius) { return _i(0x2F09F7976C512404, xCoord, yCoord, zCoord, radius); } // 0x2f09f7976c5124040x242c6a04B323 + inline Void PatchDecalDiffuseMap(int decalType, String textureDict, String textureName) { return _i(0x8A35C742130C6080, decalType, textureDict, textureName); } // 0x8a35c742130c60800x335695cfB323 + inline Void UnpatchDecalDiffuseMap(int decalType) { return _i(0xB7ED70C49521A61D, decalType); } // 0xb7ed70c49521a61d0x7b786555B323 + inline Void MoveVehicleDecals(Any p0, Any p1) { return _i(0x84C8D7C2D30D3280, p0, p1); } // 0x84c8d7c2d30d32800xce9e6cf2B323 + // boneIndex is always chassis_dummy in the scripts. The x/y/z params are location relative to the chassis bone. + inline BOOL AddVehicleCrewEmblem(Vehicle vehicle, Ped ped, int boneIndex, float x1, float x2, float x3, float y1, float y2, float y3, float z1, float z2, float z3, float scale, Any p13, int alpha) { return _i(0x428BDCB9DA58DA53, vehicle, ped, boneIndex, x1, x2, x3, y1, y2, y3, z1, z2, z3, scale, p13, alpha); } // 0x428bdcb9da58da530x12077738B323 + inline BOOL AbortVehicleCrewEmblemRequest(int* p0) { return _i(0x82ACC484FFA3B05F, p0); } // 0x82acc484ffa3b05fB372 + inline Void RemoveVehicleCrewEmblem(Vehicle vehicle, int p1) { return _i(0xD2300034310557E4, vehicle, p1); } // 0xd2300034310557e40x667046a8B323 + inline int GetVehicleCrewEmblemRequestState(Vehicle vehicle, int p1) { return _i(0xFE26117A5841B2FF, vehicle, p1); } // 0xfe26117a5841b2ff0x4f4d76e8B323 + inline BOOL DoesVehicleHaveCrewEmblem(Vehicle vehicle, int p1) { return _i(0x060D935D3981A275, vehicle, p1); } // 0x060d935d3981a2750x6d58f73bB323 + inline Void DisableCompositeShotgunDecals(BOOL toggle) { return _i(0x0E4299C549F0D1F1, toggle); } // 0x0e4299c549f0d1f10x9babcba4B323 + inline Void DisableScuffDecals(BOOL toggle) { return _i(0x02369D5C8A51FDCF, toggle); } // 0x02369d5c8a51fdcf0xfdf6d8daB323 + inline Void SetDecalBulletImpactRangeScale(float p0) { return _i(0x46D1A61A21F566FC, p0); } // 0x46d1a61a21f566fc0x2056a015B323 + inline Void OverrideInteriorSmokeName(String name) { return _i(0x2A2A52824DB96700, name); } // 0x2a2a52824db967000x0f486429B323 + inline Void OverrideInteriorSmokeLevel(float level) { return _i(0x1600FD8CF72EBC12, level); } // 0x1600fd8cf72ebc120xd87cc710B323 + inline Void OverrideInteriorSmokeEnd() { return _i(0xEFB55E7C25D3B3BE); } // 0xefb55e7c25d3b3be0xe29ee145B323 + // Used with 'NG_filmnoir_BW{01,02}' timecycles and the "NOIR_FILTER_SOUNDS" audioref. + inline Void RegisterNoirLensEffect() { return _i(0xA44FF770DFBC5DAE); } // 0xa44ff770dfbc5daeB323 + inline Void DisableVehicleDistantlights(BOOL toggle) { return _i(0xC9F98AC1884E73A2, toggle); } // 0xc9f98ac1884e73a20x7cfae36fB323 + inline Void RenderShadowedLightsWithNoShadows(BOOL p0) { return _i(0x03300B57FCAC6DDB, p0); } // 0x03300b57fcac6ddb0x60f72371B323 + inline Void RequestEarlyLightCheck() { return _i(0x98EDF76A7271E4F2); } // 0x98edf76a7271e4f2B323 + // Forces footstep tracks on all surfaces. + inline Void UseSnowFootVfxWhenUnsheltered(BOOL toggle) { return _i(0xAEEDAD1420C65CC0, toggle); } // 0xaeedad1420c65cc00xc53576caB323 + inline Void ForceAllowSnowFootVfxOnIce(BOOL toggle) { return _i(0xA342A3763B3AFB6C, toggle); } // 0xa342a3763b3afb6cB3095 + // Forces vehicle trails on all surfaces. + inline Void UseSnowWheelVfxWhenUnsheltered(BOOL toggle) { return _i(0x4CC7F0FEA5283FE0, toggle); } // 0x4cc7f0fea5283fe00x7158b1eaB323 + inline Void DisableRegionVfx(Any p0) { return _i(0xEFD97FF47B745B8D, p0); } // 0xefd97ff47b745b8dB791 + inline Void ForceGroundSnowPass(BOOL toggle) { return _i(0x6E9EF3A33C8899F8, toggle); } // 0x6e9ef3a33c8899f8B3095 + // Only one match in the scripts: + // + // GRAPHICS::PresetInteriorAmbientCache("int_carrier_hanger"); + inline Void PresetInteriorAmbientCache(String timecycleModifierName) { return _i(0xD7021272EB0A451E, timecycleModifierName); } // 0xd7021272eb0a451e0x137e3e24B323 + // Loads the specified timecycle modifier. Modifiers are defined separately in another file (e.g. "timecycle_mods_1.xml") + // + // Parameters: + // modifierName - The modifier to load (e.g. "V_FIB_IT3", "scanline_cam", etc.) + // + // Full list of timecycle modifiers by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/timecycleModifiers.json + inline Void SetTimecycleModifier(String modifierName) { return _i(0x2C933ABF17A1DF41, modifierName); } // 0x2c933abf17a1df410xa81f3638B323 + inline Void SetTimecycleModifierStrength(float strength) { return _i(0x82E7FFCD5B2326B3, strength); } // 0x82e7ffcd5b2326b30x458f4f45B323 + // Full list of timecycle modifiers by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/timecycleModifiers.json + inline Void SetTransitionTimecycleModifier(String modifierName, float transition) { return _i(0x3BCF567485E1971C, modifierName, transition); } // 0x3bcf567485e1971c0xbb2ba72aB323 + inline Void SetTransitionOutOfTimecycleModifier(float strength) { return _i(0x1CBA05AE7BD7EE05, strength); } // 0x1cba05ae7bd7ee050x56345f6bB323 + inline Void ClearTimecycleModifier() { return _i(0x0F07E7745A236711); } // 0x0f07e7745a2367110x8d8df8eeB323 + // Only use for this in the PC scripts is: + // + // if (GRAPHICS::GetTimecycleModifierIndex() != -1) + inline int GetTimecycleModifierIndex() { return _i(0xFDF3D97C674AFB66); } // 0xfdf3d97c674afb660x594feec4B323 + inline int GetTimecycleTransitionModifierIndex() { return _i(0x459FD2C8D0AB78BC); } // 0x459fd2c8d0ab78bc0x03c44e4bB323 + inline BOOL GetIsTimecycleTransitioningOut() { return _i(0x98D18905BF723B99); } // 0x98d18905bf723b99B1493 + inline Void PushTimecycleModifier() { return _i(0x58F735290861E6B4); } // 0x58f735290861e6b40x7e082045B323 + inline Void PopTimecycleModifier() { return _i(0x3C8938D7D872211E); } // 0x3c8938d7d872211e0x79d7d235B323 + inline Void SetCurrentPlayerTcmodifier(String modifierName) { return _i(0xBBF327DED94E4DEB, modifierName); } // 0xbbf327ded94e4deb0x85ba15a4B323 + inline Void SetPlayerTcmodifierTransition(float value) { return _i(0xBDEB86F4D5809204, value); } // 0xbdeb86f4d58092040x9559bb38B323 + inline Void SetNextPlayerTcmodifier(String modifierName) { return _i(0xBF59707B3E5ED531, modifierName); } // 0xbf59707b3e5ed5310x554ba16eB323 + inline Void AddTcmodifierOverride(String modifierName1, String modifierName2) { return _i(0x1A8E2C8B9CF4549C, modifierName1, modifierName2); } // 0x1a8e2c8b9cf4549c0xe8f538b5B323 + inline Void ClearAllTcmodifierOverrides(String p0) { return _i(0x15E33297C3E8DC60, p0); } // 0x15e33297c3e8dc60B323 + // Full list of timecycle modifiers by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/timecycleModifiers.json + inline Void SetExtraTcmodifier(String modifierName) { return _i(0x5096FD9CCB49056D, modifierName); } // 0x5096fd9ccb49056dB323 + // Clears the secondary timecycle modifier usually set with _SET_EXTRA_TIMECYCLE_MODIFIER + inline Void ClearExtraTcmodifier() { return _i(0x92CCC17A7A2285DA); } // 0x92ccc17a7a2285daB323 + // See GetTimecycleModifierIndex for use, works the same just for the secondary timecycle modifier. + // Returns an integer representing the Timecycle modifier + inline int GetExtraTcmodifier() { return _i(0xBB0527EC6341496D); } // 0xbb0527ec6341496dB323 + // The same as SetTimecycleModifierStrength but for the secondary timecycle modifier. + inline Void EnableMoonCycleOverride(float strength) { return _i(0x2C328AF17210F009, strength); } // 0x2c328af17210f009B323 + // Resets the extra timecycle modifier strength normally set with 0x2C328AF17210F009 + inline Void DisableMoonCycleOverride() { return _i(0x2BF72AD5B41AA739); } // 0x2bf72ad5b41aa739B323 + inline int RequestScaleformMovie(String scaleformName) { return _i(0x11FE353CF9733E6F, scaleformName); } // 0x11fe353cf9733e6f0xc67e3dcbB323 + // Another RequestScaleformMovie equivalent. + inline int RequestScaleformMovieWithIgnoreSuperWidescreen(String scaleformName) { return _i(0x65E7E78842E74CDB, scaleformName); } // 0x65e7e78842e74cdbB372 + inline int RequestScaleformMovieInstance(String scaleformName) { return _i(0xC514489CFB8AF806, scaleformName); } // 0xc514489cfb8af8060x7cc8057dB323 + // Similar to RequestScaleformMovie, but seems to be some kind of "interactive" scaleform movie? + // + // These seem to be the only scaleforms ever requested by this native: + // "breaking_news" + // "desktop_pc" + // "ECG_MONITOR" + // "Hacking_PC" + // "TEETH_PULLING" + // + // Note: Unless this hash is out-of-order, this native is next-gen only. + // + inline int RequestScaleformMovieSkipRenderWhilePaused(String scaleformName) { return _i(0xBD06C611BB9048C2, scaleformName); } // 0xbd06c611bb9048c2B323 + inline BOOL HasScaleformMovieLoaded(int scaleformHandle) { return _i(0x85F01B8D5B90570E, scaleformHandle); } // 0x85f01b8d5b90570e0xddfb6448B323 + // val is 1-20 (0 will return false) + inline BOOL IsActiveScaleformMovieDeleting(int val) { return _i(0x2FCB133CA50A49EB, val); } // 0x2fcb133ca50a49ebB1290 + // val is 1-20. Return is related to INSTRUCTIONAL_BUTTONS, COLOUR_SWITCHER_02, etc? + inline BOOL IsScaleformMovieDeleting(int val) { return _i(0x86255B1FC929E33E, val); } // 0x86255b1fc929e33eB1290 + // Only values used in the scripts are: + // + // "heist_mp" + // "heistmap_mp" + // "instructional_buttons" + // "heist_pre" + inline BOOL HasScaleformMovieFilenameLoaded(String scaleformName) { return _i(0x0C1C5D756FB5F337, scaleformName); } // 0x0c1c5d756fb5f3370x494a9e50B323 + inline BOOL HasScaleformContainerMovieLoadedIntoParent(int scaleformHandle) { return _i(0x8217150E1217EBFD, scaleformHandle); } // 0x8217150e1217ebfd0x1dfe8d8aB323 + inline Void SetScaleformMovieAsNoLongerNeeded(int* scaleformHandle) { return _i(0x1D132D614DD86811, scaleformHandle); } // 0x1d132d614dd868110x5fed3ba1B323 + inline Void SetScaleformMovieToUseSystemTime(int scaleform, BOOL toggle) { return _i(0x6D8EB211944DCE08, scaleform, toggle); } // 0x6d8eb211944dce080x18c9de8dB323 + inline Void SetScaleformMovieToUseLargeRt(int scaleformHandle, BOOL toggle) { return _i(0x32F34FF7F617643B, scaleformHandle, toggle); } // 0x32f34ff7f617643bB573 + // This native is used in some casino scripts to fit the scaleform in the rendertarget. + inline Void SetScaleformMovieToUseSuperLargeRt(int scaleformHandle, BOOL toggle) { return _i(0xE6A9F00D4240B519, scaleformHandle, toggle); } // 0xe6a9f00d4240b519B877 + inline Void DrawScaleformMovie(int scaleformHandle, float x, float y, float width, float height, int red, int green, int blue, int alpha, int p9) { return _i(0x54972ADAF0294A93, scaleformHandle, x, y, width, height, red, green, blue, alpha, p9); } // 0x54972adaf0294a930x48da6a58B323 + // unk is not used so no need + inline Void DrawScaleformMovieFullscreen(int scaleform, int red, int green, int blue, int alpha, int p5) { return _i(0x0DF606929C105BE1, scaleform, red, green, blue, alpha, p5); } // 0x0df606929c105be10x7b48e696B323 + inline Void DrawScaleformMovieFullscreenMasked(int scaleform1, int scaleform2, int red, int green, int blue, int alpha) { return _i(0xCF537FDE4FBD4CE5, scaleform1, scaleform2, red, green, blue, alpha); } // 0xcf537fde4fbd4ce50x9c59fc06B323 + inline Void DrawScaleformMovie3d(int scaleform, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, float p7, float p8, float p9, float scaleX, float scaleY, float scaleZ, int rotationOrder) { return _i(0x87D51D72255D4E78, scaleform, posX, posY, posZ, rotX, rotY, rotZ, p7, p8, p9, scaleX, scaleY, scaleZ, rotationOrder); } // 0x87d51d72255d4e780xc4f63a89B323 + inline Void DrawScaleformMovie3dSolid(int scaleform, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, float p7, float p8, float p9, float scaleX, float scaleY, float scaleZ, int rotationOrder) { return _i(0x1CE592FDC749D6F5, scaleform, posX, posY, posZ, rotX, rotY, rotZ, p7, p8, p9, scaleX, scaleY, scaleZ, rotationOrder); } // 0x1ce592fdc749d6f50x899933c8B323 + // Calls the Scaleform function. + inline Void CallScaleformMovieMethod(int scaleform, String method) { return _i(0xFBD96D87AC96D533, scaleform, method); } // 0xfbd96d87ac96d5330x7ab77b57B323 + // Calls the Scaleform function and passes the parameters as floats. + // + // The number of parameters passed to the function varies, so the end of the parameter list is represented by -1.0. + inline Void CallScaleformMovieMethodWithNumber(int scaleform, String methodName, float param1, float param2, float param3, float param4, float param5) { return _i(0xD0837058AE2E4BEE, scaleform, methodName, param1, param2, param3, param4, param5); } // 0xd0837058ae2e4bee0x557eda1dB323 + // Calls the Scaleform function and passes the parameters as strings. + // + // The number of parameters passed to the function varies, so the end of the parameter list is represented by 0 (NULL). + inline Void CallScaleformMovieMethodWithString(int scaleform, String methodName, String param1, String param2, String param3, String param4, String param5) { return _i(0x51BC1ED3CC44E8F7, scaleform, methodName, param1, param2, param3, param4, param5); } // 0x51bc1ed3cc44e8f70x91a7fcebB323 + // Calls the Scaleform function and passes both float and string parameters (in their respective order). + // + // The number of parameters passed to the function varies, so the end of the float parameters is represented by -1.0, and the end of the string parameters is represented by 0 (NULL). + // + // NOTE: The order of parameters in the function prototype is important! All float parameters must come first, followed by the string parameters. + // + // Examples: + // // function MY_FUNCTION(floatParam1, floatParam2, stringParam) + // GRAPHICS::CallScaleformMovieMethodWithNumberAndString(scaleform, "MY_FUNCTION", 10.0, 20.0, -1.0, -1.0, -1.0, "String param", 0, 0, 0, 0); + // + // // function MY_FUNCTION_2(floatParam, stringParam1, stringParam2) + // GRAPHICS::CallScaleformMovieMethodWithNumberAndString(scaleform, "MY_FUNCTION_2", 10.0, -1.0, -1.0, -1.0, -1.0, "String param #1", "String param #2", 0, 0, 0); + inline Void CallScaleformMovieMethodWithNumberAndString(int scaleform, String methodName, float floatParam1, float floatParam2, float floatParam3, float floatParam4, float floatParam5, String stringParam1, String stringParam2, String stringParam3, String stringParam4, String stringParam5) { return _i(0xEF662D8D57E290B1, scaleform, methodName, floatParam1, floatParam2, floatParam3, floatParam4, floatParam5, stringParam1, stringParam2, stringParam3, stringParam4, stringParam5); } // 0xef662d8d57e290b10x6eaf56deB323 + // Pushes a function from the Hud component Scaleform onto the stack. Same behavior as GRAPHICS::BeginScaleformMovieMethod, just a hud component id instead of a Scaleform. + // + // Known components: + // 19 - MP_RANK_BAR + // 20 - HUD_DIRECTOR_MODE + // + // This native requires more research - all information can be found inside of 'hud.gfx'. Using a decompiler, the different components are located under "scripts\__Packages\com\rockstargames\gtav\hud\hudComponents" and "scripts\__Packages\com\rockstargames\gtav\Multiplayer". + inline BOOL BeginScaleformScriptHudMovieMethod(int hudComponent, String methodName) { return _i(0x98C494FD5BDFBFD5, hudComponent, methodName); } // 0x98c494fd5bdfbfd50x5d66ce1eB323 + // Push a function from the Scaleform onto the stack + // + inline BOOL BeginScaleformMovieMethod(int scaleform, String methodName) { return _i(0xF6E48914C7A8694E, scaleform, methodName); } // 0xf6e48914c7a8694e0x215abbe8B323 + // Starts frontend (pause menu) scaleform movie methods. + // This can be used when you want to make custom frontend menus, and customize things like images or text in the menus etc. + // Use `BeginScaleformMovieMethodOnFrontendHeader` for header scaleform functions. + inline BOOL BeginScaleformMovieMethodOnFrontend(String methodName) { return _i(0xAB58C27C2E6123C6, methodName); } // 0xab58c27c2e6123c60xf6015178B323 + // Starts frontend (pause menu) scaleform movie methods for header options. + // Use `BeginScaleformMovieMethodOnFrontend` to customize the content inside the frontend menus. + inline BOOL BeginScaleformMovieMethodOnFrontendHeader(String methodName) { return _i(0xB9449845F73F5E9C, methodName); } // 0xb9449845f73f5e9c0x5e219b67B323 + // Pops and calls the Scaleform function on the stack + inline Void EndScaleformMovieMethod() { return _i(0xC6796A8FFA375E53); } // 0xc6796a8ffa375e530x02dbf2d7B323 + inline int EndScaleformMovieMethodReturnValue() { return _i(0xC50AA39A577AF886); } // 0xc50aa39a577af8860x2f38b526B323 + // methodReturn: The return value of this native: EndScaleformMovieMethodReturnValue + // Returns true if the return value of a scaleform function is ready to be collected (using GetScaleformMovieMethodReturnValueString or GetScaleformMovieMethodReturnValueInt). + inline BOOL IsScaleformMovieMethodReturnValueReady(int methodReturn) { return _i(0x768FF8961BA904D6, methodReturn); } // 0x768ff8961ba904d60x5cd7c3c0B323 + // methodReturn: The return value of this native: EndScaleformMovieMethodReturnValue + // Used to get a return value from a scaleform function. Returns an int in the same way GetScaleformMovieMethodReturnValueString returns a string. + inline int GetScaleformMovieMethodReturnValueInt(int methodReturn) { return _i(0x2DE7EFA66B906036, methodReturn); } // 0x2de7efa66b9060360x2cfb0e6dB323 + // methodReturn: The return value of this native: EndScaleformMovieMethodReturnValue + inline BOOL GetScaleformMovieMethodReturnValueBool(int methodReturn) { return _i(0xD80A80346A45D761, methodReturn); } // 0xd80a80346a45d761B757 + // methodReturn: The return value of this native: EndScaleformMovieMethodReturnValue + // Used to get a return value from a scaleform function. Returns a string in the same way GetScaleformMovieMethodReturnValueInt returns an int. + inline String GetScaleformMovieMethodReturnValueString(int methodReturn) { return _i(0xE1E258829A885245, methodReturn); } // 0xe1e258829a8852450x516862ebB323 + // Pushes an integer for the Scaleform function onto the stack. + inline Void ScaleformMovieMethodAddParamInt(int value) { return _i(0xC3D0841A0CC546A6, value); } // 0xc3d0841a0cc546a60x716777cbB323 + // Pushes a float for the Scaleform function onto the stack. + inline Void ScaleformMovieMethodAddParamFloat(float value) { return _i(0xD69736AAE04DB51A, value); } // 0xd69736aae04db51a0x9a01ffdaB323 + // Pushes a boolean for the Scaleform function onto the stack. + inline Void ScaleformMovieMethodAddParamBool(BOOL value) { return _i(0xC58424BA936EB458, value); } // 0xc58424ba936eb4580x0d4ae8cbB323 + // Called prior to adding a text component to the UI. After doing so, GRAPHICS::EndTextCommandScaleformString is called. + // + // Examples: + // GRAPHICS::BeginTextCommandScaleformString("NUMBER"); + // HUD::AddTextComponentInteger(MISC::Absi(a_1)); + // GRAPHICS::EndTextCommandScaleformString(); + // + // GRAPHICS::BeginTextCommandScaleformString("STRING"); + // HUD::AddTextComponentSubstringPlayerName(a_2); + // GRAPHICS::EndTextCommandScaleformString(); + // + // GRAPHICS::BeginTextCommandScaleformString("STRTNM2"); + // HUD::AddTextComponentSubstringTextLabelHashKey(v_3); + // HUD::AddTextComponentSubstringTextLabelHashKey(v_4); + // GRAPHICS::EndTextCommandScaleformString(); + // + // GRAPHICS::BeginTextCommandScaleformString("STRTNM1"); + // HUD::AddTextComponentSubstringTextLabelHashKey(v_3); + // GRAPHICS::EndTextCommandScaleformString(); + inline Void BeginTextCommandScaleformString(String componentType) { return _i(0x80338406F3475E55, componentType); } // 0x80338406f3475e550x3ac9cb55B323 + inline Void EndTextCommandScaleformString() { return _i(0x362E2D3FE93A9959); } // 0x362e2d3fe93a99590x386ce0b8B323 + // Same as EndTextCommandScaleformString but does not perform HTML conversion for text tokens. + // + // END_TEXT_COMMAND_VIA_SPECIAL_MODIFIABLE_STRING? + inline Void EndTextCommandUnparsedScaleformString() { return _i(0xAE4E8157D9ECF087); } // 0xae4e8157d9ecf0870x2e80db52B323 + // Same as ScaleformMovieMethodAddParamTextureNameString + // Both ScaleformMovieMethodAddParamTextureNameString / _SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING_2 works, but _SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING_2 is usually used for "name" (organisation, players..). + inline Void ScaleformMovieMethodAddParamLiteralString(String string) { return _i(0x77FE3402004CD1B0, string); } // 0x77fe3402004cd1b0B573 + inline Void ScaleformMovieMethodAddParamTextureNameString(String string) { return _i(0xBA7148484BD90365, string); } // 0xba7148484bd903650x4daad55bB323 + inline Void ScaleformMovieMethodAddParamPlayerNameString(String string) { return _i(0xE83A3E3557A56640, string); } // 0xe83a3e3557a566400xccbf0334B323 + inline BOOL DoesLatestBriefStringExist(int p0) { return _i(0x5E657EF1099EDD65, p0); } // 0x5e657ef1099edd650x91a081a1B323 + inline Void ScaleformMovieMethodAddParamLatestBriefString(int value) { return _i(0xEC52C631A1831C03, value); } // 0xec52c631a1831c030x83a9811dB323 + inline Void RequestScaleformScriptHudMovie(int hudComponent) { return _i(0x9304881D6F6537EA, hudComponent); } // 0x9304881d6f6537ea0x7af85862B323 + inline BOOL HasScaleformScriptHudMovieLoaded(int hudComponent) { return _i(0xDF6E5987D2B4D140, hudComponent); } // 0xdf6e5987d2b4d1400x79b43255B323 + inline Void RemoveScaleformScriptHudMovie(int hudComponent) { return _i(0xF44A5456AC3F4F97, hudComponent); } // 0xf44a5456ac3f4f970x03d87600B323 + inline BOOL PassKeyboardInputToScaleform(int scaleformHandle) { return _i(0xD1C7CB175E012964, scaleformHandle); } // 0xd1c7cb175e0129640xe9183d3aB323 + inline Void SetTvChannel(int channel) { return _i(0xBAABBB23EB6E484E, channel); } // 0xbaabbb23eb6e484e0x41a8a627B323 + inline int GetTvChannel() { return _i(0xFC1E275A90D39995); } // 0xfc1e275a90d399950x6b96145aB323 + inline Void SetTvVolume(float volume) { return _i(0x2982BF73F66E9DDC, volume); } // 0x2982bf73f66e9ddc0xf3504f4dB323 + inline float GetTvVolume() { return _i(0x2170813D3DD8661B); } // 0x2170813d3dd8661b0x39555cf0B323 + // All calls to this native are preceded by calls to GRAPHICS::SetScriptGfxDrawOrder and GRAPHICS::SetScriptGfxDrawBehindPausemenu, respectively. + // + // "act_cinema.ysc", line 1483: + // HUD::SetHudComponentPosition(15, 0.0, -0.0375); + // HUD::SetTextRenderId(l_AE); + // GRAPHICS::SetScriptGfxDrawOrder(4); + // GRAPHICS::SetScriptGfxDrawBehindPausemenu(1); + // if (GRAPHICS::IsTvshowCurrentlyPlaying(${movie_arthouse})) { + // GRAPHICS::DrawTvChannel(0.5, 0.5, 0.7375, 1.0, 0.0, 255, 255, 255, 255); + // } else { + // GRAPHICS::DrawTvChannel(0.5, 0.5, 1.0, 1.0, 0.0, 255, 255, 255, 255); + // } + // + // "am_mp_property_int.ysc", line 102545: + // if (ENTITY::DoesEntityExist(a_2._f3)) { + // if (HUD::IsNamedRendertargetLinked(ENTITY::GetEntityModel(a_2._f3))) { + // HUD::SetTextRenderId(a_2._f1); + // GRAPHICS::SetScriptGfxDrawOrder(4); + // GRAPHICS::SetScriptGfxDrawBehindPausemenu(1); + // GRAPHICS::DrawTvChannel(0.5, 0.5, 1.0, 1.0, 0.0, 255, 255, 255, 255); + // if (GRAPHICS::GetTvChannel() == -1) { + // sub_a8fa5(a_2, 1); + // } else { + // sub_a8fa5(a_2, 1); + // GRAPHICS::AttachTvAudioToEntity(a_2._f3); + // } + // HUD::SetTextRenderId(HUD::GetDefaultScriptRendertargetRenderId()); + // } + // } + // + inline Void DrawTvChannel(float xPos, float yPos, float xScale, float yScale, float rotation, int red, int green, int blue, int alpha) { return _i(0xFDDC2B4ED3C69DF0, xPos, yPos, xScale, yScale, rotation, red, green, blue, alpha); } // 0xfddc2b4ed3c69df00x8129ef89B323 + // Loads specified video sequence into the TV Channel + // TV_Channel ranges from 0-2 + // VideoSequence can be any of the following: + // "PL_STD_CNT" CNT Standard Channel + // "PL_STD_WZL" Weazel Standard Channel + // "PL_LO_CNT" + // "PL_LO_WZL" + // "PL_SP_WORKOUT" + // "PL_SP_INV" - Jay Norris Assassination Mission Fail + // "PL_SP_INV_EXP" - Jay Norris Assassination Mission Success + // "PL_LO_RS" - Righteous Slaughter Ad + // "PL_LO_RS_CUTSCENE" - Righteous Slaughter Cut-scene + // "PL_SP_PLSH1_INTRO" + // "PL_LES1_FAME_OR_SHAME" + // "PL_STD_WZL_FOS_EP2" + // "PL_MP_WEAZEL" - Weazel Logo on loop + // "PL_MP_CCTV" - Generic CCTV loop + // + // Restart: + // 0=video sequence continues as normal + // 1=sequence restarts from beginning every time that channel is selected + // + // + // The above playlists work as intended, and are commonly used, but there are many more playlists, as seen in `tvplaylists.xml`. A pastebin below outlines all playlists, they will be surronded by the name tag I.E. (PL_STD_CNT = PL_STD_CNT). + // https://pastebin.com/zUzGB6h7 + inline Void SetTvChannelPlaylist(int tvChannel, String playlistName, BOOL restart) { return _i(0xF7B38B8305F1FE8B, tvChannel, playlistName, restart); } // 0xf7b38b8305f1fe8b0xb262de67B323 + inline Void SetTvChannelPlaylistAtHour(int tvChannel, String playlistName, int hour) { return _i(0x2201C576FACAEBE8, tvChannel, playlistName, hour); } // 0x2201c576facaebe80x78c4dcbeB323 + inline Void SetTvChannelPlaylistDirty(int tvChannel, BOOL p1) { return _i(0xEE831F15A8D0D94A, tvChannel, p1); } // 0xee831f15a8d0d94aB3095 + inline Void ClearTvChannelPlaylist(int tvChannel) { return _i(0xBEB3D46BB7F043C0, tvChannel); } // 0xbeb3d46bb7f043c00xcbe7068fB323 + inline BOOL IsPlaylistOnChannel(int tvChannel, Any p1) { return _i(0x1F710BFF7DAE6261, tvChannel, p1); } // 0x1f710bff7dae6261B1604 + inline BOOL IsTvshowCurrentlyPlaying(Hash videoCliphash) { return _i(0x0AD973CA1E077B60, videoCliphash); } // 0x0ad973ca1e077b600x4d1eb0fbB323 + inline Void EnableMovieKeyframeWait(BOOL toggle) { return _i(0x74C180030FDE4B69, toggle); } // 0x74c180030fde4b690x796de696B323 + inline Void SetTvPlayerWatchingThisFrame(Any p0) { return _i(0xD1C55B110E4DF534, p0); } // 0xd1c55b110e4df5340xd99ec000B323 + inline Hash GetCurrentTvClipNamehash() { return _i(0x30432A0118736E00); } // 0x30432a0118736e00B1493 + inline Void EnableMovieSubtitles(BOOL toggle) { return _i(0x873FA65C778AD970, toggle); } // 0x873fa65c778ad9700xc2deba3dB323 + inline BOOL Ui3dsceneIsAvailable() { return _i(0xD3A10FC7FD8D98CD); } // 0xd3a10fc7fd8d98cd0xe40a0f1aB323 + // All presets can be found in common\data\ui\uiscenes.meta + inline BOOL Ui3dscenePushPreset(String presetName) { return _i(0xF1CEA8A4198D8E9A, presetName); } // 0xf1cea8a4198d8e9a0x2e7d9b98B323 + // It's called after Ui3dsceneIsAvailable and Ui3dscenePushPreset + // + // presetName was always "CELEBRATION_WINNER" + // All presets can be found in common\data\ui\uiscenes.meta + inline BOOL Ui3dsceneAssignPedToSlot(String presetName, Ped ped, int slot, float posX, float posY, float posZ) { return _i(0x98C4FE6EC34154CA, presetName, ped, slot, posX, posY, posZ); } // 0x98c4fe6ec34154ca0x9a0e3bfeB323 + inline Void Ui3dsceneClearPatchedData() { return _i(0x7A42B2E236E71415); } // 0x7a42b2e236e714150x431aa036B323 + inline Void Ui3dsceneMakePushedPresetPersistent(BOOL toggle) { return _i(0x108BE26959A9D9BB, toggle); } // 0x108be26959a9d9bb0x24a7a7f6B323 + // This native enables/disables the gold putting grid display (https://i.imgur.com/TC6cku6.png). + // This requires these two natives to be called as well to configure the grid: `TerraingridSetParams` and `TerraingridSetColours`. + inline Void TerraingridActivate(BOOL toggle) { return _i(0xA356990E161C9E65, toggle); } // 0xa356990e161c9e650xa1cb6c94B323 + // This native is used along with these two natives: `TerraingridActivate` and `TerraingridSetColours`. + // This native configures the location, size, rotation, normal height, and the difference ratio between min, normal and max. + // + // All those natives combined they will output something like this: https://i.imgur.com/TC6cku6.png + // + // This native renders a box at the given position, with a special shader that renders a grid on world geometry behind it. This box does not have backface culling. + // The forward args here are a direction vector, something similar to what's returned by GetEntityForwardVector. + // normalHeight and heightDiff are used for positioning the color gradient of the grid, colors specified via TerraingridSetColours. + // + // Example with box superimposed on the image to demonstrate: https://i.imgur.com/wdqskxd.jpg + inline Void TerraingridSetParams(float x, float y, float z, float forwardX, float forwardY, float forwardZ, float sizeX, float sizeY, float sizeZ, float gridScale, float glowIntensity, float normalHeight, float heightDiff) { return _i(0x1C4FC5752BCD8E48, x, y, z, forwardX, forwardY, forwardZ, sizeX, sizeY, sizeZ, gridScale, glowIntensity, normalHeight, heightDiff); } // 0x1c4fc5752bcd8e480x3b637aa7B323 + // This native is used along with these two natives: `TerraingridActivate` and `TerraingridSetParams`. + // This native sets the colors for the golf putting grid. the 'min...' values are for the lower areas that the grid covers, the 'max...' values are for the higher areas that the grid covers, all remaining values are for the 'normal' ground height. + // All those natives combined they will output something like this: https://i.imgur.com/TC6cku6.png + inline Void TerraingridSetColours(int lowR, int lowG, int lowB, int lowAlpha, int r, int g, int b, int alpha, int highR, int highG, int highB, int highAlpha) { return _i(0x5CE62918F8D703C7, lowR, lowG, lowB, lowAlpha, r, g, b, alpha, highR, highG, highB, highAlpha); } // 0x5ce62918f8d703c70xdf552973B323 + // duration - is how long to play the effect for in milliseconds. If 0, it plays the default length + // if loop is true, the effect won't stop until you call AnimpostfxStop on it. (only loopable effects) + // + // Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json + inline Void AnimpostfxPlay(String effectName, int duration, BOOL looped) { return _i(0x2206BF9A37B7F724, effectName, duration, looped); } // 0x2206bf9a37b7f7240x1d980479B323 + // See AnimpostfxPlay + // + // Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json + inline Void AnimpostfxStop(String effectName) { return _i(0x068E835A1D0DC0E3, effectName); } // 0x068e835a1d0dc0e30x06bb5cdaB323 + // See AnimpostfxPlay + // + // Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json + inline float AnimpostfxGetCurrentTime(String effectName) { return _i(0xE35B38A27E8E7179, effectName); } // 0xe35b38a27e8e7179B877 + // Returns whether the specified effect is active. + // See AnimpostfxPlay + // + // Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json + inline BOOL AnimpostfxIsRunning(String effectName) { return _i(0x36AD3E690DA5ACEB, effectName); } // 0x36ad3e690da5aceb0x089d5921B323 + // Stops ALL currently playing effects. + inline Void AnimpostfxStopAll() { return _i(0xB4EDDC19532BFB85); } // 0xb4eddc19532bfb850x4e6d875bB323 + // Stops the effect and sets a value (BOOL) in its data (+0x199) to false. + // See AnimpostfxPlay + // + // Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json + inline Void AnimpostfxStopAndFlushRequests(String effectName) { return _i(0xD2209BE128B5418C, effectName); } // 0xd2209be128b5418cB323 } namespace HUD { - // Initializes the text entry for the the text next to a loading prompt. All natives for building UI texts can be used here - // - // - // e.g - // Void StartLoadingMessage(char *text, int spinnerType = 3) - // { - // BeginTextCommandBusyspinnerOn("STRING"); - // AddTextComponentSubstringPlayerName(text); - // EndTextCommandBusyspinnerOn(spinnerType); - // } - // /*OR*/ - // Void ShowLoadingMessage(char *text, int spinnerType = 3, int timeMs = 10000) - // { - // BeginTextCommandBusyspinnerOn("STRING"); - // AddTextComponentSubstringPlayerName(text); - // EndTextCommandBusyspinnerOn(spinnerType); - // Wait(timeMs); - // BusyspinnerOff(); - // } - // - // - // These are some localized strings used in the loading spinner. - // "PM_WAIT" = Please Wait - // "CELEB_WPLYRS" = Waiting For Players. - // "CELL_SPINNER2" = Scanning storage. - // "ERROR_CHECKYACHTNAME" = Registering your yacht's name. Please wait. - // "ERROR_CHECKPROFANITY" = Checking your text for profanity. Please wait. - // "FM_COR_AUTOD" = Just spinner no text - // "FM_IHELP_WAT2" = Waiting for other players - // "FM_JIP_WAITO" = Game options are being set - // "FMMC_DOWNLOAD" = Downloading - // "FMMC_PLYLOAD" = Loading - // "FMMC_STARTTRAN" = Launching session - // "HUD_QUITTING" = Quiting session - // "KILL_STRIP_IDM" = Waiting for to accept - // "MP_SPINLOADING" = Loading - inline Void BeginTextCommandBusyspinnerOn(String string) { return _i(0xABA17D7CE615ADBF, string); } // 0xaba17d7ce615adbf0xcb7c8994B323 - // enum eBusySpinnerType - // { - // BUSY_SPINNER_LEFT, - // BUSY_SPINNER_LEFT_2, - // BUSY_SPINNER_LEFT_3, - // BUSY_SPINNER_SAVE, - // BUSY_SPINNER_RIGHT, - // }; - inline Void EndTextCommandBusyspinnerOn(int busySpinnerType) { return _i(0xBD12F8228410D9B4, busySpinnerType); } // 0xbd12f8228410d9b40x903f5ee4B323 - // Removes the loading prompt at the bottom right of the screen. - inline Void BusyspinnerOff() { return _i(0x10D373323E5B9C0D); } // 0x10d373323e5b9c0d0x94119534B323 - inline Void PreloadBusyspinner() { return _i(0xC65AB383CD91DF98); } // 0xc65ab383cd91df980x71077fbdB323 - inline BOOL BusyspinnerIsOn() { return _i(0xD422FCC5F239A915); } // 0xd422fcc5f239a9150xb8b3a5d0B323 - inline BOOL BusyspinnerIsDisplaying() { return _i(0xB2A592B04648A9CB); } // 0xb2a592b04648a9cb0x3af34defB323 - inline Void DisablePausemenuSpinner(BOOL p0) { return _i(0x9245E81072704B8A, p0); } // 0x9245e81072704b8aB323 - // Shows the cursor on screen for one frame. - inline Void SetMouseCursorThisFrame() { return _i(0xAAE7CE1D63167423); } // 0xaae7ce1d63167423B323 - // Changes the mouse cursor's sprite. - // 1 = Normal - // 6 = Left Arrow - // 7 = Right Arrow - inline Void SetMouseCursorStyle(int spriteId) { return _i(0x8DB8CFFD58B62552, spriteId); } // 0x8db8cffd58b62552B323 - // Shows/hides the frontend cursor on the pause menu or similar menus. - // Clicking off and then on the game window will show it again. - inline Void SetMouseCursorVisible(BOOL toggle) { return _i(0x98215325A695E78A, toggle); } // 0x98215325a695e78aB323 - // Returns TRUE if mouse is hovering above instructional buttons. Works with all buttons gfx, such as popup_warning, pause_menu_instructional_buttons, instructional_buttons, etc. Note: You have to call TOGGLE_MOUSE_BUTTONS on the scaleform if you want this native to work. - inline BOOL IsMouseRolledOverInstructionalButtons() { return _i(0x3D9ACB1EB139E702); } // 0x3d9acb1eb139e702B323 - inline BOOL GetMouseEvent(int scaleformHandle, Any* p1, Any* p2, Any* p3) { return _i(0x632B2940C67F4EA9, scaleformHandle, p1, p2, p3); } // 0x632b2940c67f4ea9B323 - inline Void ThefeedOnlyShowTooltips(BOOL toggle) { return _i(0x6F1554B0CC2089FA, toggle); } // 0x6f1554b0cc2089fa0xa7c8594bB323 - inline Void ThefeedSetScriptedMenuHeight(float pos) { return _i(0x55598D21339CB998, pos); } // 0x55598d21339cb9980x1da7e41aB323 - // Stops loading screen tips shown by invoking `ThefeedShow` - inline Void ThefeedHide() { return _i(0x32888337579A5970); } // 0x32888337579a5970B463 - // Once called each frame hides all above radar notifications. - inline Void ThefeedHideThisFrame() { return _i(0x25F87B30C382FCA7); } // 0x25f87b30c382fca70x1e63088aB323 - // Displays loading screen tips, requires `ThefeedAutoPostGametipsOn` to be called beforehand. - inline Void ThefeedShow() { return _i(0x15CFA549788D35EF); } // 0x15cfa549788d35efB463 - inline Void ThefeedFlushQueue() { return _i(0xA8FDB297A8D25FBA); } // 0xa8fdb297a8d25fba0x5205c6f5B323 - // Removes a notification instantly instead of waiting for it to disappear - inline Void ThefeedRemoveItem(int notificationId) { return _i(0xBE4390CB40B3E627, notificationId); } // 0xbe4390cb40b3e6270xeca8acb9B323 - inline Void ThefeedForceRenderOn() { return _i(0xA13C11E1B5C06BFC); } // 0xa13c11e1b5c06bfc0x520fcb6dB323 - // Enables loading screen tips to be be shown (`ThefeedShow`), blocks other kinds of notifications from being displayed (at least from current script). Call `0xADED7F5748ACAFE6` to display those again. - inline Void ThefeedForceRenderOff() { return _i(0x583049884A2EEE3C); } // 0x583049884a2eee3c0xc8bab2f2B323 - inline Void ThefeedPause() { return _i(0xFDB423997FA30340); } // 0xfdb423997fa303400x4d0449c6B323 - inline Void ThefeedResume() { return _i(0xE1CD1E48E025E661); } // 0xe1cd1e48e025e6610xd3f40140B323 - inline BOOL ThefeedIsPaused() { return _i(0xA9CBFD40B3FA3010); } // 0xa9cbfd40b3fa30100xc5223796B323 - inline Void ThefeedReportLogoOn() { return _i(0xD4438C0564490E63); } // 0xd4438c0564490e630x709b4bcbB323 - inline Void ThefeedReportLogoOff() { return _i(0xB695E2CD0A2DA9EE); } // 0xb695e2cd0a2da9ee0x4a4a40a4B323 - // Returns the handle for the notification currently displayed on the screen. Name may be a hash collision, but describes the function accurately. - inline int ThefeedGetLastShownPhoneActivatableFeedId() { return _i(0x82352748437638CA); } // 0x82352748437638ca0x294405d4B323 - // Enables loading screen tips to be be shown (`ThefeedShow`), blocks other kinds of notifications from being displayed (at least from current script). Call `ThefeedAutoPostGametipsOff` to display those again. - inline Void ThefeedAutoPostGametipsOn() { return _i(0x56C8B608CFD49854); } // 0x56c8b608cfd498540xf881ab87B323 - // Displays "normal" notifications again after calling `ThefeedAutoPostGametipsOn` (those that were drawn before calling this native too), though those will have a weird offset and stay on screen forever (tested with notifications created from same script). - inline Void ThefeedAutoPostGametipsOff() { return _i(0xADED7F5748ACAFE6); } // 0xaded7f5748acafe60x1d6859caB323 - // From the decompiled scripts: - // HUD::ThefeedSetBackgroundColorForNextPost(6); - // HUD::ThefeedSetBackgroundColorForNextPost(184); - // HUD::ThefeedSetBackgroundColorForNextPost(190); - // - // sets background color for the next notification - // 6 = red - // 184 = green - // 190 = yellow - // - // Here is a list of some colors that can be used: https://gyazo.com/68bd384455fceb0a85a8729e48216e15 - inline Void ThefeedSetBackgroundColorForNextPost(int hudColorIndex) { return _i(0x92F0DA1E27DB96DC, hudColorIndex); } // 0x92f0da1e27db96dc0x07ce2ea4B323 - inline Void ThefeedSetRgbaParameterForNextMessage(int red, int green, int blue, int alpha) { return _i(0x17430B918701C342, red, green, blue, alpha); } // 0x17430b918701c3420xcf14d7f2B323 - // Related to notification color flashing, setting count to 0 invalidates a `ThefeedSetRgbaParameterForNextMessage` call for the target notification. - inline Void ThefeedSetFlashDurationParameterForNextMessage(int count) { return _i(0x17AD8C9706BDD88A, count); } // 0x17ad8c9706bdd88a0x24a97af8B323 - inline Void ThefeedSetVibrateParameterForNextMessage(BOOL toggle) { return _i(0x4A0C7C9BB10ABB36, toggle); } // 0x4a0c7c9bb10abb360x44018edbB323 - inline Void ThefeedResetAllParameters() { return _i(0xFDD85225B2DEA55E); } // 0xfdd85225b2dea55e0xa4524b23B323 - // Requires manual management of game stream handles (i.e., 0xBE4390CB40B3E627). - inline Void ThefeedFreezeNextPost() { return _i(0xFDEC055AB549E328); } // 0xfdec055ab549e3280xafa1148bB323 - inline Void ThefeedClearFrozenPost() { return _i(0x80FE4F3AB4E1B62A); } // 0x80fe4f3ab4e1b62a0x3cd4307cB323 - inline Void ThefeedSetSnapFeedItemPositions(BOOL p0) { return _i(0xBAE4F9B97CD43B30, p0); } // 0xbae4f9b97cd43b30B323 - // Used in the native scripts to reference "GET_PEDHEADSHOT_TXD_STRING" and "CHAR_DEFAULT". - inline Void ThefeedUpdateItemTexture(String txdString1, String txnString1, String txdString2, String txnString2) { return _i(0x317EBA71D7543F52, txdString1, txnString1, txdString2, txnString2); } // 0x317eba71d7543f520x6a3f747dB323 - // Declares the entry type of a notification, for example "STRING". - // - // int ShowNotification(char *text) - // { - // BeginTextCommandThefeedPost("STRING"); - // AddTextComponentSubstringPlayerName(text); - // return EndTextCommandThefeedPostTicker(1, 1); - // } - inline Void BeginTextCommandThefeedPost(String text) { return _i(0x202709F4C58A0424, text); } // 0x202709f4c58a04240x574ee85cB323 - // List of picture names: https://pastebin.com/XdpJVbHz - // Example result: https://i.imgur.com/SdEZ22m.png - inline int EndTextCommandThefeedPostStats(String statTitle, int iconEnum, BOOL stepVal, int barValue, BOOL isImportant, String pictureTextureDict, String pictureTextureName) { return _i(0x2B7E9A4EAAA93C89, statTitle, iconEnum, stepVal, barValue, isImportant, pictureTextureDict, pictureTextureName); } // 0x2b7e9a4eaaa93c890xed130fa1B323 - // This function can show pictures of every texture that can be requested by RequestStreamedTextureDict. - // - // List of picNames: https://pastebin.com/XdpJVbHz - // - // - // flash is a bool for fading in. - // iconTypes: - // 1 : Chat Box - // 2 : Email - // 3 : Add Friend Request - // 4 : Nothing - // 5 : Nothing - // 6 : Nothing - // 7 : Right Jumping Arrow - // 8 : RP Icon - // 9 : $ Icon - // - // "sender" is the very top header. This can be any old string. - // "subject" is the header under the sender. - inline int EndTextCommandThefeedPostMessagetext(String txdName, String textureName, BOOL flash, int iconType, String sender, String subject) { return _i(0x1CCD9A37359072CF, txdName, textureName, flash, iconType, sender, subject); } // 0x1ccd9a37359072cf0xe7e3c98bB323 - // This function can show pictures of every texture that can be requested by RequestStreamedTextureDict. - // - // Needs more research. - // - // Only one type of usage in the scripts: - // - // HUD::EndTextCommandThefeedPostMessagetextSubtitleLabel("CHAR_ACTING_UP", "CHAR_ACTING_UP", 0, 0, "DI_FEED_CHAR", a_0); - inline int EndTextCommandThefeedPostMessagetextSubtitleLabel(String txdName, String textureName, BOOL flash, int iconType, String sender, String subject) { return _i(0xC6F580E4C94926AC, txdName, textureName, flash, iconType, sender, subject); } // 0xc6f580e4c94926acB323 - // This function can show pictures of every texture that can be requested by RequestStreamedTextureDict. - // - // NOTE: 'duration' is a multiplier, so 1.0 is normal, 2.0 is twice as long (very slow), and 0.5 is half as long. - // - // Example, only occurrence in the scripts: - // v_8 = HUD::EndTextCommandThefeedPostMessagetextTu("CHAR_SOCIAL_CLUB", "CHAR_SOCIAL_CLUB", 0, 0, &v_9, "", a_5); - inline int EndTextCommandThefeedPostMessagetextTu(String txdName, String textureName, BOOL flash, int iconType, String sender, String subject, float duration) { return _i(0x1E6611149DB3DB6B, txdName, textureName, flash, iconType, sender, subject, duration); } // 0x1e6611149db3db6b0x0eb382b7B323 - // This function can show pictures of every texture that can be requested by RequestStreamedTextureDict. - // - // List of picNames https://pastebin.com/XdpJVbHz - // - // flash is a bool for fading in. - // iconTypes: - // 1 : Chat Box - // 2 : Email - // 3 : Add Friend Request - // 4 : Nothing - // 5 : Nothing - // 6 : Nothing - // 7 : Right Jumping Arrow - // 8 : RP Icon - // 9 : $ Icon - // - // "sender" is the very top header. This can be any old string. - // "subject" is the header under the sender. - // "duration" is a multiplier, so 1.0 is normal, 2.0 is twice as long (very slow), and 0.5 is half as long. - // "clanTag" shows a crew tag in the "sender" header, after the text. You need to use 3 underscores as padding. Maximum length of this field seems to be 7. (e.g. "MK" becomes "___MK", "ACE" becomes "___ACE", etc.) - inline int EndTextCommandThefeedPostMessagetextWithCrewTag(String txdName, String textureName, BOOL flash, int iconType, String sender, String subject, float duration, String clanTag) { return _i(0x5CBF7BADE20DB93E, txdName, textureName, flash, iconType, sender, subject, duration, clanTag); } // 0x5cbf7bade20db93e0x3e807fe3B323 - // This function can show pictures of every texture that can be requested by RequestStreamedTextureDict. - // - // List of picNames: https://pastebin.com/XdpJVbHz - // - // flash is a bool for fading in. - // iconTypes: - // 1 : Chat Box - // 2 : Email - // 3 : Add Friend Request - // 4 : Nothing - // 5 : Nothing - // 6 : Nothing - // 7 : Right Jumping Arrow - // 8 : RP Icon - // 9 : $ Icon - // - // "sender" is the very top header. This can be any old string. - // "subject" is the header under the sender. - // "duration" is a multiplier, so 1.0 is normal, 2.0 is twice as long (very slow), and 0.5 is half as long. - // "clanTag" shows a crew tag in the "sender" header, after the text. You need to use 3 underscores as padding. Maximum length of this field seems to be 7. (e.g. "MK" becomes "___MK", "ACE" becomes "___ACE", etc.) - // iconType2 is a mirror of iconType. It shows in the "subject" line, right under the original iconType. - // - // - // int IconNotification(char *text, char *text2, char *Subject) - // { - // BeginTextCommandThefeedPost("STRING"); - // AddTextComponentSubstringPlayerName(text); - // _SET_NOTIFICATION_MESSAGE_CLAN_TAG_2("CHAR_SOCIAL_CLUB", "CHAR_SOCIAL_CLUB", 1, 7, text2, Subject, 1.0f, "__EXAMPLE", 7); - // return EndTextCommandThefeedPostTicker(1, 1); - // } - inline int EndTextCommandThefeedPostMessagetextWithCrewTagAndAdditionalIcon(String txdName, String textureName, BOOL flash, int iconType1, String sender, String subject, float duration, String clanTag, int iconType2, int p9) { return _i(0x531B84E7DA981FB6, txdName, textureName, flash, iconType1, sender, subject, duration, clanTag, iconType2, p9); } // 0x531b84e7da981fb60xdeb491c8B323 - inline int EndTextCommandThefeedPostTicker(BOOL blink, BOOL p1) { return _i(0x2ED7843F8F801023, blink, p1); } // 0x2ed7843f8f8010230x08f7af78B323 - inline int EndTextCommandThefeedPostTickerForced(BOOL blink, BOOL p1) { return _i(0x44FA03975424A0EE, blink, p1); } // 0x44fa03975424a0ee0x57b8d0d4B323 - inline int EndTextCommandThefeedPostTickerWithTokens(BOOL blink, BOOL p1) { return _i(0x378E809BF61EC840, blink, p1); } // 0x378e809bf61ec8400x02bcaf9bB323 - // Shows an "award" notification above the minimap, example: https://i.imgur.com/e2DNaKX.png - // Example: - // - // HUD::BeginTextCommandThefeedPost("HUNT"); - // HUD::EndTextCommandThefeedPostAward("Hunting", "Hunting_Gold_128", 0, 109, "HUD_MED_UNLKED"); - inline int EndTextCommandThefeedPostAward(String textureDict, String textureName, int rpBonus, int colorOverlay, String titleLabel) { return _i(0xAA295B6F28BD587D, textureDict, textureName, rpBonus, colorOverlay, titleLabel); } // 0xaa295b6f28bd587d0x02ded2b8B323 - inline int EndTextCommandThefeedPostCrewtag(BOOL p0, BOOL p1, int* p2, int p3, BOOL isLeader, BOOL unk0, int clanDesc, int R, int G, int B) { return _i(0x97C9E4E7024A8F2C, p0, p1, p2, p3, isLeader, unk0, clanDesc, R, G, B); } // 0x97c9e4e7024a8f2c0xa9ccef66B323 - inline int EndTextCommandThefeedPostCrewtagWithGameName(BOOL p0, BOOL p1, int* p2, int p3, BOOL isLeader, BOOL unk0, int clanDesc, String playerName, int R, int G, int B) { return _i(0x137BC35589E34E1E, p0, p1, p2, p3, isLeader, unk0, clanDesc, playerName, R, G, B); } // 0x137bc35589e34e1e0x88b9b909B323 - inline int EndTextCommandThefeedPostUnlock(String gxtLabel1, int p1, String gxtLabel2) { return _i(0x33EE12743CCD6343, gxtLabel1, p1, gxtLabel2); } // 0x33ee12743ccd63430xe05e7052B323 - inline int EndTextCommandThefeedPostUnlockTu(String gxtLabel1, int p1, String gxtLabel2, int p3) { return _i(0xC8F3AAF93D0600BF, gxtLabel1, p1, gxtLabel2, p3); } // 0xc8f3aaf93d0600bf0x4fa43ba4B323 - inline int EndTextCommandThefeedPostUnlockTuWithColor(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0x7AE0589093A2E088, p0, p1, p2, p3, p4, p5); } // 0x7ae0589093a2e0880x8c90d22fB323 - inline int EndTextCommandThefeedPostMpticker(BOOL blink, BOOL p1) { return _i(0xF020C96915705B3A, blink, p1); } // 0xf020c96915705b3a0x8e319ab8B323 - inline int EndTextCommandThefeedPostCrewRankupWithLiteralFlag(String p0, String p1, String p2, BOOL p3, BOOL p4) { return _i(0x8EFCCF6EC66D85E4, p0, p1, p2, p3, p4); } // 0x8efccf6ec66d85e4B323 - // This function can show pictures of every texture that can be requested by RequestStreamedTextureDict. - // - // List of picNames: https://pastebin.com/XdpJVbHz - // HUD colors and their values: https://pastebin.com/d9aHPbXN - // - // Shows a deathmatch score above the minimap, example: https://i.imgur.com/YmoMklG.png - inline int EndTextCommandThefeedPostVersusTu(String txdName1, String textureName1, int count1, String txdName2, String textureName2, int count2, int hudColor1, int hudColor2) { return _i(0xB6871B0555B02996, txdName1, textureName1, count1, txdName2, textureName2, count2, hudColor1, hudColor2); } // 0xb6871b0555b029960x5e93fbfaB323 - // returns a notification handle, prints out a notification like below: - // type range: 0 - 2 - // if you set type to 1, image goes from 0 - 39 - Xbox you can add text to - // - // example: - // HUD::EndTextCommandThefeedPostReplayInput(1, 20, "Who you trynna get crazy with, ese? Don't you know I'm LOCO?!"); - // - https://imgur.com/lGBPCz3 - inline int EndTextCommandThefeedPostReplay(int type, int image, String text) { return _i(0xD202B92CBF1D816F, type, image, text); } // 0xd202b92cbf1d816fB323 - // returns a notification handle, prints out a notification like below: - // type range: 0 - 2 - // if you set type to 1, button accepts "~INPUT_SOMETHING~" - // - // example: - // HUD::EndTextCommandThefeedPostReplayInput(1, "~INPUT_TALK~", "Who you trynna get crazy with, ese? Don't you know I'm LOCO?!"); - // - https://imgur.com/UPy0Ial - // - // - // Examples from the scripts: - // l_D1[1/*1*/]=HUD::EndTextCommandThefeedPostReplayInput(1,"~INPUT_REPLAY_START_STOP_RECORDING~",""); - // l_D1[2/*1*/]=HUD::EndTextCommandThefeedPostReplayInput(1,"~INPUT_SAVE_REPLAY_CLIP~",""); - // l_D1[1/*1*/]=HUD::EndTextCommandThefeedPostReplayInput(1,"~INPUT_REPLAY_START_STOP_RECORDING~",""); - // l_D1[2/*1*/]=HUD::EndTextCommandThefeedPostReplayInput(1,"~INPUT_REPLAY_START_STOP_RECORDING_SECONDARY~",""); - // - inline int EndTextCommandThefeedPostReplayInput(int type, String button, String text) { return _i(0xDD6CB2CCE7C2735C, type, button, text); } // 0xdd6cb2cce7c2735cB323 - // Void ShowSubtitle(const char *text) - // { - // BeginTextCommandPrint("STRING"); - // AddTextComponentSubstringPlayerName(text); - // EndTextCommandPrint(2000, true); - // } - inline Void BeginTextCommandPrint(String GxtEntry) { return _i(0xB87A37EEB7FAA67D, GxtEntry); } // 0xb87a37eeb7faa67d0xf42c43c7B323 - // Draws the subtitle at middle center of the screen. - // - // int duration = time in milliseconds to show text on screen before disappearing - // - // drawImmediately = If true, the text will be drawn immediately, if false, the text will be drawn after the previous subtitle has finished - // - // Used to be known as _DRAW_SUBTITLE_TIMED - inline Void EndTextCommandPrint(int duration, BOOL drawImmediately) { return _i(0x9D77056A530643F6, duration, drawImmediately); } // 0x9d77056a530643f60x38f82261B323 - // nothin doin. - // - // BOOL Message(String text) - // { - // BeginTextCommandIsMessageDisplayed("STRING"); - // AddTextComponentSubstringPlayerName(text); - // return EndTextCommandIsMessageDisplayed(); - // } - inline Void BeginTextCommandIsMessageDisplayed(String text) { return _i(0x853648FD1063A213, text); } // 0x853648fd1063a2130xdd524a11B323 - inline BOOL EndTextCommandIsMessageDisplayed() { return _i(0x8A9BA1AB3E237613); } // 0x8a9ba1ab3e2376130x672efb45B323 - // The following were found in the decompiled script files: - // STRING, TWOSTRINGS, NUMBER, PERCENTAGE, FO_TWO_NUM, ESMINDOLLA, ESDOLLA, MTPHPER_XPNO, AHD_DIST, CMOD_STAT_0, CMOD_STAT_1, CMOD_STAT_2, CMOD_STAT_3, DFLT_MNU_OPT, F3A_TRAFDEST, ES_HELP_SOC3 - // - // ESDOLLA - cash - // ESMINDOLLA - cash (negative) - // - // Used to be known as _SET_TEXT_ENTRY - inline Void BeginTextCommandDisplayText(String text) { return _i(0x25FBB336DF1804CB, text); } // 0x25fbb336df1804cb0x3e35563eB323 - // After applying the properties to the text (See HUD::SET_TEXT_), this will draw the text in the applied position. Also 0.0f < x, y < 1.0f, percentage of the axis. - // - // Used to be known as _DRAW_TEXT - inline Void EndTextCommandDisplayText(float x, float y, int p2) { return _i(0xCD015E5BB0D96A57, x, y, p2); } // 0xcd015e5bb0d96a570x6f8350ceB323 - inline Void BeginTextCommandGetScreenWidthOfDisplayText(String text) { return _i(0x54CE8AC98E120CAB, text); } // 0x54ce8ac98e120cab0x51e7a037B323 - inline float EndTextCommandGetScreenWidthOfDisplayText(BOOL p0) { return _i(0x85F061DA64ED2F67, p0); } // 0x85f061da64ed2f670xd12a643aB323 - // int GetLineCount(char *text, float x, float y) - // { - // BeginTextCommandGetNumberOfLinesForString("STRING"); - // AddTextComponentSubstringPlayerName(text); - // return BeginTextCommandGetNumberOfLinesForString(x, y); - // } - inline Void BeginTextCommandGetNumberOfLinesForString(String entry) { return _i(0x521FB041D93DD0E4, entry); } // 0x521fb041d93dd0e40x94b82066B323 - // Determines how many lines the text string will use when drawn on screen. - // Must use 0x521FB041D93DD0E4 for setting up - inline int EndTextCommandGetNumberOfLinesForString(float x, float y) { return _i(0x9040DFB09BE75706, x, y); } // 0x9040dfb09be757060xaa318785B323 - // Used to be known as _SET_TEXT_COMPONENT_FORMAT - inline Void BeginTextCommandDisplayHelp(String inputType) { return _i(0x8509B634FBE7DA11, inputType); } // 0x8509b634fbe7da110xb245fc10B323 - // shape goes from -1 to 50 (may be more). - // p0 is always 0. - // - // Example: - // Void FloatingHelpText(String text) - // { - // BeginTextCommandDisplayHelp("STRING"); - // AddTextComponentSubstringPlayerName(text); - // EndTextCommandDisplayHelp (0, 0, 1, -1); - // } - // - // Image: - // - imgbin.org/images/26209.jpg - // - // more inputs/icons: - // - https://pastebin.com/nqNYWMSB - // - // Used to be known as _DISPLAY_HELP_TEXT_FROM_STRING_LABEL - inline Void EndTextCommandDisplayHelp(int p0, BOOL loop, BOOL beep, int shape) { return _i(0x238FFE5C7B0498A6, p0, loop, beep, shape); } // 0x238ffe5c7b0498a60xb59b530dB323 - // BOOL IsContextActive(char *ctx) - // { - // BeginTextCommandIsThisHelpMessageBeingDisplayed(ctx); - // return EndTextCommandIsThisHelpMessageBeingDisplayed(0); - // } - inline Void BeginTextCommandIsThisHelpMessageBeingDisplayed(String labelName) { return _i(0x0A24DA3A41B718F5, labelName); } // 0x0a24da3a41b718f50x00e20f2dB323 - inline BOOL EndTextCommandIsThisHelpMessageBeingDisplayed(int p0) { return _i(0x10BDDBFC529428DD, p0); } // 0x10bddbfc529428dd0xf63a13ecB323 - // Starts a text command to change the name of a blip displayed in the pause menu. - // This should be paired with `EndTextCommandSetBlipName`, once adding all required text components. - // Example: - // - // HUD::BeginTextCommandSetBlipName("STRING"); - // HUD::AddTextComponentSubstringPlayerName("Name"); - // HUD::EndTextCommandSetBlipName(blip); - inline Void BeginTextCommandSetBlipName(String textLabel) { return _i(0xF9113A30DE5C6670, textLabel); } // 0xf9113a30de5c66700xf4c211f6B323 - // Finalizes a text command started with BeginTextCommandSetBlipName, setting the name of the specified blip. - inline Void EndTextCommandSetBlipName(Blip blip) { return _i(0xBC38B49BCB83BC9B, blip); } // 0xbc38b49bcb83bc9b0xe8e59820B323 - inline Void BeginTextCommandAddDirectlyToPreviousBriefs(String p0) { return _i(0x23D69E0465570028, p0); } // 0x23d69e04655700280x0e103475B323 - inline Void EndTextCommandAddDirectlyToPreviousBriefs(BOOL p0) { return _i(0xCFDBDF5AE59BA0F4, p0); } // 0xcfdbdf5ae59ba0f40x2944a6c5B323 - // clears a print text command with this text - inline Void BeginTextCommandClearPrint(String text) { return _i(0xE124FA80A759019C, text); } // 0xe124fa80a759019c0x550665aeB323 - inline Void EndTextCommandClearPrint() { return _i(0xFCC75460ABA29378); } // 0xfcc75460aba293780x67785af2B323 - inline Void BeginTextCommandOverrideButtonText(String gxtEntry) { return _i(0x8F9EE5687F8EECCD, gxtEntry); } // 0x8f9ee5687f8eeccd0xbf855650B323 - inline Void EndTextCommandOverrideButtonText(int p0) { return _i(0xA86911979638106F, p0); } // 0xa86911979638106f0x6e7fda1cB323 - inline Void AddTextComponentInteger(int value) { return _i(0x03B504CF259931BC, value); } // 0x03b504cf259931bc0xfe272a57B323 - inline Void AddTextComponentFloat(float value, int decimalPlaces) { return _i(0xE7DCB5B874BCD96E, value, decimalPlaces); } // 0xe7dcb5b874bcd96e0x24d78013B323 - inline Void AddTextComponentSubstringTextLabel(String labelName) { return _i(0xC63CD5D2920ACBE7, labelName); } // 0xc63cd5d2920acbe70xdce05406B323 - // It adds the localized text of the specified GXT entry name. Eg. if the argument is GetHashKey("ES_HELP"), adds "Continue". Just uses a text labels hash key - inline Void AddTextComponentSubstringTextLabelHashKey(Hash gxtEntryHash) { return _i(0x17299B63C7683A2B, gxtEntryHash); } // 0x17299b63c7683a2b0x150e03b6B323 - inline Void AddTextComponentSubstringBlipName(Blip blip) { return _i(0x80EAD8E2E1D5D52E, blip); } // 0x80ead8e2e1d5d52e0x5de98f0aB323 - inline Void AddTextComponentSubstringPlayerName(String text) { return _i(0x6C188BE134E074AA, text); } // 0x6c188be134e074aa0x27a244d8B323 - // Adds a timer (e.g. "00:00:00:000"). The appearance of the timer depends on the flags, which needs more research. - inline Void AddTextComponentSubstringTime(int timestamp, int flags) { return _i(0x1115F16B8AB9E8BF, timestamp, flags); } // 0x1115f16b8ab9e8bf0x135b3cd0B323 - inline Void AddTextComponentFormattedInteger(int value, BOOL commaSeparated) { return _i(0x0E4C749FF9DE9CC4, value, commaSeparated); } // 0x0e4c749ff9de9cc40x12929bdfB323 - // p1 was always -1 - inline Void AddTextComponentSubstringPhoneNumber(String p0, int p1) { return _i(0x761B77454205A61D, p0, p1); } // 0x761b77454205a61d0x65e1d404B323 - // This native (along with AddTextComponentSubstringKeyboardDisplay and AddTextComponentSubstringPlayerName) do not actually filter anything. They simply add the provided text (as of 944) - inline Void AddTextComponentSubstringWebsite(String website) { return _i(0x94CF4AC034C9C986, website); } // 0x94cf4ac034c9c9860xc736999eB323 - inline Void AddTextComponentSubstringKeyboardDisplay(String string) { return _i(0x5F68520888E69014, string); } // 0x5f68520888e690140x0829a799B323 - inline Void SetColourOfNextTextComponent(int hudColor) { return _i(0x39BBF623FC803EAC, hudColor); } // 0x39bbf623fc803eac0x6f1a1901B323 - // Returns a substring of a specified length starting at a specified position. - // - // Example: - // // Get "STRING" text from "MY_STRING" - // subStr = HUD::GetCharacterFromAudioConversationFilename("MY_STRING", 3, 6); - - inline String GetCharacterFromAudioConversationFilename(String text, int position, int length) { return _i(0x169BD9382084C8C0, text, position, length); } // 0x169BD9382084C8C0 0x34A396EE b323 - // Returns a substring of a specified length starting at a specified position. The result is guaranteed not to exceed the specified max length. - // - // NOTE: The 'maxLength' parameter might actually be the size of the buffer that is returned. More research is needed. -CL69 - // - // Example: - // // Condensed example of how Rockstar uses this function - // strLen = HUD::GetLengthOfLiteralString(MISC::GET_ONSCREEN_KEYBOARD_RESULT()); - // subStr = HUD::GetCharacterFromAudioConversationFilename_WITH_BYTE_LIMIT(MISC::GET_ONSCREEN_KEYBOARD_RESULT(), 0, strLen, 63); - // - // -- - // - // "fm_race_creator.ysc", line 85115: - // // parameters modified for clarity - // BOOL sub_8e5aa(char *text, int length) { - // for (i = 0; i <= (length - 2); i += 1) { - // if (!MISC::AreStringsEqual(HUD::GetCharacterFromAudioConversationFilename_WITH_BYTE_LIMIT(text, i, i + 1, 1), " ")) { - // return FALSE; - // } - // } - // return TRUE; - // } - inline String GetCharacterFromAudioConversationFilename_WITH_BYTE_LIMIT(String text, int position, int length, int maxLength) { return _i(0xB2798643312205C5, text, position, length, maxLength); } // 0xB2798643312205C5 0x0183A66C b323 - // Returns a substring that is between two specified positions. The length of the string will be calculated using (endPosition - startPosition). - // - // Example: - // // Get "STRING" text from "MY_STRING" - // subStr = HUD::GetCharacterFromAudioConversationFilenameBytes("MY_STRING", 3, 9); - // // Overflows are possibly replaced with underscores (needs verification) - // subStr = HUD::GetCharacterFromAudioConversationFilenameBytes("MY_STRING", 3, 10); // "STRING_"? - inline String GetCharacterFromAudioConversationFilenameBytes(String text, int startPosition, int endPosition) { return _i(0xCE94AEBA5D82908A, text, startPosition, endPosition); } // 0xCE94AEBA5D82908A 0xFA6373BB b323 - // Gets a localized string literal from a label name. Can be used for output of e.g. VEHICLE::GET_LIVERY_NAME. To check if a GXT label can be localized with this, HUD::DoesTextLabelExist can be used. - inline String GetFilenameForAudioConversation(String labelName) { return _i(0x7B5280EBA9840C72, labelName); } // 0x7B5280EBA9840C72 0x95C4B5AD b323 - inline Void ClearPrints() { return _i(0xCC33FA791322B9D9); } // 0xcc33fa791322b9d90x216cb1c5B323 - inline Void ClearBrief() { return _i(0x9D292F73ADBD9313); } // 0x9d292f73adbd93130x9f75a929B323 - inline Void ClearAllHelpMessages() { return _i(0x6178F68A87A4D3A0); } // 0x6178f68a87a4d3a00x9e5d9198B323 - // p0: found arguments in the b617d scripts: https://pastebin.com/X5akCN7z - inline Void ClearThisPrint(String p0) { return _i(0xCF708001E1E536DD, p0); } // 0xcf708001e1e536dd0x06878327B323 - inline Void ClearSmallPrints() { return _i(0x2CEA2839313C09AC); } // 0x2cea2839313c09ac0xa869a238B323 - inline BOOL DoesTextBlockExist(String gxt) { return _i(0x1C7302E725259789, gxt); } // 0x1c7302e7252597890x96f74838B323 - // Request a gxt into the passed slot. - inline Void RequestAdditionalText(String gxt, int slot) { return _i(0x71A78003C8E71424, gxt, slot); } // 0x71a78003c8e714240x9fa9175bB323 - inline Void RequestAdditionalTextForDlc(String gxt, int slot) { return _i(0x6009F9F1AE90D8A6, gxt, slot); } // 0x6009f9f1ae90d8a60xf4d27ebeB323 - inline BOOL HasAdditionalTextLoaded(int slot) { return _i(0x02245FE4BED318B8, slot); } // 0x02245fe4bed318b80xb0e56045B323 - inline Void ClearAdditionalText(int p0, BOOL p1) { return _i(0x2A179DF17CCF04CD, p0, p1); } // 0x2a179df17ccf04cd0x518141e0B323 - inline BOOL IsStreamingAdditionalText(int p0) { return _i(0x8B6817B71B85EBF0, p0); } // 0x8b6817b71b85ebf00xf079e4ebB323 - // Checks if the specified gxt has loaded into the passed slot. - inline BOOL HasThisAdditionalTextLoaded(String gxt, int slot) { return _i(0xADBF060E2B30C5BC, gxt, slot); } // 0xadbf060e2b30c5bc0x80a52040B323 - inline BOOL IsMessageBeingDisplayed() { return _i(0x7984C03AA5CC2F41); } // 0x7984c03aa5cc2f410x6a77fe8dB323 - // Checks if the passed gxt name exists in the game files. - inline BOOL DoesTextLabelExist(String gxt) { return _i(0xAC09CA973C564252, gxt); } // 0xac09ca973c5642520x6ecae560B323 - inline String GET_FIRST_N_CHARACTERS_OF_LITERAL_STRING(String string, int length) { return _i(0x98C3CF913D895111, string, length); } // 0x98C3CF913D895111 b505 - // Returns the string length of the string from the gxt string . - inline int GetLengthOfStringWithThisTextLabel(String gxt) { return _i(0x801BD273D3A23F74, gxt); } // 0x801bd273d3a23f740xa4ca7be5B323 - // Returns the length of the string passed (much like strlen). - inline int GetLengthOfLiteralString(String string) { return _i(0xF030907CCBB8A9FD, string); } // 0xf030907ccbb8a9fd0x99379d55B323 - inline int GetLengthOfLiteralStringInBytes(String string) { return _i(0x43E4111189E54F0E, string); } // 0x43e4111189e54f0e0x7dbc0764B323 - // This functions converts the hash of a street name into a readable string. - // - // For how to get the hashes, see PATHFIND::GetStreetNameAtCoord. - inline String GetStreetNameFromHashKey(Hash hash) { return _i(0xD0EF8A959B8A4CB9, hash); } // 0xD0EF8A959B8A4CB9 0x1E8E310C b323 - inline BOOL IsHudPreferenceSwitchedOn() { return _i(0x1930DFA731813EC4); } // 0x1930dfa731813ec40xc3bc1b4fB323 - inline BOOL IsRadarPreferenceSwitchedOn() { return _i(0x9EB6522EA68F22FE); } // 0x9eb6522ea68f22fe0x14aeaa28B323 - inline BOOL IsSubtitlePreferenceSwitchedOn() { return _i(0xAD6DACA4BA53E0A4); } // 0xad6daca4ba53e0a40x63ba19f5B323 - // If Hud should be displayed - inline Void DisplayHud(BOOL toggle) { return _i(0xA6294919E56FF02A, toggle); } // 0xa6294919e56ff02a0xd10e4e31B323 - // Enables drawing some hud components, such as help labels, this frame, when the player is dead. - inline Void DisplayHudWhenNotInStateOfPlayThisFrame() { return _i(0x7669F9E39DC17063); } // 0x7669f9e39dc170630xc380ac85B323 - inline Void DisplayHudWhenPausedThisFrame() { return _i(0x402F9ED62087E898); } // 0x402f9ed62087e8980xc47ab1b0B323 - // If Minimap / Radar should be displayed. - inline Void DisplayRadar(BOOL toggle) { return _i(0xA0EBB943C300E693, toggle); } // 0xa0ebb943c300e6930x52816bd4B323 - // Setter for GetFakeSpectatorMode - inline Void SetFakeSpectatorMode(BOOL toggle) { return _i(0xCD74233600C4EA6B, toggle); } // 0xcd74233600c4ea6bB505 - // Getter for SetFakeSpectatorMode - inline BOOL GetFakeSpectatorMode() { return _i(0xC2D2AD9EAAE265B8); } // 0xc2d2ad9eaae265b8B505 - inline BOOL IsHudHidden() { return _i(0xA86478C6958735C5); } // 0xa86478c6958735c50x40bada1dB323 - inline BOOL IsRadarHidden() { return _i(0x157F93B036700462); } // 0x157f93b0367004620x1ab3b954B323 - inline BOOL IsMinimapRendering() { return _i(0xAF754F20EB5CD51A); } // 0xaf754f20eb5cd51a0x9cd18314B323 - inline Void UseVehicleTargetingReticule(Any p0) { return _i(0x0C698D8F099174C7, p0); } // 0x0c698d8f099174c7B1180 - inline Void AddValidVehicleHitHash(Any p0) { return _i(0xE4C3B169876D33D7, p0); } // 0xe4c3b169876d33d7B1290 - inline Void ClearValidVehicleHitHashes() { return _i(0xEB81A3DADD503187); } // 0xeb81a3dadd503187B1290 - // Enable / disable showing route for the Blip-object. - inline Void SetBlipRoute(Blip blip, BOOL enabled) { return _i(0x4F7D8A9BFB0B43E9, blip, enabled); } // 0x4f7d8a9bfb0b43e90x3e160c90B323 - inline Void ClearAllBlipRoutes() { return _i(0xD12882D3FF82BF11); } // 0xd12882d3ff82bf11B877 - inline Void SetBlipRouteColour(Blip blip, int colour) { return _i(0x837155CD2F63DA09, blip, colour); } // 0x837155cd2f63da090xdde7c65cB323 - inline Void SetForceShowGps(BOOL toggle) { return _i(0x2790F4B17D098E26, toggle); } // 0x2790f4b17d098e26B573 - inline Void SetUseSetDestinationInPauseMap(BOOL toggle) { return _i(0x6CDD58146A436083, toggle); } // 0x6cdd58146a436083B573 - inline Void SetBlockWantedFlash(BOOL disabled) { return _i(0xD1942374085C8469, disabled); } // 0xd1942374085c8469B505 - inline Void AddNextMessageToPreviousBriefs(BOOL p0) { return _i(0x60296AF4BA14ABC5, p0); } // 0x60296af4ba14abc50xb58b25bdB323 - inline Void ForceNextMessageToPreviousBriefsList(int p0) { return _i(0x57D760D55F54E071, p0); } // 0x57d760d55f54e0710x9854485fB323 - // zoom ranges from 0 to 90f in R* Scripts - inline Void SetRadarZoomPrecise(float zoom) { return _i(0xBD12C5EEE184C337, zoom); } // 0xbd12c5eee184c3370xdca3f423B323 - // zoomLevel ranges from 0 to 1400 in R* Scripts - inline Void SetRadarZoom(int zoomLevel) { return _i(0x096EF57A0C999BBA, zoomLevel); } // 0x096ef57a0c999bba0x2a50d1a6B323 - inline Void SetRadarZoomToBlip(Blip blip, float zoom) { return _i(0xF98E4B3E56AFC7B1, blip, zoom); } // 0xf98e4b3e56afc7b10x25ec28c0B323 - inline Void SetRadarZoomToDistance(float zoom) { return _i(0xCB7CC0D58405AD41, zoom); } // 0xcb7cc0d58405ad410x09cf1ce5B323 - // Does nothing (it's a nullsub). - inline Void UpdateRadarZoomToBlip() { return _i(0xD2049635DEB9C375); } // 0xd2049635deb9c3750xe8d3a910B323 - inline Void GetHudColour(int hudColorIndex, int* r, int* g, int* b, int* a) { return _i(0x7C9C91AB74A0360F, hudColorIndex, r, g, b, a); } // 0x7c9c91ab74a0360f0x63f66a0bB323 - // Sets the color of HUD_COLOUR_SCRIPT_VARIABLE - inline Void SetScriptVariableHudColour(int r, int g, int b, int a) { return _i(0xD68A5FF8A3A89874, r, g, b, a); } // 0xd68a5ff8a3a898740x0e41e45cB323 - // Sets the color of HUD_COLOUR_SCRIPT_VARIABLE_2 - inline Void SetSecondScriptVariableHudColour(int r, int g, int b, int a) { return _i(0x16A304E6CB2BFAB9, r, g, b, a); } // 0x16a304e6cb2bfab90x6be3aca8B323 - // makes hudColorIndex2 color into hudColorIndex color - inline Void ReplaceHudColour(int hudColorIndex, int hudColorIndex2) { return _i(0x1CCC708F0F850613, hudColorIndex, hudColorIndex2); } // 0x1ccc708f0f8506130x3b216749B323 - inline Void ReplaceHudColourWithRgba(int hudColorIndex, int r, int g, int b, int a) { return _i(0xF314CF4F0211894E, hudColorIndex, r, g, b, a); } // 0xf314cf4f0211894e0xf6e7e92bB323 - inline Void SetAbilityBarVisibility(BOOL visible) { return _i(0x1DFEDD15019315A9, visible); } // 0x1dfedd15019315a9B1493 - inline Void SetAllowAbilityBar(BOOL toggle) { return _i(0x889329C80FE5963C, toggle); } // 0x889329c80fe5963cB1868 - inline Void FlashAbilityBar(int millisecondsToFlash) { return _i(0x02CFBA0C9E9275CE, millisecondsToFlash); } // 0x02cfba0c9e9275ce0x3648960dB323 - inline Void SetAbilityBarValue(float p0, float p1) { return _i(0x9969599CCFF5D85E, p0, p1); } // 0x9969599ccff5d85e0x24e53fd8B323 - inline Void FlashWantedDisplay(BOOL p0) { return _i(0xA18AFB39081B6A1F, p0); } // 0xa18afb39081b6a1f0x629f866bB323 - inline Void ForceOffWantedStarFlash(BOOL toggle) { return _i(0xBA8D65C1C65702E5, toggle); } // 0xba8d65c1c65702e50x58612465B323 - inline Void SetCustomMpHudColor(int hudColorId) { return _i(0x2ACCB195F3CCD9DE, hudColorId); } // 0x2accb195f3ccd9deB2545 - // This gets the height of the FONT and not the total text. You need to get the number of lines your text uses, and get the height of a newline (I'm using a smaller value) to get the total text height. - inline float GetRenderedCharacterHeight(float size, int font) { return _i(0xDB88A37483346780, size, font); } // 0xdb88a374833467800x3330175bB323 - // Size range : 0F to 1.0F - // p0 is unknown and doesn't seem to have an effect, yet in the game scripts it changes to 1.0F sometimes. - inline Void SetTextScale(float scale, float size) { return _i(0x07C837F9A01C34C9, scale, size); } // 0x07c837f9a01c34c90xb6e15b23B323 - // colors you input not same as you think? - // A: for some reason its R B G A - inline Void SetTextColour(int red, int green, int blue, int alpha) { return _i(0xBE6B23FFA53FB442, red, green, blue, alpha); } // 0xbe6b23ffa53fb4420xe54dd2c8B323 - inline Void SetTextCentre(BOOL align) { return _i(0xC02F4DBFB51D988B, align); } // 0xc02f4dbfb51d988b0xe26d39a1B323 - inline Void SetTextRightJustify(BOOL toggle) { return _i(0x6B3C4650BC8BEE47, toggle); } // 0x6b3c4650bc8bee470x45b60520B323 - // Types - - // 0: Center-Justify - // 1: Left-Justify - // 2: Right-Justify - // - // Right-Justify requires SetTextWrap, otherwise it will draw to the far right of the screen - inline Void SetTextJustification(int justifyType) { return _i(0x4E096588B13FFECA, justifyType); } // 0x4e096588b13ffeca0x68cdfa60B323 - // It sets the text in a specified box and wraps the text if it exceeds the boundries. Both values are for X axis. Useful when positioning text set to center or aligned to the right. - // - // start - left boundry on screen position (0.0 - 1.0) - // end - right boundry on screen position (0.0 - 1.0) - inline Void SetTextWrap(float start, float end) { return _i(0x63145D9C883A1A70, start, end); } // 0x63145d9c883a1a700x6f60ab54B323 - inline Void SetTextLeading(int p0) { return _i(0xA50ABC31E3CDFAFF, p0); } // 0xa50abc31e3cdfaff0x98ce21d4B323 - // This native does absolutely nothing, just a nullsub - inline Void SetTextProportional(BOOL p0) { return _i(0x038C1F517D7FDCF8, p0); } // 0x038c1f517d7fdcf80xf49d8a08B323 - // fonts that mess up your text where made for number values/misc stuff - inline Void SetTextFont(int fontType) { return _i(0x66E0276CC5F6B9DA, fontType); } // 0x66e0276cc5f6b9da0x80bc530dB323 - inline Void SetTextDropShadow() { return _i(0x1CA3E9EAC9D93E5E); } // 0x1ca3e9eac9d93e5e0xe2a11511B323 - // distance - shadow distance in pixels, both horizontal and vertical - // r, g, b, a - color - inline Void SetTextDropshadow(int distance, int r, int g, int b, int a) { return _i(0x465C84BC39F1C351, distance, r, g, b, a); } // 0x465c84bc39f1c3510xe6587517B323 - inline Void SetTextOutline() { return _i(0x2513DFB0FB8400FE); } // 0x2513dfb0fb8400fe0xc753412fB323 - // This native does absolutely nothing, just a nullsub - inline Void SetTextEdge(int p0, int r, int g, int b, int a) { return _i(0x441603240D202FA6, p0, r, g, b, a); } // 0x441603240d202fa60x3f1a5dabB323 - inline Void SetTextRenderId(int renderId) { return _i(0x5F15302936E07111, renderId); } // 0x5f15302936e071110xc5c3b7f3B323 - // This function is hard-coded to always return 1. - inline int GetDefaultScriptRendertargetRenderId() { return _i(0x52F0982D7FD156B6); } // 0x52f0982d7fd156b60x8188935fB323 - inline BOOL RegisterNamedRendertarget(String name, BOOL p1) { return _i(0x57D9C12635E25CE3, name, p1); } // 0x57d9c12635e25ce30xfae5d6f0B323 - inline BOOL IsNamedRendertargetRegistered(String name) { return _i(0x78DCDC15C9F116B4, name); } // 0x78dcdc15c9f116b40x284057f5B323 - inline BOOL ReleaseNamedRendertarget(String name) { return _i(0xE9F6FFE837354DD4, name); } // 0xe9f6ffe837354dd40xd3f6c892B323 - inline Void LinkNamedRendertarget(Hash modelHash) { return _i(0xF6C09E276AEB3F2D, modelHash); } // 0xf6c09e276aeb3f2d0x6844c4b9B323 - inline int GetNamedRendertargetRenderId(String name) { return _i(0x1A6478B61C6BDC3B, name); } // 0x1a6478b61c6bdc3b0xf9d7a401B323 - inline BOOL IsNamedRendertargetLinked(Hash modelHash) { return _i(0x113750538FA31298, modelHash); } // 0x113750538fa312980x8b52601fB323 - inline Void ClearHelp(BOOL toggle) { return _i(0x8DFCED7A656F8802, toggle); } // 0x8dfced7a656f88020xe6d85741B323 - inline BOOL IsHelpMessageOnScreen() { return _i(0xDAD37F45428801AE); } // 0xdad37f45428801ae0x4b3c9ca9B323 - inline BOOL HasScriptHiddenHelpThisFrame() { return _i(0x214CD562A939246A); } // 0x214cd562a939246a0x812cbe0eB323 - inline BOOL IsHelpMessageBeingDisplayed() { return _i(0x4D79439A6B55AC67); } // 0x4d79439a6b55ac670xa65f262aB323 - inline BOOL IsHelpMessageFadingOut() { return _i(0x327EDEEEAC55C369); } // 0x327edeeeac55c3690x3e50ae92B323 - inline Void SetHelpMessageStyle(int style, int hudColor, int alpha, int p3, int p4) { return _i(0xB9C362BABECDDC7A, style, hudColor, alpha, p3, p4); } // 0xb9c362babecddc7aB463 - inline int GetStandardBlipEnumId() { return _i(0x4A9923385BDB9DAD); } // 0x4a9923385bdb9dad0x87871ce0B323 - inline int GetWaypointBlipEnumId() { return _i(0x186E5D252FA50E7D); } // 0x186e5d252fa50e7d0xb9827942B323 - inline int GetNumberOfActiveBlips() { return _i(0x9A3FF3DE163034E8); } // 0x9a3ff3de163034e80x144020faB323 - inline Blip GetNextBlipInfoId(int blipSprite) { return _i(0x14F96AA50D6FBEA7, blipSprite); } // 0x14f96aa50d6fbea70x9356e92fB323 - inline Blip GetFirstBlipInfoId(int blipSprite) { return _i(0x1BEDE233E6CD2A1F, blipSprite); } // 0x1bede233e6cd2a1f0x64c0273dB323 - inline Blip GetClosestBlipInfoId(int blipSprite) { return _i(0xD484BF71050CA1EE, blipSprite); } // 0xd484bf71050ca1eeB1180 - inline Vector3 GetBlipInfoIdCoord(Blip blip) { return _i(0xFA7C7F0AADF25D09, blip); } // 0xfa7c7f0aadf25d090xb7374a66B323 - inline int GetBlipInfoIdDisplay(Blip blip) { return _i(0x1E314167F701DC3B, blip); } // 0x1e314167f701dc3b0xd0fc19f4B323 - // Returns a value based on what the blip is attached to - // 1 - Vehicle - // 2 - Ped - // 3 - Object - // 4 - Coord - // 5 - unk - // 6 - Pickup - // 7 - Radius - inline int GetBlipInfoIdType(Blip blip) { return _i(0xBE9B0959FFD0779B, blip); } // 0xbe9b0959ffd0779b0x501d7b4eB323 - inline Entity GetBlipInfoIdEntityIndex(Blip blip) { return _i(0x4BA4E2553AFEDC2C, blip); } // 0x4ba4e2553afedc2c0xa068c40bB323 - // This function is hard-coded to always return 0. - inline Pickup GetBlipInfoIdPickupIndex(Blip blip) { return _i(0x9B6786E4C03DD382, blip); } // 0x9b6786e4c03dd3820x86913d37B323 - // Returns the Blip handle of given Entity. - inline Blip GetBlipFromEntity(Entity entity) { return _i(0xBC8DBDCA2436F7E8, entity); } // 0xbc8dbdca2436f7e80x005a2a47B323 - inline Blip AddBlipForRadius(float posX, float posY, float posZ, float radius) { return _i(0x46818D79B1F7499A, posX, posY, posZ, radius); } // 0x46818d79b1f7499a0x4626756cB323 - // Adds a rectangular blip for the specified coordinates/area. - // - // It is recommended to use SetBlipRotation and SetBlipColour to make the blip not rotate along with the camera. - // - // By default, the blip will show as a _regular_ blip with the specified color/sprite if it is outside of the minimap view. - // - // Example image: - // minimap https://w.wew.wtf/pdcjig.png - // big map https://w.wew.wtf/zgcjcm.png - // - // (Native name is _likely_ to actually be AddBlipForArea, but due to the usual reasons this can't be confirmed) - inline Blip AddBlipForArea(float x, float y, float z, float width, float height) { return _i(0xCE5D0E5E315DB238, x, y, z, width, height); } // 0xce5d0e5e315db238B463 - // Returns red ( default ) blip attached to entity. - // - // Example: - // Blip blip; //Put this outside your case or option - // blip = HUD::AddBlipForEntity(YourPedOrBodyguardName); - // HUD::SetBlipAsFriendly(blip, true); - inline Blip AddBlipForEntity(Entity entity) { return _i(0x5CDE92C702A8FCE7, entity); } // 0x5cde92c702a8fce70x30822554B323 - inline Blip AddBlipForPickup(Pickup pickup) { return _i(0xBE339365C863BD36, pickup); } // 0xbe339365c863bd360x16693c3aB323 - // Creates an orange ( default ) Blip-object. Returns a Blip-object which can then be modified. - inline Blip AddBlipForCoord(float x, float y, float z) { return _i(0x5A039BB0BCA604B6, x, y, z); } // 0x5a039bb0bca604b60xc6f43d0eB323 - inline Void TriggerSonarBlip(float posX, float posY, float posZ, float radius, int p4) { return _i(0x72DD432F3CDFC0EE, posX, posY, posZ, radius, p4); } // 0x72dd432f3cdfc0ee0xbf25e7b2B323 - inline Void AllowSonarBlips(BOOL toggle) { return _i(0x60734CC207C9833C, toggle); } // 0x60734cc207c9833c0xe7e1e32bB323 - inline Void SetBlipCoords(Blip blip, float posX, float posY, float posZ) { return _i(0xAE2AF67E9D9AF65D, blip, posX, posY, posZ); } // 0xae2af67e9d9af65d0x680a34d4B323 - inline Vector3 GetBlipCoords(Blip blip) { return _i(0x586AFE3FF72D996E, blip); } // 0x586afe3ff72d996e0xef6ff47bB323 - // Sets the displayed sprite for a specific blip.. - // - // You may have your own list, but since dev-c didn't show it I was bored and started looking through scripts and functions to get a presumable almost positive list of a majority of blip IDs - // https://pastebin.com/Bpj9Sfft - // - // Blips Images + IDs: - // https://gtaxscripting.blogspot.com/2016/05/gta-v-blips-id-and-image.html - inline Void SetBlipSprite(Blip blip, int spriteId) { return _i(0xDF735600A4696DAF, blip, spriteId); } // 0xdf735600a4696daf0x8dbbb0b9B323 - // Blips Images + IDs: - // gtaxscripting.blogspot.com/2016/05/gta-v-blips-id-and-image.html - inline int GetBlipSprite(Blip blip) { return _i(0x1FC877464A04FC4F, blip); } // 0x1fc877464a04fc4f0x72ff2e73B323 - inline Void SetCopBlipSprite(int p0, float p1) { return _i(0x9FCB3CBFB3EAD69A, p0, p1); } // 0x9fcb3cbfb3ead69aB1734 - inline Void SetCopBlipSpriteAsStandard() { return _i(0xB7B873520C84C118); } // 0xb7b873520c84c118B1734 - // Doesn't work if the label text of gxtEntry is >= 80. - inline Void SetBlipNameFromTextFile(Blip blip, String gxtEntry) { return _i(0xEAA0FFE120D92784, blip, gxtEntry); } // 0xeaa0ffe120d927840xac8a5461B323 - inline Void SetBlipNameToPlayerName(Blip blip, Player player) { return _i(0x127DE7B20C60A6A3, blip, player); } // 0x127de7b20c60a6a30x03a0b8f9B323 - // Sets alpha-channel for blip color. - // - // Example: - // - // Blip blip = HUD::AddBlipForEntity(entity); - // HUD::SetBlipColour(blip , 3); - // HUD::SetBlipAlpha(blip , 64); - // - inline Void SetBlipAlpha(Blip blip, int alpha) { return _i(0x45FF974EEE1C8734, blip, alpha); } // 0x45ff974eee1c87340xa791fccdB323 - inline int GetBlipAlpha(Blip blip) { return _i(0x970F608F0EE6C885, blip); } // 0x970f608f0ee6c8850x297af6c8B323 - inline Void SetBlipFade(Blip blip, int opacity, int duration) { return _i(0x2AEE8F8390D2298C, blip, opacity, duration); } // 0x2aee8f8390d2298c0xa5999031B323 - // Returns -1, 0, +1, depending on if the blip is fading out, doing nothing, or fading in respectively. - inline int GetBlipFadeDirection(Blip blip) { return _i(0x2C173AE2BDB9385E, blip); } // 0x2c173ae2bdb9385eB463 - // After some testing, looks like you need to use Ceil() on the rotation (vehicle/ped heading) before using it there. - inline Void SetBlipRotation(Blip blip, int rotation) { return _i(0xF87683CDF73C3F6E, blip, rotation); } // 0xf87683cdf73c3f6e0x6b8f44feB323 - // Does not require whole number/integer rotations. - inline Void SetBlipRotationWithFloat(Blip blip, float heading) { return _i(0xA8B6AFDAC320AC87, blip, heading); } // 0xa8b6afdac320ac87B877 - inline int GetBlipRotation(Blip blip) { return _i(0x003E92BA477F9D7F, blip); } // 0x003e92ba477f9d7fB2060 - // Adds up after viewing multiple R* scripts. I believe that the duration is in miliseconds. - inline Void SetBlipFlashTimer(Blip blip, int duration) { return _i(0xD3CD6FD297AE87CC, blip, duration); } // 0xd3cd6fd297ae87cc0x8d5df611B323 - inline Void SetBlipFlashInterval(Blip blip, Any p1) { return _i(0xAA51DB313C010A7E, blip, p1); } // 0xaa51db313c010a7e0xeaf67377B323 - // https://gtaforums.com/topic/864881-all-blip-color-ids-pictured/ - inline Void SetBlipColour(Blip blip, int color) { return _i(0x03D7FB09E75D6B7E, blip, color); } // 0x03d7fb09e75d6b7e0xbb3c5a41B323 - // Can be used to give blips any RGB colour with SetBlipColour(blip, 84). - inline Void SetBlipSecondaryColour(Blip blip, int r, int g, int b) { return _i(0x14892474891E09EB, blip, r, g, b); } // 0x14892474891e09eb0xc6384d32B323 - inline int GetBlipColour(Blip blip) { return _i(0xDF729E8D20CF7327, blip); } // 0xdf729e8d20cf73270xdd6a1e54B323 - inline int GetBlipHudColour(Blip blip) { return _i(0x729B5F1EFBC0AAEE, blip); } // 0x729b5f1efbc0aaee0xe88b4bc2B323 - inline BOOL IsBlipShortRange(Blip blip) { return _i(0xDA5F8727EB75B926, blip); } // 0xda5f8727eb75b9260x1226765aB323 - inline BOOL IsBlipOnMinimap(Blip blip) { return _i(0xE41CA53051197A27, blip); } // 0xe41ca53051197a270x258cba3aB323 - inline BOOL DoesBlipHaveGpsRoute(Blip blip) { return _i(0xDD2238F57B977751, blip); } // 0xdd2238f57b9777510x3e47f357B323 - inline Void SetBlipHiddenOnLegend(Blip blip, BOOL toggle) { return _i(0x54318C915D27E4CE, blip, toggle); } // 0x54318c915d27e4ce0x43996428B323 - inline Void SetBlipHighDetail(Blip blip, BOOL toggle) { return _i(0xE2590BC29220CEBB, blip, toggle); } // 0xe2590bc29220cebb0xd5842bffB323 - inline Void SetBlipAsMissionCreatorBlip(Blip blip, BOOL toggle) { return _i(0x24AC0137444F9FD5, blip, toggle); } // 0x24ac0137444f9fd50x802fb686B323 - inline BOOL IsMissionCreatorBlip(Blip blip) { return _i(0x26F49BF3381D933D, blip); } // 0x26f49bf3381d933d0x24acc4e9B323 - inline Blip GetNewSelectedMissionCreatorBlip() { return _i(0x5C90988E7C8E1AF4); } // 0x5c90988e7c8e1af40xffd7476cB323 - inline BOOL IsHoveringOverMissionCreatorBlip() { return _i(0x4167EFE0527D706E); } // 0x4167efe0527d706e0xc5eb849aB323 - inline Void ShowStartMissionInstructionalButton(BOOL toggle) { return _i(0xF1A6C18B35BCADE6, toggle); } // 0xf1a6c18b35bcade60xa2caab4fB323 - inline Void ShowContactInstructionalButton(BOOL toggle) { return _i(0xC772A904CDE1186F, toggle); } // 0xc772a904cde1186fB2545 - inline Void ReloadMapMenu() { return _i(0x2916A928514C9827); } // 0x2916a928514c9827B573 - inline Void SetBlipMarkerLongDistance(Any p0, Any p1) { return _i(0xB552929B85FC27EC, p0, p1); } // 0xb552929b85fc27ecB573 - inline Void SetBlipFlashes(Blip blip, BOOL toggle) { return _i(0xB14552383D39CE3E, blip, toggle); } // 0xb14552383d39ce3e0xc0047f15B323 - inline Void SetBlipFlashesAlternate(Blip blip, BOOL toggle) { return _i(0x2E8D9498C56DD0D1, blip, toggle); } // 0x2e8d9498c56dd0d10x1a81202bB323 - inline BOOL IsBlipFlashing(Blip blip) { return _i(0xA5E41FD83AD6CEF0, blip); } // 0xa5e41fd83ad6cef00x52e111d7B323 - // Sets whether or not the specified blip should only be displayed when nearby, or on the minimap. - inline Void SetBlipAsShortRange(Blip blip, BOOL toggle) { return _i(0xBE8BE4FE60E27B72, blip, toggle); } // 0xbe8be4fe60e27b720x5c67725eB323 - inline Void SetBlipScale(Blip blip, float scale) { return _i(0xD38744167B2FA257, blip, scale); } // 0xd38744167b2fa2570x1e6ec434B323 - // See https://imgur.com/a/lLkEsMN - inline Void SetBlipScale2d(Blip blip, float xScale, float yScale) { return _i(0xCD6524439909C979, blip, xScale, yScale); } // 0xcd6524439909c979B1734 - // See this topic for more details : gtaforums.com/topic/717612-v-scriptnative-documentation-and-research/page-35?p=1069477935 - inline Void SetBlipPriority(Blip blip, int priority) { return _i(0xAE9FC9EF6A9FAC79, blip, priority); } // 0xae9fc9ef6a9fac790xce87da6fB323 - // Display Id behaviours: - // 0 = Doesn't show up, ever, anywhere. - // 1 = Doesn't show up, ever, anywhere. - // 2 = Shows on both main map and minimap. (Selectable on map) - // 3 = Shows on main map only. (Selectable on map) - // 4 = Shows on main map only. (Selectable on map) - // 5 = Shows on minimap only. - // 6 = Shows on both main map and minimap. (Selectable on map) - // 7 = Doesn't show up, ever, anywhere. - // 8 = Shows on both main map and minimap. (Not selectable on map) - // 9 = Shows on minimap only. - // 10 = Shows on both main map and minimap. (Not selectable on map) - // - // Anything higher than 10 seems to be exactly the same as 10. - inline Void SetBlipDisplay(Blip blip, int displayId) { return _i(0x9029B2F3DA924928, blip, displayId); } // 0x9029b2f3da9249280x2b521f91B323 - // Example: https://i.imgur.com/skY6vAJ.png - // - // Index: - // 1 = No distance shown in legend - // 2 = Distance shown in legend - // 7 = "Other Players" category, also shows distance in legend - // 10 = "Property" category - // 11 = "Owned Property" category - // - // Any other value behaves like index = 1, index wraps around after 255 - // Blips with categories 7, 10 or 11 will all show under the specific categories listing in the map legend, regardless of sprite or name. - // Legend entries: - // 7 = Other Players (BLIP_OTHPLYR) - // 10 = Property (BLIP_PROPCAT) - // 11 = Owned Property (BLIP_APARTCAT) - // - // Category needs to be `7` in order for blip names to show on the expanded minimap when using DisplayPlayerNameTagsOnBlips. - inline Void SetBlipCategory(Blip blip, int index) { return _i(0x234CDD44D996FD9A, blip, index); } // 0x234cdd44d996fd9a0xef72f533B323 - // In the C++ SDK, this seems not to work-- the blip isn't removed immediately. I use it for saving cars. - // - // E.g.: - // - // Ped pped = PLAYER::PlayerPedId(); - // Vehicle v = PED::GetVehiclePedIsUsing(pped); - // Blip b = HUD::AddBlipForEntity(v); - // - // works fine. - // But later attempting to delete it with: - // - // Blip b = HUD::GetBlipFromEntity(v); - // if (HUD::DoesBlipExist(b)) HUD::RemoveBlip(&b); - // - // doesn't work. And yes, doesn't work without the DoesBlipExist check either. Also, if you attach multiple blips to the same thing (say, a vehicle), and that thing disappears, the blips randomly attach to other things (in my case, a vehicle). - // - // Thus for me, HUD::RemoveBlip(&b) only works if there's one blip, (in my case) the vehicle is marked as no longer needed, you drive away from it and it eventually despawns, AND there is only one blip attached to it. I never intentionally attach multiple blips but if the user saves the car, this adds a blip. Then if they delete it, it is supposed to remove the blip, but it doesn't. Then they can immediately save it again, causing another blip to re-appear. - // ------------- - // - // Passing the address of the variable instead of the value works for me. - // e.g. - // int blip = HUD::AddBlipForEntity(ped); - // HUD::RemoveBlip(&blip); - // - // - // Remove blip will currently crash your game, just artificially remove the blip by setting the sprite to a id that is 'invisible'. - inline Void RemoveBlip(Blip* blip) { return _i(0x86A652570E5F25DD, blip); } // 0x86a652570e5f25dd0xd8c3c1cdB323 - // false for enemy - // true for friendly - inline Void SetBlipAsFriendly(Blip blip, BOOL toggle) { return _i(0x6F6F290102C02AB4, blip, toggle); } // 0x6f6f290102c02ab40xf290cfd8B323 - inline Void PulseBlip(Blip blip) { return _i(0x742D6FD43115AF73, blip); } // 0x742d6fd43115af730x44253855B323 - inline Void ShowNumberOnBlip(Blip blip, int number) { return _i(0xA3C0B359DCB848B6, blip, number); } // 0xa3c0b359dcb848b60x7bfc66c6B323 - inline Void HideNumberOnBlip(Blip blip) { return _i(0x532CFF637EF80148, blip); } // 0x532cff637ef801480x0b6d610dB323 - inline Void ShowHeightOnBlip(Blip blip, BOOL toggle) { return _i(0x75A16C3DA34F1245, blip, toggle); } // 0x75a16c3da34f12450x1d99f676B323 - // Adds a green checkmark on top of a blip. - inline Void ShowTickOnBlip(Blip blip, BOOL toggle) { return _i(0x74513EA3E505181E, blip, toggle); } // 0x74513ea3e505181e0x3dcf0092B323 - // Adds a orange checkmark on top of a given blip handle: https://imgur.com/a/aw5OTMF - // _SHOW_FRIEND_INDICATOR_ON_BLIP* - _SHOW_HEADING_INDICATOR_ON_BLIP* - inline Void ShowGoldTickOnBlip(Blip blip, BOOL toggle) { return _i(0xCAC2031EBF79B1A8, blip, toggle); } // 0xcac2031ebf79b1a8B2699 - inline Void ShowForSaleIconOnBlip(Blip blip, BOOL toggle) { return _i(0x19BD6E3C0E16A8FA, blip, toggle); } // 0x19bd6e3c0e16a8faB2802 - // Adds the GTA: Online player heading indicator to a blip. - inline Void ShowHeadingIndicatorOnBlip(Blip blip, BOOL toggle) { return _i(0x5FBCA48327B914DF, blip, toggle); } // 0x5fbca48327b914df0xd1c3d71bB323 - // Highlights a blip by a cyan color circle. - // - // Color can be changed with SetBlipSecondaryColour - inline Void ShowOutlineIndicatorOnBlip(Blip blip, BOOL toggle) { return _i(0xB81656BC81FE24D1, blip, toggle); } // 0xb81656bc81fe24d10x8de82c15B323 - // Highlights a blip by a half cyan circle on the right side of the blip. https://i.imgur.com/FrV9M4e.png - // .Indicating that that player is a friend (in GTA:O). This color can not be changed. - // To toggle the left side (crew member indicator) of the half circle around the blip, use: `ShowCrewIndicatorOnBlip` - inline Void ShowFriendIndicatorOnBlip(Blip blip, BOOL toggle) { return _i(0x23C3EB807312F01A, blip, toggle); } // 0x23c3eb807312f01a0x4c8f02b4B323 - // Enables or disables the blue half circle https://i.imgur.com/iZes9Ec.png around the specified blip on the left side of the blip. This is used to indicate that the player is in your crew in GTA:O. Color is changeable by using `SetBlipSecondaryColour`. - inline Void ShowCrewIndicatorOnBlip(Blip blip, BOOL toggle) { return _i(0xDCFB5D4DB8BF367E, blip, toggle); } // 0xdcfb5d4db8bf367e0xabbe1e45B323 - // Must be toggled before being queued for animation - inline Void SetBlipExtendedHeightThreshold(Blip blip, BOOL toggle) { return _i(0xC4278F70131BAA6D, blip, toggle); } // 0xc4278f70131baa6d0x6aa6a1ccB323 - inline Void SetBlipShortHeightThreshold(Any p0, Any p1) { return _i(0x4B5B620C9B59ED34, p0, p1); } // 0x4b5b620c9b59ed34B678 - inline Void SetBlipUseHeightIndicatorOnEdge(Blip blip, Any p1) { return _i(0x2C9F302398E13141, blip, p1); } // 0x2c9f302398e131410xca95c487B1103 - // Makes a blip go small when off the minimap. - inline Void SetBlipAsMinimalOnEdge(Blip blip, BOOL toggle) { return _i(0x2B6D467DAB714E8D, blip, toggle); } // 0x2b6d467dab714e8d0xc575f0bcB323 - // Enabling this on a radius blip will make it outline only. See https://cdn.discordapp.com/attachments/553235301632573459/575132227935928330/unknown.png - inline Void SetRadiusBlipEdge(Blip blip, BOOL toggle) { return _i(0x25615540D894B814, blip, toggle); } // 0x25615540d894b8140x40e25db8B323 - inline BOOL DoesBlipExist(Blip blip) { return _i(0xA6DB27D19ECBB7DA, blip); } // 0xa6db27d19ecbb7da0xae92dd96B323 - // This native removes the current waypoint from the map. - // - // Example: - // C#: - // Function.Call(Hash.SetWaypointOff); - // - // C++: - // HUD::SetWaypointOff(); - inline Void SetWaypointOff() { return _i(0xA7E4E2D361C2627F); } // 0xa7e4e2d361c2627f0xb3496e1bB323 - inline Void DeleteWaypointsFromThisPlayer() { return _i(0xD8E694757BCEA8E9); } // 0xd8e694757bcea8e90x62babf2cB323 - inline Void RefreshWaypoint() { return _i(0x81FA173F170560D1); } // 0x81fa173f170560d10xb395d753B323 - inline BOOL IsWaypointActive() { return _i(0x1DD1F58F493F1DA5); } // 0x1dd1f58f493f1da50x5e4df47bB323 - inline Void SetNewWaypoint(float x, float y) { return _i(0xFE43368D2AA4F2FC, x, y); } // 0xfe43368d2aa4f2fc0x8444e1f0B323 - inline Void SetBlipBright(Blip blip, BOOL toggle) { return _i(0xB203913733F27884, blip, toggle); } // 0xb203913733f278840x72bee6dfB323 - // As of b2189, the third parameter sets the color of the cone (before b2189 it was ignored). Note that it uses HUD colors, not blip colors. - inline Void SetBlipShowCone(Blip blip, BOOL toggle, int hudColorIndex) { return _i(0x13127EC3665E8EE1, blip, toggle, hudColorIndex); } // 0x13127ec3665e8ee10xff545ad8B323 - // Interesting fact: A hash collision for this is RESET_JETPACK_MODEL_SETTINGS - inline Void RemoveCopBlipFromPed(Ped ped) { return _i(0xC594B315EDF2D4AF, ped); } // 0xc594b315edf2d4af0x41b0d022B323 - inline Void SetupFakeConeData(Blip blip, float p1, float p2, float p3, float p4, float p5, float p6, Any p7, int p8) { return _i(0xF83D0FEBE75E62C9, blip, p1, p2, p3, p4, p5, p6, p7, p8); } // 0xf83d0febe75e62c9B1290 - inline Void RemoveFakeConeData(Blip blip) { return _i(0x35A3CD97B2C0A6D2, blip); } // 0x35a3cd97b2c0a6d2B1290 - inline Void ClearFakeConeArray() { return _i(0x8410C5E0CD847B9D); } // 0x8410c5e0cd847b9dB1290 - // This native is used to colorize certain map components like the army base at the top of the map. - // p2 appears to be always -1. If p2 is -1 then native wouldn't change the color. See https://gfycat.com/SkinnyPinkChupacabra - inline BOOL SetMinimapComponent(int componentId, BOOL toggle, int overrideColor) { return _i(0x75A9A10948D1DEA6, componentId, toggle, overrideColor); } // 0x75a9a10948d1dea60x419dcdc4B323 - inline Void SetMinimapSonarSweep(BOOL toggle) { return _i(0x6B50FC8749632EC1, toggle); } // 0x6b50fc8749632ec1B2189 - inline Void ShowAccountPicker() { return _i(0x60E892BA4F5BDCA4); } // 0x60e892ba4f5bdca4B323 - inline Blip GetMainPlayerBlipId() { return _i(0xDCD4EC3F419D02FA); } // 0xdcd4ec3f419d02fa0xab93f020B323 - inline Void SetPmWarningscreenActive(BOOL p0) { return _i(0x41350B4FC28E3941, p0); } // 0x41350b4fc28e3941B323 - inline Void HideLoadingOnFadeThisFrame() { return _i(0x4B0311D3CDC4648F); } // 0x4b0311d3cdc4648f0x35087963B323 - // List of interior hashes: https://pastebin.com/1FUyXNqY - // Not for every interior zoom > 0 available. - inline Void SetRadarAsInteriorThisFrame(Hash interior, float x, float y, int z, int zoom) { return _i(0x59E727A1C9D3E31A, interior, x, y, z, zoom); } // 0x59e727a1c9d3e31a0x6f2626e1B323 - inline Void SetInsideVerySmallInterior(BOOL toggle) { return _i(0x504DFE62A1692296, toggle); } // 0x504dfe62a1692296B1493 - inline Void SetInsideVeryLargeInterior(BOOL toggle) { return _i(0x7EC8ABA5E74B3D7A, toggle); } // 0x7ec8aba5e74b3d7aB2372 - inline Void SetRadarAsExteriorThisFrame() { return _i(0xE81B7D2A3DAB2D81); } // 0xe81b7d2a3dab2d810x39abb10eB323 - // Sets the position of the arrow icon representing the player on both the minimap and world map. - // - // Too bad this wouldn't work over the network (obviously not). Could spoof where we would be. - inline Void SetFakePausemapPlayerPositionThisFrame(float x, float y) { return _i(0x77E2DD177910E1CF, x, y); } // 0x77e2dd177910e1cf0x54e75c7dB323 - // p2 maybe z float? - inline Void SetFakeGpsPlayerPositionThisFrame(float x, float y, Any p2) { return _i(0xA17784FCA9548D15, x, y, p2); } // 0xa17784fca9548d15B877 - inline BOOL IsPausemapInInteriorMode() { return _i(0x9049FE339D5F6F6F); } // 0x9049fe339d5f6f6f0x199ded14B323 - inline Void HideMinimapExteriorMapThisFrame() { return _i(0x5FBAE526203990C9); } // 0x5fbae526203990c90x1a4318f7B323 - inline Void HideMinimapInteriorMapThisFrame() { return _i(0x20FE7FDFEEAD38C0); } // 0x20fe7fdfeead38c00xce36e3feB323 - // Toggles the Cayo Perico map. - inline Void SetUseIslandMap(BOOL toggle) { return _i(0x5E1460624D194A38, toggle); } // 0x5e1460624d194a38B2189 - inline Void SetPauseExteriorRenderingWhileInInterior() { return _i(0x35CCE12EAECB4A51); } // 0x35cce12eaecb4a51B2944 - // When calling this, the current frame will have the players "arrow icon" be focused on the dead center of the radar. - inline Void DontTiltMinimapThisFrame() { return _i(0x6D14BFDC33B34F55); } // 0x6d14bfdc33b34f550x334efd46B323 - inline Void DontZoomMinimapWhenRunningThisFrame() { return _i(0x89DA85D949CE57A0); } // 0x89da85d949ce57a0B2802 - inline Void DontZoomMinimapWhenSnipingThisFrame() { return _i(0x55F5A5F07134DE60); } // 0x55f5a5f07134de600x7a569f78B1180 - inline Void SetWidescreenFormat(Any p0) { return _i(0xC3B07BA00A83B0F1, p0); } // 0xc3b07ba00a83b0f10xf016e08fB323 - inline Void DisplayAreaName(BOOL toggle) { return _i(0x276B6CE369C33678, toggle); } // 0x276b6ce369c336780x489fdd41B323 - // "DisplayCash(false);" makes the cash amount render on the screen when appropriate - // "DisplayCash(true);" disables cash amount rendering - inline Void DisplayCash(BOOL toggle) { return _i(0x96DEC8D5430208B7, toggle); } // 0x96dec8d5430208b70x0049df83B323 - // Related to displaying cash on the HUD - // Always called before HUD::ChangeFakeMpCash in decompiled scripts - inline Void UseFakeMpCash(BOOL toggle) { return _i(0x170F541E1CADD1DE, toggle); } // 0x170f541e1cadd1de0x6253b9d7B323 - // Displays cash change notifications on HUD. - inline Void ChangeFakeMpCash(int cash, int bank) { return _i(0x0772DF77852C2E30, cash, bank); } // 0x0772df77852c2e300xe319f90bB323 - inline Void DisplayAmmoThisFrame(BOOL display) { return _i(0xA5E78BA2B1331C55, display); } // 0xa5e78ba2b1331c550x60693ceeB323 - // Displays the crosshair for this frame. - inline Void DisplaySniperScopeThisFrame() { return _i(0x73115226F4814E62); } // 0x73115226f4814e620xbc6c73cbB323 - // Hides HUD and radar this frame and prohibits switching to other weapons (or accessing the weapon wheel) - inline Void HideHudAndRadarThisFrame() { return _i(0x719FF505F097FD20); } // 0x719ff505f097fd200xb75d4ad2B323 - // Controls whether to display 'Cash'/'Bank' next to the money balance HUD in Multiplayer (https://i.imgur.com/MiYUtNl.png) - inline Void AllowDisplayOfMultiplayerCashText(BOOL allow) { return _i(0xE67C6DFD386EA5E7, allow); } // 0xe67c6dfd386ea5e70x5476b9fdB323 - inline Void SetMultiplayerWalletCash() { return _i(0xC2D15BEF167E27BC); } // 0xc2d15bef167e27bc0xf4f3c796B323 - inline Void RemoveMultiplayerWalletCash() { return _i(0x95CF81BD06EE1887); } // 0x95cf81bd06ee18870x7bffe82fB323 - inline Void SetMultiplayerBankCash() { return _i(0xDD21B55DF695CD0A); } // 0xdd21b55df695cd0a0x2c842d03B323 - inline Void RemoveMultiplayerBankCash() { return _i(0xC7C6789AA1CFEDD0); } // 0xc7c6789aa1cfedd00x728b4ef4B323 - // This native does absolutely nothing, just a nullsub - inline Void SetMultiplayerHudCash(int p0, BOOL p1) { return _i(0xFD1D220394BCB824, p0, p1); } // 0xfd1d220394bcb8240xa8db435eB323 - // Removes multiplayer cash hud each frame - inline Void RemoveMultiplayerHudCash() { return _i(0x968F270E39141ECA); } // 0x968f270e39141eca0x07bf4a7dB323 - inline Void HideHelpTextThisFrame() { return _i(0xD46923FC481CA285); } // 0xd46923fc481ca2850xf3807bedB323 - inline BOOL IsImeInProgress() { return _i(0x801879A9B4F4B2FB); } // 0x801879a9b4f4b2fbB372 - // The messages are localized strings. - // Examples: - // "No_bus_money" - // "Enter_bus" - // "Tour_help" - // "LETTERS_HELP2" - // "Dummy" - // - // **The bool appears to always be false (if it even is a bool, as it's represented by a zero)** - // -------- - // p1 doesn't seem to make a difference, regardless of the state it's in. - // - // - // picture of where on the screen this is displayed? - inline Void DisplayHelpTextThisFrame(String message, BOOL p1) { return _i(0x960C9FF8F616E41C, message, p1); } // 0x960c9ff8f616e41c0x18e3360aB323 - // Forces the weapon wheel to show/hide. - inline Void HudForceWeaponWheel(BOOL show) { return _i(0xEB354E5376BC81A7, show); } // 0xeb354e5376bc81a70x1effb02aB323 - // Displays "blazer_wheels_up" and "blazer_wheels_down" "weapon" icons when switching between jetski and quadbike modes. Works only on vehicles using "VEHICLE_TYPE_AMPHIBIOUS_QUADBIKE" vehicle type. Needs to be called every time prior to switching modes, otherwise the icon will only appear when switching modes once. - inline Void HudForceSpecialVehicleWeaponWheel() { return _i(0x488043841BBE156F); } // 0x488043841bbe156fB1011 - // Calling this each frame, stops the player from receiving a weapon via the weapon wheel. - inline Void HudSuppressWeaponWheelResultsThisFrame() { return _i(0x0AFC4AF510774B47); } // 0x0afc4af510774b470xb26fed2bB323 - // Returns the weapon hash to the selected/highlighted weapon in the wheel - inline Hash HudGetWeaponWheelCurrentlyHighlighted() { return _i(0xA48931185F0536FE); } // 0xa48931185f0536fe0x22e9f555B323 - // Set the active slotIndex in the wheel weapon to the slot associated with the provided Weapon hash - inline Void HudSetWeaponWheelTopSlot(Hash weaponHash) { return _i(0x72C1056D678BB7D8, weaponHash); } // 0x72c1056d678bb7d80x83b608a0B323 - // Returns the weapon hash active in a specific weapon wheel slotList - inline Hash HudGetWeaponWheelTopSlot(int weaponTypeIndex) { return _i(0xA13E93403F26C812, weaponTypeIndex); } // 0xa13e93403f26c812B323 - // Sets a global that disables many weapon input tasks (shooting, aiming, etc.). Does not work with vehicle weapons, only used in selector.ysc - inline Void HudShowingCharacterSwitchSelection(BOOL toggle) { return _i(0x14C9FDCC41F81F63, toggle); } // 0x14c9fdcc41f81f630xe70d1f43B323 - // Only the script that originally called SetGpsFlags can set them again. Another script cannot set the flags, until the first script that called it has called ClearGpsFlags. - // - // Doesn't seem like the flags are actually read by the game at all. - inline Void SetGpsFlags(int p0, float p1) { return _i(0x5B440763A4C8D15B, p0, p1); } // 0x5b440763a4c8d15b0x60539babB323 - // Clears the GPS flags. Only the script that originally called SetGpsFlags can clear them. - // - // Doesn't seem like the flags are actually read by the game at all. - inline Void ClearGpsFlags() { return _i(0x21986729D6A3A830); } // 0x21986729d6a3a8300x056afce6B323 - inline Void SetRaceTrackRender(BOOL toggle) { return _i(0x1EAC5F91BCBC5073, toggle); } // 0x1eac5f91bcbc50730xfb9babf5B323 - // Does the same as SetRaceTrackRender(false); - inline Void ClearGpsRaceTrack() { return _i(0x7AA5B4CE533C858B); } // 0x7aa5b4ce533c858b0x40c59829B323 - // Starts a new GPS custom-route, allowing you to plot lines on the map. - // Lines are drawn directly between points. - // The GPS custom route works like the GPS multi route, except it does not follow roads. - // Example result: https://i.imgur.com/BDm5pzt.png - // hudColor: The HUD color of the GPS path. - // displayOnFoot: Draws the path regardless if the player is in a vehicle or not. - // followPlayer: Draw the path partially between the previous and next point based on the players position between them. When false, the GPS appears to not disappear after the last leg is completed. - inline Void StartGpsCustomRoute(int hudColor, BOOL displayOnFoot, BOOL followPlayer) { return _i(0xDB34E8D56FC13B08, hudColor, displayOnFoot, followPlayer); } // 0xdb34e8d56fc13b080x7f93799bB323 - inline Void AddPointToGpsCustomRoute(float x, float y, float z) { return _i(0x311438A071DD9B1A, x, y, z); } // 0x311438a071dd9b1a0xeebdfe55B323 - // radarThickness: The width of the GPS route on the radar - // mapThickness: The width of the GPS route on the map - inline Void SetGpsCustomRouteRender(BOOL toggle, int radarThickness, int mapThickness) { return _i(0x900086F371220B6F, toggle, radarThickness, mapThickness); } // 0x900086f371220b6f0xda0af00eB323 - inline Void ClearGpsCustomRoute() { return _i(0xE6DE0561D9232A64); } // 0xe6de0561d9232a640xcf2e3e24B323 - // Starts a new GPS multi-route, allowing you to create custom GPS paths. - // GPS functions like the waypoint, except it can contain multiple points it's forced to go through. - // Once the player has passed a point, the GPS will no longer force its path through it. - // - // Works independently from the player-placed waypoint and blip routes. - // Example result: https://i.imgur.com/ZZHQatX.png - // hudColor: The HUD color of the GPS path. - // routeFromPlayer: Makes the GPS draw a path from the player to the next point, rather than the original path from the previous point. - // displayOnFoot: Draws the GPS path regardless if the player is in a vehicle or not. - inline Void StartGpsMultiRoute(int hudColor, BOOL routeFromPlayer, BOOL displayOnFoot) { return _i(0x3D3D15AF7BCAAF83, hudColor, routeFromPlayer, displayOnFoot); } // 0x3d3d15af7bcaaf830xc3dcbedbB323 - inline Void AddPointToGpsMultiRoute(float x, float y, float z) { return _i(0xA905192A6781C41B, x, y, z); } // 0xa905192a6781c41b0xfe485135B323 - inline Void SetGpsMultiRouteRender(BOOL toggle) { return _i(0x3DDA37128DD1ACA8, toggle); } // 0x3dda37128dd1aca80xe87cbe4cB323 - // Does the same as SetGpsMultiRouteRender(false); - inline Void ClearGpsMultiRoute() { return _i(0x67EEDEA1B9BAFD94); } // 0x67eedea1b9bafd940x0d9969e4B323 - inline Void ClearGpsPlayerWaypoint() { return _i(0xFF4FB7C8CDFA3DA7); } // 0xff4fb7c8cdfa3da70x0b9c7fc2B323 - inline Void SetGpsFlashes(BOOL toggle) { return _i(0x320D0E0D936A0E9B, toggle); } // 0x320d0e0d936a0e9b0xe991f733B323 - inline Void SetPlayerIconColour(int color) { return _i(0x7B21E0BB01E8224A, color); } // 0x7b21e0bb01e8224aB323 - // adds a short flash to the Radar/Minimap - // Usage: UI.FlashMinimapDisplay - inline Void FlashMinimapDisplay() { return _i(0xF2DD778C22B15BDA); } // 0xf2dd778c22b15bda0xb8359952B323 - inline Void FlashMinimapDisplayWithColor(int hudColorIndex) { return _i(0x6B1DE27EE78E6A19, hudColorIndex); } // 0x6b1de27ee78e6a190x79a6caf6B323 - inline Void ToggleStealthRadar(BOOL toggle) { return _i(0x6AFDFB93754950C7, toggle); } // 0x6afdfb93754950c70xc68d47c4B323 - inline Void SetMinimapInSpectatorMode(BOOL toggle, Ped ped) { return _i(0x1A5CD7752DD28CD3, toggle, ped); } // 0x1a5cd7752dd28cd30xd5bfcadbB323 - inline Void SetMissionName(BOOL p0, String name) { return _i(0x5F28ECF5FC84772F, p0, name); } // 0x5f28ecf5fc84772f0x68dcae10B323 - inline Void SetMissionNameForUgcMission(BOOL p0, String name) { return _i(0xE45087D85F468BC2, p0, name); } // 0xe45087d85f468bc20x8d9a1734B323 - inline Void SetDescriptionForUgcMissionEightStrings(BOOL p0, String p1, String p2, String p3, String p4, String p5, String p6, String p7, String p8) { return _i(0x817B86108EB94E51, p0, p1, p2, p3, p4, p5, p6, p7, p8); } // 0x817b86108eb94e510xd2161e77B323 - inline Void SetMinimapBlockWaypoint(BOOL toggle) { return _i(0x58FADDED207897DC, toggle); } // 0x58fadded207897dc0xa41c3b62B323 - // Toggles the North Yankton map - inline Void SetMinimapInPrologue(BOOL toggle) { return _i(0x9133955F1A2DA957, toggle); } // 0x9133955f1a2da9570x02f5f1d1B323 - // If true, the entire map will be revealed. - // - // FOW = Fog of War - inline Void SetMinimapHideFow(BOOL toggle) { return _i(0xF8DEE0A5600CBB93, toggle); } // 0xf8dee0a5600cbb930xd8d77733B323 - inline float GetMinimapFowDiscoveryRatio() { return _i(0xE0130B41D3CF4574); } // 0xe0130b41d3cf45740xa4098accB323 - inline BOOL GetMinimapFowCoordinateIsRevealed(float x, float y, float z) { return _i(0x6E31B91145873922, x, y, z); } // 0x6e31b911458739220x65b705f6B323 - inline Void SetMinimapFowDoNotUpdate(BOOL p0) { return _i(0x62E849B7EB28E770, p0); } // 0x62e849b7eb28e770B323 - // Up to eight coordinates may be revealed per frame - inline Void SetMinimapFowRevealCoordinate(float x, float y, float z) { return _i(0x0923DBF87DFF735E, x, y, z); } // 0x0923dbf87dff735e0xe010f081B323 - // Not much is known so far on what it does _exactly_. - // All I know for sure is that it draws the specified hole ID on the pause menu map as well as on the mini-map/radar. This native also seems to change some other things related to the pause menu map's behaviour, for example: you can no longer set waypoints, the pause menu map starts up in a 'zoomed in' state. This native does not need to be executed every tick. - // You need to center the minimap manually as well as change/lock it's zoom and angle in order for it to appear correctly on the minimap. - // You'll also need to use the `GOLF` scaleform in order to get the correct minmap border to show up. - // Use `0x35edd5b2e3ff01c0` to reset the map when you no longer want to display any golf holes (you still need to unlock zoom, position and angle of the radar manually after calling this). - inline Void SetMinimapGolfCourse(int hole) { return _i(0x71BDB63DBAF8DA59, hole); } // 0x71bdb63dbaf8da590x5133a750B323 - inline Void SetMinimapGolfCourseOff() { return _i(0x35EDD5B2E3FF01C0); } // 0x35edd5b2e3ff01c00x20fd3e87B323 - // Locks the minimap to the specified angle in integer degrees. - // - // angle: The angle in whole degrees. If less than 0 or greater than 360, unlocks the angle. - inline Void LockMinimapAngle(int angle) { return _i(0x299FAEBB108AE05B, angle); } // 0x299faebb108ae05b0xdec733e4B323 - inline Void UnlockMinimapAngle() { return _i(0x8183455E16C42E3A); } // 0x8183455e16c42e3a0x742043f9B323 - // Locks the minimap to the specified world position. - inline Void LockMinimapPosition(float x, float y) { return _i(0x1279E861A329E73F, x, y); } // 0x1279e861a329e73f0xb9632a91B323 - inline Void UnlockMinimapPosition() { return _i(0x3E93E06DB8EF1F30); } // 0x3e93e06db8ef1f300x5e8e6f54B323 - // Argument must be 0.0f or above 38.0f, or it will be ignored. - inline Void SetFakeMinimapMaxAltimeterHeight(float altitude, BOOL p1, Any p2) { return _i(0xD201F3FF917A506D, altitude, p1, p2); } // 0xd201f3ff917a506d0x0308edf6B323 - inline Void SetHealthHudDisplayValues(int health, int capacity, BOOL wasAdded) { return _i(0x3F5CC444DCAAA8F2, health, capacity, wasAdded); } // 0x3f5cc444dcaaa8f20x7fb6fb2aB323 - inline Void SetMaxHealthHudDisplay(int maximumValue) { return _i(0x975D66A0BC17064C, maximumValue); } // 0x975d66a0bc17064c0xf07d8cefB323 - inline Void SetMaxArmourHudDisplay(int maximumValue) { return _i(0x06A320535F5F0248, maximumValue); } // 0x06a320535f5f02480x827f14deB323 - // Toggles the big minimap state like in GTA:Online. - inline Void SetBigmapActive(BOOL toggleBigMap, BOOL showFullMap) { return _i(0x231C8F89D0539D8F, toggleBigMap, showFullMap); } // 0x231c8f89d0539d8f0x08eb83d2B323 - // Full list of components below - // - // HUD = 0; - // HUD_WANTED_STARS = 1; - // HUD_WEAPON_ICON = 2; - // HUD_CASH = 3; - // HUD_MP_CASH = 4; - // HUD_MP_MESSAGE = 5; - // HUD_VEHICLE_NAME = 6; - // HUD_AREA_NAME = 7; - // HUD_VEHICLE_CLASS = 8; - // HUD_STREET_NAME = 9; - // HUD_HELP_TEXT = 10; - // HUD_FLOATING_HELP_TEXT_1 = 11; - // HUD_FLOATING_HELP_TEXT_2 = 12; - // HUD_CASH_CHANGE = 13; - // HUD_RETICLE = 14; - // HUD_SUBTITLE_TEXT = 15; - // HUD_RADIO_STATIONS = 16; - // HUD_SAVING_GAME = 17; - // HUD_GAME_STREAM = 18; - // HUD_WEAPON_WHEEL = 19; - // HUD_WEAPON_WHEEL_STATS = 20; - // MAX_HUD_COMPONENTS = 21; - // MAX_HUD_WEAPONS = 22; - // MAX_SCRIPTED_HUD_COMPONENTS = 141; - inline BOOL IsHudComponentActive(int id) { return _i(0xBC4C9EA5391ECC0D, id); } // 0xbc4c9ea5391ecc0d0x6214631fB323 - inline BOOL IsScriptedHudComponentActive(int id) { return _i(0xDD100EB17A94FF65, id); } // 0xdd100eb17a94ff650x2b86f382B323 - inline Void HideScriptedHudComponentThisFrame(int id) { return _i(0xE374C498D8BADC14, id); } // 0xe374c498d8badc140x31aba127B323 - inline Void ShowScriptedHudComponentThisFrame(int id) { return _i(0x4F38DCA127DAAEA2, id); } // 0x4f38dca127daaea2B1734 - inline BOOL IsScriptedHudComponentHiddenThisFrame(int id) { return _i(0x09C0403ED9A751C2, id); } // 0x09c0403ed9a751c20xe8c8e535B323 - // This function hides various HUD (Heads-up Display) components. - // Listed below are the integers and the corresponding HUD component. - // - 1 : WANTED_STARS - // - 2 : WEAPON_ICON - // - 3 : CASH - // - 4 : MP_CASH - // - 5 : MP_MESSAGE - // - 6 : VEHICLE_NAME - // - 7 : AREA_NAME - // - 8 : VEHICLE_CLASS - // - 9 : STREET_NAME - // - 10 : HELP_TEXT - // - 11 : FLOATING_HELP_TEXT_1 - // - 12 : FLOATING_HELP_TEXT_2 - // - 13 : CASH_CHANGE - // - 14 : RETICLE - // - 15 : SUBTITLE_TEXT - // - 16 : RADIO_STATIONS - // - 17 : SAVING_GAME - // - 18 : GAME_STREAM - // - 19 : WEAPON_WHEEL - // - 20 : WEAPON_WHEEL_STATS - // - 21 : HUD_COMPONENTS - // - 22 : HUD_WEAPONS - // - // These integers also work for the `ShowHudComponentThisFrame` native, but instead shows the HUD Component. - inline Void HideHudComponentThisFrame(int id) { return _i(0x6806C51AD12B83B8, id); } // 0x6806c51ad12b83b80xdb2d0762B323 - // This function hides various HUD (Heads-up Display) components. - // Listed below are the integers and the corresponding HUD component. - // - 1 : WANTED_STARS - // - 2 : WEAPON_ICON - // - 3 : CASH - // - 4 : MP_CASH - // - 5 : MP_MESSAGE - // - 6 : VEHICLE_NAME - // - 7 : AREA_NAME - // - 8 : VEHICLE_CLASS - // - 9 : STREET_NAME - // - 10 : HELP_TEXT - // - 11 : FLOATING_HELP_TEXT_1 - // - 12 : FLOATING_HELP_TEXT_2 - // - 13 : CASH_CHANGE - // - 14 : RETICLE - // - 15 : SUBTITLE_TEXT - // - 16 : RADIO_STATIONS - // - 17 : SAVING_GAME - // - 18 : GAME_STREAM - // - 19 : WEAPON_WHEEL - // - 20 : WEAPON_WHEEL_STATS - // - 21 : HUD_COMPONENTS - // - 22 : HUD_WEAPONS - // - // These integers also work for the `HideHudComponentThisFrame` native, but instead hides the HUD Component. - inline Void ShowHudComponentThisFrame(int id) { return _i(0x0B4DF1FA60C0E664, id); } // 0x0b4df1fa60c0e6640x95e1546eB323 - // Hides area and vehicle name HUD components for one frame. - inline Void HideStreetAndCarNamesThisFrame() { return _i(0xA4DEDE28B1814289); } // 0xa4dede28b18142890x52746fe1B323 - inline Void ResetReticuleValues() { return _i(0x12782CE0A636E9F0); } // 0x12782ce0a636e9f00xbe27aa3fB323 - inline Void ResetHudComponentValues(int id) { return _i(0x450930E616475D0D, id); } // 0x450930e616475d0d0xd15b46daB323 - inline Void SetHudComponentPosition(int id, float x, float y) { return _i(0xAABB1F56E2A17CED, id, x, y); } // 0xaabb1f56e2a17ced0x2f3a0d15B323 - inline Vector3 GetHudComponentPosition(int id) { return _i(0x223CA69A8C4417FD, id); } // 0x223ca69a8c4417fd0x080dced6B323 - // This native does absolutely nothing, just a nullsub - inline Void ClearReminderMessage() { return _i(0xB57D8DD645CFA2CF); } // 0xb57d8dd645cfa2cf0x5bbcc934B323 - // World to relative screen coords, this world to screen will keep the text on screen. Was named _GET_SCREEN_COORD_FROM_WORLD_COORD, but this conflicts with 0x34E82F05DF2974F5. As that hash actually matches GetScreenCoordFromWorldCoord that one supercedes and this one was renamed to _GET_2D_COORD_FROM_3D_COORD - inline int GetHudScreenPositionFromWorldPosition(float worldX, float worldY, float worldZ, float* screenX, float* screenY) { return _i(0xF9904D11F1ACBEC3, worldX, worldY, worldZ, screenX, screenY); } // 0xf9904d11f1acbec30xfe9a39f8B323 - // Shows a menu for reporting UGC content. - inline Void OpenReportugcMenu() { return _i(0x523A590C1A3CC0D3); } // 0x523a590c1a3cc0d30x10de5150B323 - inline Void ForceCloseReportugcMenu() { return _i(0xEE4C0E6DBC6F2C6F); } // 0xee4c0e6dbc6f2c6f0x67649ee0B323 - inline BOOL IsReportugcMenuOpen() { return _i(0x9135584D09A3437E); } // 0x9135584d09a3437e0x9d2c94faB323 - inline BOOL IsFloatingHelpTextOnScreen(int hudIndex) { return _i(0x2432784ACA090DA4, hudIndex); } // 0x2432784aca090da40x45472fd5B323 - inline Void SetFloatingHelpTextScreenPosition(int hudIndex, float x, float y) { return _i(0x7679CC1BCEBE3D4C, hudIndex, x, y); } // 0x7679cc1bcebe3d4c0x198f32d7B323 - inline Void SetFloatingHelpTextWorldPosition(int hudIndex, float x, float y, float z) { return _i(0x784BA7E0ECEB4178, hudIndex, x, y, z); } // 0x784ba7e0eceb41780x93045157B323 - inline Void SetFloatingHelpTextToEntity(int hudIndex, Entity entity, float offsetX, float offsetY) { return _i(0xB094BC1DB4018240, hudIndex, entity, offsetX, offsetY); } // 0xb094bc1db40182400x18b012b7B323 - inline Void SetFloatingHelpTextStyle(int hudIndex, int p1, int p2, int p3, int p4, int p5) { return _i(0x788E7FD431BD67F1, hudIndex, p1, p2, p3, p4, p5); } // 0x788e7fd431bd67f10x97852a82B323 - inline Void ClearFloatingHelp(int hudIndex, BOOL p1) { return _i(0x50085246ABD3FEFA, hudIndex, p1); } // 0x50085246abd3fefa0xb181f88fB323 - // clanFlag: takes a number 0-5 - inline Void CreateMpGamerTagWithCrewColor(Player player, String username, BOOL pointedClanTag, BOOL isRockstarClan, String clanTag, int clanFlag, int r, int g, int b) { return _i(0x6DD05E9D83EFA4C9, player, username, pointedClanTag, isRockstarClan, clanTag, clanFlag, r, g, b); } // 0x6dd05e9d83efa4c90xc969f2d0B323 - inline BOOL IsMpGamerTagMovieActive() { return _i(0x6E0EB3EB47C8D7AA); } // 0x6e0eb3eb47c8d7aa0xefd2564aB323 - // clanFlag: takes a number 0-5 - inline int CreateFakeMpGamerTag(Ped ped, String username, BOOL pointedClanTag, BOOL isRockstarClan, String clanTag, int clanFlag) { return _i(0xBFEFE3321A3F5015, ped, username, pointedClanTag, isRockstarClan, clanTag, clanFlag); } // 0xbfefe3321a3f50150xf5cd2aa4B323 - inline Void RemoveMpGamerTag(int gamerTagId) { return _i(0x31698AA80E0223F8, gamerTagId); } // 0x31698aa80e0223f80x3d081fe4B323 - inline BOOL IsMpGamerTagActive(int gamerTagId) { return _i(0x4E929E7A5796FD26, gamerTagId); } // 0x4e929e7a5796fd260x60118951B323 - inline BOOL IsMpGamerTagFree(int gamerTagId) { return _i(0x595B5178E412E199, gamerTagId); } // 0x595b5178e412e1990x63959059B323 - // enum eMpGamerTagComponent - // { - // MP_TAG_GAMER_NAME, - // MP_TAG_CREW_TAG, - // MP_TAG_HEALTH_ARMOUR, - // MP_TAG_BIG_TEXT, - // MP_TAG_AUDIO_ICON, - // MP_TAG_USING_MENU, - // MP_TAG_PASSIVE_MODE, - // MP_TAG_WANTED_STARS, - // MP_TAG_DRIVER, - // MP_TAG_CO_DRIVER, - // MP_TAG_TAGGED, - // MP_TAG_GAMER_NAME_NEARBY, - // MP_TAG_ARROW, - // MP_TAG_PACKAGES, - // MP_TAG_INV_IF_PED_FOLLOWING, - // MP_TAG_RANK_TEXT, - // MP_TAG_TYPING, - // MP_TAG_BAG_LARGE, - // MP_TAG_ARROW, - // MP_TAG_GANG_CEO, - // MP_TAG_GANG_BIKER, - // MP_TAG_BIKER_ARROW, - // MP_TAG_MC_ROLE_PRESIDENT, - // MP_TAG_MC_ROLE_VICE_PRESIDENT, - // MP_TAG_MC_ROLE_ROAD_CAPTAIN, - // MP_TAG_MC_ROLE_SARGEANT, - // MP_TAG_MC_ROLE_ENFORCER, - // MP_TAG_MC_ROLE_PROSPECT, - // MP_TAG_TRANSMITTER, - // MP_TAG_BOMB - // }; - inline Void SetMpGamerTagVisibility(int gamerTagId, int component, BOOL toggle, Any p3) { return _i(0x63BB75ABEDC1F6A0, gamerTagId, component, toggle, p3); } // 0x63bb75abedc1f6a00xd41df479B323 - inline Void SetAllMpGamerTagsVisibility(int gamerTagId, BOOL toggle) { return _i(0xEE76FF7E6A0166B0, gamerTagId, toggle); } // 0xee76ff7e6a0166b00x767ded29B323 - // Displays a bunch of icons above the players name, and level, and their name twice - inline Void SetMpGamerTagsShouldUseVehicleHealth(int gamerTagId, BOOL toggle) { return _i(0xA67F9C46D612B6F1, gamerTagId, toggle); } // 0xa67f9c46d612b6f10xb01a5434B323 - inline Void SetMpGamerTagsShouldUsePointsHealth(int gamerTagId, BOOL toggle) { return _i(0xD29EC58C2F6B5014, gamerTagId, toggle); } // 0xd29ec58c2f6b5014B1365 - inline Void SetMpGamerTagsPointHealth(int gamerTagId, int value, int maximumValue) { return _i(0x1563FE35E9928E67, gamerTagId, value, maximumValue); } // 0x1563fe35e9928e67B1365 - // Sets a gamer tag's component colour - // - // gamerTagId is obtained using for example CreateFakeMpGamerTag - // Ranges from 0 to 255. 0 is grey health bar, ~50 yellow, 200 purple. - inline Void SetMpGamerTagColour(int gamerTagId, int component, int hudColorIndex) { return _i(0x613ED644950626AE, gamerTagId, component, hudColorIndex); } // 0x613ed644950626ae0x7e3aa40aB323 - // Ranges from 0 to 255. 0 is grey health bar, ~50 yellow, 200 purple. - // Should be enabled as flag (2). Has 0 opacity by default. - // - // - This was _SET_MP_GAMER_TAG_HEALTH_BAR_COLOR, - // -> Rockstar use the EU spelling of 'color' so I hashed the same name with COLOUR and it came back as the correct hash, so it has been corrected above. - inline Void SetMpGamerTagHealthBarColour(int gamerTagId, int hudColorIndex) { return _i(0x3158C77A7E888AB4, gamerTagId, hudColorIndex); } // 0x3158c77a7e888ab40x5777ec77B323 - // Sets flag's sprite transparency. 0-255. - inline Void SetMpGamerTagAlpha(int gamerTagId, int component, int alpha) { return _i(0xD48FE545CD46F857, gamerTagId, component, alpha); } // 0xd48fe545cd46f8570xf4418611B323 - // displays wanted star above head - inline Void SetMpGamerTagWantedLevel(int gamerTagId, int wantedlvl) { return _i(0xCF228E2AA03099C3, gamerTagId, wantedlvl); } // 0xcf228e2aa03099c30x0ebb003fB323 - inline Void SetMpGamerTagNumPackages(int gamerTagId, int p1) { return _i(0x9C16459B2324B2CF, gamerTagId, p1); } // 0x9c16459b2324b2cfB877 - inline Void SetMpGamerTagName(int gamerTagId, String string) { return _i(0xDEA2B8283BAA3944, gamerTagId, string); } // 0xdea2b8283baa39440x627a559bB323 - inline BOOL IsUpdatingMpGamerTagNameAndCrewDetails(int gamerTagId) { return _i(0xEB709A36958ABE0D, gamerTagId); } // 0xeb709a36958abe0d0xf11414c4B323 - inline Void SetMpGamerTagBigText(int gamerTagId, String string) { return _i(0x7B7723747CCB55B6, gamerTagId, string); } // 0x7b7723747ccb55b60x939218abB323 - inline int GetCurrentWebpageId() { return _i(0x01A358D9128B7A86); } // 0x01a358d9128b7a860xab5b7c18B323 - inline int GetCurrentWebsiteId() { return _i(0x97D47996FC48CBAD); } // 0x97d47996fc48cbad0x42a55b14B323 - // Returns the ActionScript flagValue. - // ActionScript flags are global flags that scaleforms use - // Flags found during testing - // 0: Returns 1 if the web_browser keyboard is open, otherwise 0 - // 1: Returns 1 if the player has clicked back twice on the opening page, otherwise 0 (web_browser) - // 2: Returns how many links the player has clicked in the web_browser scaleform, returns 0 when the browser gets closed - // 9: Returns the current selection on the mobile phone scaleform - // - // There are 20 flags in total. - inline int GetGlobalActionscriptFlag(int flagIndex) { return _i(0xE3B05614DCE1D014, flagIndex); } // 0xe3b05614dce1d0140xd217ee7eB323 - inline Void ResetGlobalActionscriptFlag(int flagIndex) { return _i(0xB99C4E4D9499DF29, flagIndex); } // 0xb99c4e4d9499df290x4c4c10cfB323 - inline BOOL IsWarningMessageReadyForControl() { return _i(0xAF42195A42C63BBA); } // 0xaf42195a42c63bbaB323 - // You can only use text entries. No custom text. - // - // Example: SetWarningMessage("t20", 3, "adder", false, -1, 0, 0, true); - // errorCode: shows an error code at the bottom left if nonzero - inline Void SetWarningMessage(String titleMsg, int flags, String promptMsg, BOOL p3, int p4, String p5, String p6, BOOL showBackground, int errorCode) { return _i(0x7B1776B3B53F8D74, titleMsg, flags, promptMsg, p3, p4, p5, p6, showBackground, errorCode); } // 0x7b1776b3b53f8d740xbe699bdeB323 - // Shows a warning message on screen with a header. - // Note: You can only use text entries. No custom text. You can recreate this easily with scaleforms. - // Example: https://i.imgur.com/ITJt8bJ.png - inline Void SetWarningMessageWithHeader(String entryHeader, String entryLine1, int instructionalKey, String entryLine2, BOOL p4, Any p5, Any* showBackground, Any* p7, BOOL p8, Any p9) { return _i(0xDC38CC1E35B6A5D7, entryHeader, entryLine1, instructionalKey, entryLine2, p4, p5, showBackground, p7, p8, p9); } // 0xdc38cc1e35b6a5d70x2db9eab5B323 - // You can use this native for custom input, without having to use any scaleform-related natives. - // The native must be called on tick. - // The entryHeader must be a valid label. - // For Single lines use JL_INVITE_N as entryLine1, JL_INVITE_ND for multiple. - // Notes: - // - additionalIntInfo: replaces first occurrence of ~1~ in provided label with an integer - // - additionalTextInfoLine1: replaces first occurrence of ~a~ in provided label, with your custom text - // - additionalTextInfoLine2: replaces second occurrence of ~a~ in provided label, with your custom text - // - showBackground: shows black background of the warning screen - // - errorCode: shows an error code at the bottom left if nonzero - // Example of usage: - // SetWarningMessageWithHeaderAndSubstringFlags("ALERT", "JL_INVITE_ND", 66, "", true, -1, -1, "Testing line 1", "Testing line 2", true, 0); - // Screenshot: - // https://imgur.com/a/IYA7vJ8 - inline Void SetWarningMessageWithHeaderAndSubstringFlags(String entryHeader, String entryLine1, int instructionalKey, String entryLine2, BOOL p4, Any p5, Any additionalIntInfo, String additionalTextInfoLine1, String additionalTextInfoLine2, BOOL showBackground, int errorCode) { return _i(0x701919482C74B5AB, entryHeader, entryLine1, instructionalKey, entryLine2, p4, p5, additionalIntInfo, additionalTextInfoLine1, additionalTextInfoLine2, showBackground, errorCode); } // 0x701919482c74b5ab0x749929d3B323 - inline Void SetWarningMessageWithHeaderExtended(String entryHeader, String entryLine1, int flags, String entryLine2, BOOL p4, Any p5, Any* p6, Any* p7, BOOL showBg, Any p9, Any p10) { return _i(0x38B55259C2E078ED, entryHeader, entryLine1, flags, entryLine2, p4, p5, p6, p7, showBg, p9, p10); } // 0x38b55259c2e078edB1493 - // labelTitle: Label of the alert's title. - // labelMsg: Label of the alert's message. - // p2: This is an enum, check the description for a list. - // p3: This is an enum, check the description for a list. - // labelMsg2: Label of another message line - // p5: usually 0 - // p6: usually -1 - // p7: usually 0 - // p8: unknown label - // p9: unknown label - // background: Set to anything other than 0 or false (even any string) and it will draw a background. Setting it to 0 or false will draw no background. - // errorCode: Error code, shown at the bottom left if set to value other than 0. - // - // instructionalKey enum list: - // Buttons = { - // Empty = 0, - // Select = 1, -- (RETURN) - // Ok = 2, -- (RETURN) - // Yes = 4, -- (RETURN) - // Back = 8, -- (ESC) - // Cancel = 16, -- (ESC) - // No = 32, -- (ESC) - // RetrySpace = 64, -- (SPACE) - // Restart = 128, -- (SPACE) - // Skip = 256, -- (SPACE) - // Quit = 512, -- (ESC) - // Adjust = 1024, -- (ARROWS) - // SpaceKey = 2048, -- (SPACE) - // Share = 4096, -- (SPACE) - // SignIn = 8192, -- (SPACE) - // Continue = 16384, -- (RETURN) - // AdjustLeftRight = 32768, -- (SCROLL L/R) - // AdjustUpDown = 65536, -- (SCROLL U/D) - // Overwrite = 131072, -- (SPACE) - // SocialClubSignup = 262144, -- (RETURN) - // Confirm = 524288, -- (RETURN) - // Queue = 1048576, -- (RETURN) - // RetryReturn = 2097152, -- (RETURN) - // BackEsc = 4194304, -- (ESC) - // SocialClub = 8388608, -- (RETURN) - // Spectate = 16777216, -- (SPACE) - // OkEsc = 33554432, -- (ESC) - // CancelTransfer = 67108864, -- (ESC) - // LoadingSpinner = 134217728, - // NoReturnToGTA = 268435456, -- (ESC) - // CancelEsc = 536870912, -- (ESC) - // } - // - // Alt = { - // Empty = 0, - // No = 1, -- (SPACE) - // Host = 2, -- (ESC) - // SearchForJob = 4, -- (RETURN) - // ReturnKey = 8, -- (TURN) - // Freemode = 16, -- (ESC) - // } - // - // Example: https://i.imgur.com/TvmNF4k.png - inline Void SetWarningMessageWithHeaderAndSubstringFlagsExtended(String labelTitle, String labelMessage, int p2, int p3, String labelMessage2, BOOL p5, int p6, int p7, String p8, String p9, BOOL background, int errorCode) { return _i(0x15803FEC3B9A872B, labelTitle, labelMessage, p2, p3, labelMessage2, p5, p6, p7, p8, p9, background, errorCode); } // 0x15803fec3b9a872bB573 - // Has to do with the confirmation overlay (E.g. confirm exit) - inline Hash GetWarningScreenMessageHash() { return _i(0x81DF9ABA6C83DFF9); } // 0x81df9aba6c83dff9B1290 - // Some sort of list displayed in a warning message. Yet unknown how to prevent repeating. - // Param names copied from the corresponding scaleform function "SET_LIST_ROW". - // Example: https://i.imgur.com/arKvOYx.png - inline BOOL SetWarningMessageOptionItems(int index, String name, int cash, int rp, int lvl, int colour) { return _i(0x0C5A80A9E096D529, index, name, cash, rp, lvl, colour); } // 0x0c5a80a9e096d529B323 - inline BOOL SetWarningMessageOptionHighlight(Any p0) { return _i(0xDAF87174BE7454FF, p0); } // 0xdaf87174be7454ffB323 - inline Void RemoveWarningMessageOptionItems() { return _i(0x6EF54AB721DC6242); } // 0x6ef54ab721dc6242B323 - inline BOOL IsWarningMessageActive() { return _i(0xE18B138FABC53103); } // 0xe18b138fabc531030x94c834adB323 - inline Void ClearDynamicPauseMenuErrorMessage() { return _i(0x7792424AA0EAC32E); } // 0x7792424aa0eac32e0x2f9a309cB323 - // If toggle is true, the map is shown in full screen - // If toggle is false, the map is shown in normal mode - inline Void CustomMinimapSetActive(BOOL toggle) { return _i(0x5354C5BA2EA868A4, toggle); } // 0x5354c5ba2ea868a40xe4fd20d8B323 - // Sets the sprite of the next BLIP_GALLERY blip, values used in the native scripts: 143 (ObjectiveBlue), 144 (ObjectiveGreen), 145 (ObjectiveRed), 146 (ObjectiveYellow). - inline Void CustomMinimapSetBlipObject(int spriteId) { return _i(0x1EAE6DD17B7A5EFA, spriteId); } // 0x1eae6dd17b7a5efa0x13e7a5a9B323 - // Add a BLIP_GALLERY at the specific coordinate. Used in fm_maintain_transition_players to display race track points. - inline int CustomMinimapCreateBlip(float x, float y, float z) { return _i(0x551DF99658DB6EE8, x, y, z); } // 0x551df99658db6ee80x786ca0a2B323 - inline Void CustomMinimapClearBlips() { return _i(0x2708FC083123F9FF); } // 0x2708fc083123f9ff0xcbec9369B323 - // Doesn't actually return anything. - inline BOOL ForceSonarBlipsThisFrame() { return _i(0x1121BFA1A1A522A8); } // 0x1121bfa1a1a522a80x3f4afb13B323 - inline Blip GetNorthBlidIndex() { return _i(0x3F0CF9CB7E589B88); } // 0x3f0cf9cb7e589b88B463 - // Toggles whether or not name labels are shown on the expanded minimap next to player blips, like in GTA:O. - // Doesn't need to be called every frame. - // Preview: https://i.imgur.com/DfqKWfJ.png - // - // Make sure to call SetBlipCategory with index 7 for this to work on the desired blip. - inline Void DisplayPlayerNameTagsOnBlips(BOOL toggle) { return _i(0x82CEDC33687E1F50, toggle); } // 0x82cedc33687e1f500x2f28f0a6B323 - // This native does absolutely nothing, just a nullsub - inline Void DrawFrontendBackgroundThisFrame() { return _i(0x211C4EF450086857); } // 0x211c4ef4500868570x801d0d86B323 - inline Void DrawHudOverFadeThisFrame() { return _i(0xBF4F34A85CA2970C); } // 0xbf4f34a85ca2970c0x317775dfB323 - // Does stuff like this: - // gyazo.com/7fcb78ea3520e3dbc5b2c0c0f3712617 - // - // Example: - // int GetHash = GetHashKey("fe_menu_version_corona_lobby"); - // ActivateFrontendMenu(GetHash, 0, -1); - // - // BOOL p1 is a toggle to define the game in pause. - // int p2 is unknown but -1 always works, not sure why though. - // - // [30/03/2017] ins1de : - // - // the int p2 is actually a component variable. When the pause menu is visible, it opens the tab related to it. - // - // Example : Function.Call(Hash.ActivateFrontendMenu,-1171018317, 0, 42); - // Result : Opens the "Online" tab without pausing the menu, with -1 it opens the map.Below is a list of all known Frontend Menu Hashes. - // - FE_MENU_VERSION_SP_PAUSE - // - FE_MENU_VERSION_MP_PAUSE - // - FE_MENU_VERSION_CREATOR_PAUSE - // - FE_MENU_VERSION_CUTSCENE_PAUSE - // - FE_MENU_VERSION_SAVEGAME - // - FE_MENU_VERSION_PRE_LOBBY - // - FE_MENU_VERSION_LOBBY - // - FE_MENU_VERSION_MP_CHARACTER_SELECT - // - FE_MENU_VERSION_MP_CHARACTER_CREATION - // - FE_MENU_VERSION_EMPTY - // - FE_MENU_VERSION_EMPTY_NO_BACKGROUND - // - FE_MENU_VERSION_TEXT_SELECTION - // - FE_MENU_VERSION_CORONA - // - FE_MENU_VERSION_CORONA_LOBBY - // - FE_MENU_VERSION_CORONA_JOINED_PLAYERS - // - FE_MENU_VERSION_CORONA_INVITE_PLAYERS - // - FE_MENU_VERSION_CORONA_INVITE_FRIENDS - // - FE_MENU_VERSION_CORONA_INVITE_CREWS - // - FE_MENU_VERSION_CORONA_INVITE_MATCHED_PLAYERS - // - FE_MENU_VERSION_CORONA_INVITE_LAST_JOB_PLAYERS - // - FE_MENU_VERSION_CORONA_RACE - // - FE_MENU_VERSION_CORONA_BETTING - // - FE_MENU_VERSION_JOINING_SCREEN - // - FE_MENU_VERSION_LANDING_MENU - // - FE_MENU_VERSION_LANDING_KEYMAPPING_MENU - inline Void ActivateFrontendMenu(Hash menuhash, BOOL togglePause, int component) { return _i(0xEF01D36B9C9D0C7B, menuhash, togglePause, component); } // 0xef01d36b9c9d0c7b0x01d83872B323 - // Before using this native click the native above and look at the decription. - // - // Example: - // int GetHash = Function.Call(Hash.GetHashKey, "fe_menu_version_corona_lobby"); - // Function.Call(Hash.ActivateFrontendMenu, GetHash, 0, -1); - // Function.Call(Hash.RestartFrontendMenu(GetHash, -1); - // - // This native refreshes the frontend menu. - // - // p1 = Hash of Menu - // p2 = Unknown but always works with -1. - inline Void RestartFrontendMenu(Hash menuHash, int p1) { return _i(0x10706DC6AD2D49C0, menuHash, p1); } // 0x10706dc6ad2d49c00xb07daf98B323 - // if (HUD::GetCurrentFrontendMenuVersion() == joaat("fe_menu_version_empty_no_background")) - inline Hash GetCurrentFrontendMenuVersion() { return _i(0x2309595AD6145265); } // 0x2309595ad61452650x33d6868fB323 - inline Void SetPauseMenuActive(BOOL toggle) { return _i(0xDF47FC56C71569CF, toggle); } // 0xdf47fc56c71569cf0x1dcd878eB323 - inline Void DisableFrontendThisFrame() { return _i(0x6D3465A73092F0E6); } // 0x6d3465a73092f0e60xd86a029eB323 - inline Void SuppressFrontendRenderingThisFrame() { return _i(0xBA751764F0821256); } // 0xba751764f08212560x7f349900B323 - // Allows opening the pause menu this frame, when the player is dead. - inline Void AllowPauseWhenNotInStateOfPlayThisFrame() { return _i(0xCC3FDDED67BCFC63); } // 0xcc3fdded67bcfc630x630cd8eeB323 - inline Void SetFrontendActive(BOOL active) { return _i(0x745711A75AB09277, active); } // 0x745711a75ab092770x81e1ad32B323 - inline BOOL IsPauseMenuActive() { return _i(0xB0034A223497FFCB); } // 0xb0034a223497ffcb0xd3600591B323 - inline BOOL IsStorePendingNetworkShutdownToOpen() { return _i(0x2F057596F2BD0061); } // 0x2f057596f2bd00610xc85c4487B323 - // Returns: - // - // 0 - // 5 - // 10 - // 15 - // 20 - // 25 - // 30 - // 35 - // - inline int GetPauseMenuState() { return _i(0x272ACD84970869C5); } // 0x272acd84970869c50x92f50134B323 - inline Vector3 GetPauseMenuPosition() { return _i(0x5BFF36D6ED83E0AE); } // 0x5bff36d6ed83e0aeB323 - inline BOOL IsPauseMenuRestarting() { return _i(0x1C491717107431C7); } // 0x1c491717107431c70x3c4cf4d9B323 - // Not present in retail version of the game, actual definiton seems to be - // _LOG_DEBUG_INFO(String category, String debugText); - inline Void ForceScriptedGfxWhenFrontendActive(String p0) { return _i(0x2162C446DFDF38FD, p0); } // 0x2162c446dfdf38fd0x2dfd35c7B323 - inline Void PauseMenuceptionGoDeeper(int page) { return _i(0x77F16B447824DA6C, page); } // 0x77f16b447824da6c0x0a89336cB323 - inline Void PauseMenuceptionTheKick() { return _i(0xCDCA26E80FAECB8F); } // 0xcdca26e80faecb8f0xc84be309B323 - inline Void PauseToggleFullscreenMap(Any p0) { return _i(0x2DE6C5E2E996F178, p0); } // 0x2de6c5e2e996f178B372 - // Activates the specified frontend menu context. - // pausemenu.xml defines some specific menu options using 'context'. Context is basically a 'condition'. - // The `*ALL*` part of the context means that whatever is being defined, will be active when any or all of those conditions after `*ALL*` are met. - // The `*NONE*` part of the context section means that whatever is being defined, will NOT be active if any or all of the conditions after `*NONE*` are met. - // This basically allows you to hide certain menu sections, or things like instructional buttons. - inline Void PauseMenuActivateContext(Hash contextHash) { return _i(0xDD564BDD0472C936, contextHash); } // 0xdd564bdd0472c9360x9fe8fd5eB323 - inline Void PauseMenuDeactivateContext(Hash contextHash) { return _i(0x444D8CF241EC25C5, contextHash); } // 0x444d8cf241ec25c50x0029046eB323 - inline BOOL PauseMenuIsContextActive(Hash contextHash) { return _i(0x84698AB38D0C6636, contextHash); } // 0x84698ab38d0c66360xc51bc42fB323 - inline BOOL PauseMenuIsContextMenuActive() { return _i(0x2A25ADC48F87841F); } // 0x2a25adc48f87841f0x016d7af9B323 - inline int PauseMenuGetHairColourIndex() { return _i(0xDE03620F8703A9DF); } // 0xde03620f8703a9dfB323 - inline int PauseMenuGetMouseHoverIndex() { return _i(0x359AF31A4B52F5ED); } // 0x359af31a4b52f5edB323 - inline int PauseMenuGetMouseHoverUniqueId() { return _i(0x13C4B962653A5280); } // 0x13c4b962653a5280B323 - inline BOOL PauseMenuGetMouseClickEvent(Any* p0, Any* p1, Any* p2) { return _i(0xC8E1071177A23BE5, p0, p1, p2); } // 0xc8e1071177a23be5B323 - inline Void PauseMenuRedrawInstructionalButtons(int p0) { return _i(0x4895BDEA16E7C080, p0); } // 0x4895bdea16e7c0800x15b24768B323 - inline Void PauseMenuSetBusySpinner(BOOL p0, int position, int spinnerIndex) { return _i(0xC78E239AC5B2DDB9, p0, position, spinnerIndex); } // 0xc78e239ac5b2ddb90x6c67131aB323 - inline Void PauseMenuSetWarnOnTabChange(BOOL p0) { return _i(0xF06EBB91A81E09E3, p0); } // 0xf06ebb91a81e09e30x11d09737B323 - inline BOOL IsFrontendReadyForControl() { return _i(0x3BAB9A4E4F2FF5C7); } // 0x3bab9a4e4f2ff5c70xd3bf3abdB323 - // Disables frontend (works in custom frontends, not sure about regular pause menu) navigation keys on keyboard. Not sure about controller. Does not disable mouse controls. No need to call this every tick. - // - // To enable the keys again, use `0x14621BB1DF14E2B2`. - inline Void TakeControlOfFrontend() { return _i(0xEC9264727EEC0F28); } // 0xec9264727eec0f280xc06b763dB323 - // Enables frontend (works in custom frontends, not sure about regular pause menu) navigation keys on keyboard if they were disabled using the native below. - // To disable the keys, use `0xEC9264727EEC0F28` - inline Void ReleaseControlOfFrontend() { return _i(0x14621BB1DF14E2B2); } // 0x14621bb1df14e2b20xb9392ce7B323 - inline BOOL CodeWantsScriptToTakeControl() { return _i(0x66E7CB63C97B7D20); } // 0x66e7cb63c97b7d200x92dafa78B323 - inline int GetScreenCodeWantsScriptToControl() { return _i(0x593FEAE1F73392D4); } // 0x593feae1f73392d40x22ca9f2aB323 - inline BOOL IsNavigatingMenuContent() { return _i(0x4E3CD0EF8A489541); } // 0x4e3cd0ef8a4895410xda7951a2B323 - inline BOOL HasMenuTriggerEventOccurred() { return _i(0xF284AC67940C6812); } // 0xf284ac67940c68120x7d95afffB323 - inline BOOL HasMenuLayoutChangedEventOccurred() { return _i(0x2E22FEFA0100275E); } // 0x2e22fefa0100275e0x96863460B323 - inline Void SetSavegameListUniqueId(Any p0) { return _i(0x0CF54F20DE43879C, p0); } // 0x0cf54f20de43879cB323 - inline Void GetMenuTriggerEventDetails(int* lastItemMenuId, int* selectedItemUniqueId) { return _i(0x36C1451A88A09630, lastItemMenuId, selectedItemUniqueId); } // 0x36c1451a88a096300x8543aac8B323 - // lastItemMenuId: this is the menuID of the last selected item minus 1000 (lastItem.menuID - 1000) - // selectedItemMenuId: same as lastItemMenuId except for the currently selected menu item - // selectedItemUniqueId: this is uniqueID of the currently selected menu item - // - // when the pausemenu is closed: - // lastItemMenuId = -1 - // selectedItemMenuId = -1 - // selectedItemUniqueId = 0 - // - // when the header gains focus: - // lastItemMenuId updates as normal or 0 if the pausemenu was just opened - // selectedItemMenuId becomes a unique id for the pausemenu page that focus was taken from (?) or 0 if the pausemenu was just opened - // selectedItemUniqueId = -1 - // - // when focus is moved from the header to a pausemenu page: - // lastItemMenuId becomes a unique id for the pausemenu page that focus was moved to (?) - // selectedItemMenuId = -1 - // selectedItemUniqueId updates as normal - inline Void GetMenuLayoutChangedEventDetails(int* lastItemMenuId, int* selectedItemMenuId, int* selectedItemUniqueId) { return _i(0x7E17BE53E1AAABAF, lastItemMenuId, selectedItemMenuId, selectedItemUniqueId); } // 0x7e17be53e1aaabaf0x6025aa2fB323 - inline BOOL GetPmPlayerCrewColor(int* r, int* g, int* b) { return _i(0xA238192F33110615, r, g, b); } // 0xa238192f331106150x46794eb2B323 - inline BOOL GetMenuPedIntStat(Any p0, Any* p1) { return _i(0xEF4CED81CEBEDC6D, p0, p1); } // 0xef4ced81cebedc6d0x4370999eB323 - inline BOOL GetCharacterMenuPedIntStat(Any p0, Any* p1, Any p2) { return _i(0xCA6B2F7CE32AB653, p0, p1, p2); } // 0xca6b2f7ce32ab653B323 - inline BOOL GetMenuPedMaskedIntStat(Hash statHash, int* outValue, int mask, BOOL p3) { return _i(0x90A6526CF0381030, statHash, outValue, mask, p3); } // 0x90a6526cf03810300xd6cc4766B323 - inline BOOL GetCharacterMenuPedMaskedIntStat(Hash statHash, Any* outValue, int p2, int mask, BOOL p4) { return _i(0x24A49BEAF468DC90, statHash, outValue, p2, mask, p4); } // 0x24a49beaf468dc90B323 - inline BOOL GetMenuPedFloatStat(Hash statHash, float* outValue) { return _i(0x5FBD7095FE7AE57F, statHash, outValue); } // 0x5fbd7095fe7ae57f0x51972b04B323 - inline BOOL GetCharacterMenuPedFloatStat(float statHash, float* outValue, BOOL p2) { return _i(0x8F08017F9D7C47BD, statHash, outValue, p2); } // 0x8f08017f9d7c47bdB323 - // p0 was always 0xAE2602A3. - inline BOOL GetMenuPedBoolStat(Hash statHash, BOOL* outValue) { return _i(0x052991E59076E4E4, statHash, outValue); } // 0x052991e59076e4e40xd43bb56dB323 - inline Void ClearPedInPauseMenu() { return _i(0x5E62BE5DC58E9E06); } // 0x5e62be5dc58e9e060x28058acfB323 - // p1 is either 1 or 2 in the PC scripts. - inline Void GivePedToPauseMenu(Ped ped, int p1) { return _i(0xAC0BFBDC3BE00E14, ped, p1); } // 0xac0bfbdc3be00e140x2ad2c9ceB323 - // Toggles the light state for the pause menu ped in frontend menus. - // - // This is used by R* in combination with `SetPauseMenuPedSleepState` to toggle the "offline" or "online" state in the "friends" tab of the pause menu in GTA Online. - // - // - // Example: - // Lights On: https://vespura.com/hi/i/2019-04-01_16-09_540ee_1015.png - // Lights Off: https://vespura.com/hi/i/2019-04-01_16-10_8b5e7_1016.png - inline Void SetPauseMenuPedLighting(BOOL state) { return _i(0x3CA6050692BC61B0, state); } // 0x3ca6050692bc61b00x127310ebB323 - // Toggles the pause menu ped sleep state for frontend menus. - // - // Example: https://vespura.com/hi/i/2019-04-01_15-51_8ed38_1014.gif - // - // `state` 0 will make the ped slowly fall asleep, 1 will slowly wake the ped up. - inline Void SetPauseMenuPedSleepState(BOOL state) { return _i(0xECF128344E9FF9F1, state); } // 0xecf128344e9ff9f10x8f45d327B323 - inline Void OpenOnlinePoliciesMenu() { return _i(0x805D7CBB36FD6C4C); } // 0x805d7cbb36fd6c4c0x19fcbbb2B323 - inline BOOL AreOnlinePoliciesUpToDate() { return _i(0xF13FE2A80C05C561); } // 0xf13fe2a80c05c5610x850690ffB323 - // Returns the same as IsSocialClubActive - inline BOOL IsOnlinePoliciesMenuActive() { return _i(0x6F72CD94F7B5B68C); } // 0x6f72cd94f7b5b68c0x9d4934f4B323 - // Uses the `SOCIAL_CLUB2` scaleform. - // menu: GALLERY, MISSIONS, CREWS, MIGRATE, PLAYLISTS, JOBS - inline Void OpenSocialClubMenu(Hash menu) { return _i(0x75D3691713C3B05A, menu); } // 0x75d3691713c3b05a0x57218529B323 - inline Void CloseSocialClubMenu() { return _i(0xD2B32BE3FC1626C6); } // 0xd2b32be3fc1626c60x5f86aa39B323 - // HUD::SetSocialClubTour("Gallery"); - // HUD::SetSocialClubTour("Missions"); - // HUD::SetSocialClubTour("General"); - // HUD::SetSocialClubTour("Playlists"); - inline Void SetSocialClubTour(String name) { return _i(0x9E778248D6685FE0, name); } // 0x9e778248d6685fe00x7ad67c95B323 - inline BOOL IsSocialClubActive() { return _i(0xC406BE343FC4B9AF); } // 0xc406be343fc4b9af0xd4da14efB323 - inline Void SetTextInputBoxEnabled(BOOL p0) { return _i(0x1185A8087587322C, p0); } // 0x1185a8087587322cB323 - inline Void ForceCloseTextInputBox() { return _i(0x8817605C2BA76200); } // 0x8817605c2ba76200B323 - inline Void SetAllowCommaOnTextInput(Any p0) { return _i(0x577599CCED639CA2, p0); } // 0x577599cced639ca2B505 - inline Void OverrideMpTextChatTeamString(Hash gxtEntryHash) { return _i(0x6A1738B4323FE2D9, gxtEntryHash); } // 0x6a1738b4323fe2d9B573 - // Returns whether or not the text chat (MULTIPLAYER_CHAT Scaleform component) is active. - inline BOOL IsMpTextChatTyping() { return _i(0xB118AF58B5F332A1); } // 0xb118af58b5f332a1B323 - inline Void CloseMpTextChat() { return _i(0x1AC8F4AD40E22127); } // 0x1ac8f4ad40e22127B323 - inline Void MpTextChatIsTeamJob(Any p0) { return _i(0x7C226D5346D4D10A, p0); } // 0x7c226d5346d4d10aB372 - inline Void OverrideMpTextChatColor(int p0, int hudColor) { return _i(0xF47E567B3630DD12, p0, hudColor); } // 0xf47e567b3630dd12B678 - // Hides the chat history, closes the input box and makes it unable to be opened unless called again with FALSE. - inline Void MpTextChatDisable(BOOL toggle) { return _i(0x1DB21A44B09E8BA3, toggle); } // 0x1db21a44b09e8ba3B323 - inline Void FlagPlayerContextInTournament(BOOL toggle) { return _i(0xCEF214315D276FD1, toggle); } // 0xcef214315d276fd10xff06772aB323 - // This native turns on the AI blip on the specified ped. It also disappears automatically when the ped is too far or if the ped is dead. You don't need to control it with other natives. - // - // See gtaforums.com/topic/884370-native-research-ai-blips for further information. - inline Void SetPedHasAiBlip(Ped ped, BOOL hasCone) { return _i(0xD30C50DF888D58B5, ped, hasCone); } // 0xd30c50df888d58b50x96c4c4ddB323 - // color: see SetBlipColour - inline Void SetPedHasAiBlipWithColour(Ped ped, BOOL hasCone, int color) { return _i(0xB13DCB4C6FAAD238, ped, hasCone, color); } // 0xb13dcb4c6faad238B505 - inline BOOL DoesPedHaveAiBlip(Ped ped) { return _i(0x15B8ECF844EE67ED, ped); } // 0x15b8ecf844ee67ed0x3be1257fB323 - inline Void SetPedAiBlipGangId(Ped ped, int gangId) { return _i(0xE52B8E7F85D39A08, ped, gangId); } // 0xe52b8e7f85d39a080xd8e31b1aB323 - inline Void SetPedAiBlipHasCone(Ped ped, BOOL toggle) { return _i(0x3EED80DFF7325CAA, ped, toggle); } // 0x3eed80dff7325caa0x872c2cfbB323 - inline Void SetPedAiBlipForcedOn(Ped ped, BOOL toggle) { return _i(0x0C4BBF625CA98C4E, ped, toggle); } // 0x0c4bbf625ca98c4e0xffdf46f0B323 - inline Void SetPedAiBlipNoticeRange(Ped ped, float range) { return _i(0x97C65887D4B37FA9, ped, range); } // 0x97c65887d4b37fa90xf9dc2af7B323 - inline Void SetPedAiBlipSprite(Ped ped, int spriteId) { return _i(0xFCFACD0DB9D7A57D, ped, spriteId); } // 0xfcfacd0db9d7a57dB877 - inline Blip GetAiPedPedBlipIndex(Ped ped) { return _i(0x7CD934010E115C2C, ped); } // 0x7cd934010e115c2c0x06349065B323 - // Returns the current AI BLIP for the specified ped - inline Blip GetAiPedVehicleBlipIndex(Ped ped) { return _i(0x56176892826A4FE8, ped); } // 0x56176892826a4fe80xca52cf43B323 - inline BOOL HasDirectorModeBeenLaunchedByCode() { return _i(0xA277800A9EAE340E); } // 0xa277800a9eae340eB323 - inline Void SetDirectorModeLaunchedByScript() { return _i(0x2632482FD6B9AB87); } // 0x2632482fd6b9ab87B323 - // If toggle is true, hides special ability bar / character name in the pause menu - // If toggle is false, shows special ability bar / character name in the pause menu - inline Void SetPlayerIsInDirectorMode(BOOL toggle) { return _i(0x808519373FD336A3, toggle); } // 0x808519373fd336a3B323 - inline Void SetDirectorModeAvailable(BOOL toggle) { return _i(0x04655F9D075D0AE5, toggle); } // 0x04655f9d075d0ae5B323 - inline Void HideHudmarkersThisFrame() { return _i(0x243296A510B562B6); } // 0x243296a510b562b6B2060 + // Initializes the text entry for the the text next to a loading prompt. All natives for building UI texts can be used here + // + // + // e.g + // Void StartLoadingMessage(char *text, int spinnerType = 3) + // { + // BeginTextCommandBusyspinnerOn("STRING"); + // AddTextComponentSubstringPlayerName(text); + // EndTextCommandBusyspinnerOn(spinnerType); + // } + // /*OR*/ + // Void ShowLoadingMessage(char *text, int spinnerType = 3, int timeMs = 10000) + // { + // BeginTextCommandBusyspinnerOn("STRING"); + // AddTextComponentSubstringPlayerName(text); + // EndTextCommandBusyspinnerOn(spinnerType); + // Wait(timeMs); + // BusyspinnerOff(); + // } + // + // + // These are some localized strings used in the loading spinner. + // "PM_WAIT" = Please Wait + // "CELEB_WPLYRS" = Waiting For Players. + // "CELL_SPINNER2" = Scanning storage. + // "ERROR_CHECKYACHTNAME" = Registering your yacht's name. Please wait. + // "ERROR_CHECKPROFANITY" = Checking your text for profanity. Please wait. + // "FM_COR_AUTOD" = Just spinner no text + // "FM_IHELP_WAT2" = Waiting for other players + // "FM_JIP_WAITO" = Game options are being set + // "FMMC_DOWNLOAD" = Downloading + // "FMMC_PLYLOAD" = Loading + // "FMMC_STARTTRAN" = Launching session + // "HUD_QUITTING" = Quiting session + // "KILL_STRIP_IDM" = Waiting for to accept + // "MP_SPINLOADING" = Loading + inline Void BeginTextCommandBusyspinnerOn(String string) { return _i(0xABA17D7CE615ADBF, string); } // 0xaba17d7ce615adbf0xcb7c8994B323 + // enum eBusySpinnerType + // { + // BUSY_SPINNER_LEFT, + // BUSY_SPINNER_LEFT_2, + // BUSY_SPINNER_LEFT_3, + // BUSY_SPINNER_SAVE, + // BUSY_SPINNER_RIGHT, + // }; + inline Void EndTextCommandBusyspinnerOn(int busySpinnerType) { return _i(0xBD12F8228410D9B4, busySpinnerType); } // 0xbd12f8228410d9b40x903f5ee4B323 + // Removes the loading prompt at the bottom right of the screen. + inline Void BusyspinnerOff() { return _i(0x10D373323E5B9C0D); } // 0x10d373323e5b9c0d0x94119534B323 + inline Void PreloadBusyspinner() { return _i(0xC65AB383CD91DF98); } // 0xc65ab383cd91df980x71077fbdB323 + inline BOOL BusyspinnerIsOn() { return _i(0xD422FCC5F239A915); } // 0xd422fcc5f239a9150xb8b3a5d0B323 + inline BOOL BusyspinnerIsDisplaying() { return _i(0xB2A592B04648A9CB); } // 0xb2a592b04648a9cb0x3af34defB323 + inline Void DisablePausemenuSpinner(BOOL p0) { return _i(0x9245E81072704B8A, p0); } // 0x9245e81072704b8aB323 + // Shows the cursor on screen for one frame. + inline Void SetMouseCursorThisFrame() { return _i(0xAAE7CE1D63167423); } // 0xaae7ce1d63167423B323 + // Changes the mouse cursor's sprite. + // 1 = Normal + // 6 = Left Arrow + // 7 = Right Arrow + inline Void SetMouseCursorStyle(int spriteId) { return _i(0x8DB8CFFD58B62552, spriteId); } // 0x8db8cffd58b62552B323 + // Shows/hides the frontend cursor on the pause menu or similar menus. + // Clicking off and then on the game window will show it again. + inline Void SetMouseCursorVisible(BOOL toggle) { return _i(0x98215325A695E78A, toggle); } // 0x98215325a695e78aB323 + // Returns TRUE if mouse is hovering above instructional buttons. Works with all buttons gfx, such as popup_warning, pause_menu_instructional_buttons, instructional_buttons, etc. Note: You have to call TOGGLE_MOUSE_BUTTONS on the scaleform if you want this native to work. + inline BOOL IsMouseRolledOverInstructionalButtons() { return _i(0x3D9ACB1EB139E702); } // 0x3d9acb1eb139e702B323 + inline BOOL GetMouseEvent(int scaleformHandle, Any* p1, Any* p2, Any* p3) { return _i(0x632B2940C67F4EA9, scaleformHandle, p1, p2, p3); } // 0x632b2940c67f4ea9B323 + inline Void ThefeedOnlyShowTooltips(BOOL toggle) { return _i(0x6F1554B0CC2089FA, toggle); } // 0x6f1554b0cc2089fa0xa7c8594bB323 + inline Void ThefeedSetScriptedMenuHeight(float pos) { return _i(0x55598D21339CB998, pos); } // 0x55598d21339cb9980x1da7e41aB323 + // Stops loading screen tips shown by invoking `ThefeedShow` + inline Void ThefeedHide() { return _i(0x32888337579A5970); } // 0x32888337579a5970B463 + // Once called each frame hides all above radar notifications. + inline Void ThefeedHideThisFrame() { return _i(0x25F87B30C382FCA7); } // 0x25f87b30c382fca70x1e63088aB323 + // Displays loading screen tips, requires `ThefeedAutoPostGametipsOn` to be called beforehand. + inline Void ThefeedShow() { return _i(0x15CFA549788D35EF); } // 0x15cfa549788d35efB463 + inline Void ThefeedFlushQueue() { return _i(0xA8FDB297A8D25FBA); } // 0xa8fdb297a8d25fba0x5205c6f5B323 + // Removes a notification instantly instead of waiting for it to disappear + inline Void ThefeedRemoveItem(int notificationId) { return _i(0xBE4390CB40B3E627, notificationId); } // 0xbe4390cb40b3e6270xeca8acb9B323 + inline Void ThefeedForceRenderOn() { return _i(0xA13C11E1B5C06BFC); } // 0xa13c11e1b5c06bfc0x520fcb6dB323 + // Enables loading screen tips to be be shown (`ThefeedShow`), blocks other kinds of notifications from being displayed (at least from current script). Call `0xADED7F5748ACAFE6` to display those again. + inline Void ThefeedForceRenderOff() { return _i(0x583049884A2EEE3C); } // 0x583049884a2eee3c0xc8bab2f2B323 + inline Void ThefeedPause() { return _i(0xFDB423997FA30340); } // 0xfdb423997fa303400x4d0449c6B323 + inline Void ThefeedResume() { return _i(0xE1CD1E48E025E661); } // 0xe1cd1e48e025e6610xd3f40140B323 + inline BOOL ThefeedIsPaused() { return _i(0xA9CBFD40B3FA3010); } // 0xa9cbfd40b3fa30100xc5223796B323 + inline Void ThefeedReportLogoOn() { return _i(0xD4438C0564490E63); } // 0xd4438c0564490e630x709b4bcbB323 + inline Void ThefeedReportLogoOff() { return _i(0xB695E2CD0A2DA9EE); } // 0xb695e2cd0a2da9ee0x4a4a40a4B323 + // Returns the handle for the notification currently displayed on the screen. Name may be a hash collision, but describes the function accurately. + inline int ThefeedGetLastShownPhoneActivatableFeedId() { return _i(0x82352748437638CA); } // 0x82352748437638ca0x294405d4B323 + // Enables loading screen tips to be be shown (`ThefeedShow`), blocks other kinds of notifications from being displayed (at least from current script). Call `ThefeedAutoPostGametipsOff` to display those again. + inline Void ThefeedAutoPostGametipsOn() { return _i(0x56C8B608CFD49854); } // 0x56c8b608cfd498540xf881ab87B323 + // Displays "normal" notifications again after calling `ThefeedAutoPostGametipsOn` (those that were drawn before calling this native too), though those will have a weird offset and stay on screen forever (tested with notifications created from same script). + inline Void ThefeedAutoPostGametipsOff() { return _i(0xADED7F5748ACAFE6); } // 0xaded7f5748acafe60x1d6859caB323 + // From the decompiled scripts: + // HUD::ThefeedSetBackgroundColorForNextPost(6); + // HUD::ThefeedSetBackgroundColorForNextPost(184); + // HUD::ThefeedSetBackgroundColorForNextPost(190); + // + // sets background color for the next notification + // 6 = red + // 184 = green + // 190 = yellow + // + // Here is a list of some colors that can be used: https://gyazo.com/68bd384455fceb0a85a8729e48216e15 + inline Void ThefeedSetBackgroundColorForNextPost(int hudColorIndex) { return _i(0x92F0DA1E27DB96DC, hudColorIndex); } // 0x92f0da1e27db96dc0x07ce2ea4B323 + inline Void ThefeedSetRgbaParameterForNextMessage(int red, int green, int blue, int alpha) { return _i(0x17430B918701C342, red, green, blue, alpha); } // 0x17430b918701c3420xcf14d7f2B323 + // Related to notification color flashing, setting count to 0 invalidates a `ThefeedSetRgbaParameterForNextMessage` call for the target notification. + inline Void ThefeedSetFlashDurationParameterForNextMessage(int count) { return _i(0x17AD8C9706BDD88A, count); } // 0x17ad8c9706bdd88a0x24a97af8B323 + inline Void ThefeedSetVibrateParameterForNextMessage(BOOL toggle) { return _i(0x4A0C7C9BB10ABB36, toggle); } // 0x4a0c7c9bb10abb360x44018edbB323 + inline Void ThefeedResetAllParameters() { return _i(0xFDD85225B2DEA55E); } // 0xfdd85225b2dea55e0xa4524b23B323 + // Requires manual management of game stream handles (i.e., 0xBE4390CB40B3E627). + inline Void ThefeedFreezeNextPost() { return _i(0xFDEC055AB549E328); } // 0xfdec055ab549e3280xafa1148bB323 + inline Void ThefeedClearFrozenPost() { return _i(0x80FE4F3AB4E1B62A); } // 0x80fe4f3ab4e1b62a0x3cd4307cB323 + inline Void ThefeedSetSnapFeedItemPositions(BOOL p0) { return _i(0xBAE4F9B97CD43B30, p0); } // 0xbae4f9b97cd43b30B323 + // Used in the native scripts to reference "GetPedheadshotTxdString" and "CHAR_DEFAULT". + inline Void ThefeedUpdateItemTexture(String txdString1, String txnString1, String txdString2, String txnString2) { return _i(0x317EBA71D7543F52, txdString1, txnString1, txdString2, txnString2); } // 0x317eba71d7543f520x6a3f747dB323 + // Declares the entry type of a notification, for example "STRING". + // + // int ShowNotification(char *text) + // { + // BeginTextCommandThefeedPost("STRING"); + // AddTextComponentSubstringPlayerName(text); + // return EndTextCommandThefeedPostTicker(1, 1); + // } + inline Void BeginTextCommandThefeedPost(String text) { return _i(0x202709F4C58A0424, text); } // 0x202709f4c58a04240x574ee85cB323 + // List of picture names: https://pastebin.com/XdpJVbHz + // Example result: https://i.imgur.com/SdEZ22m.png + inline int EndTextCommandThefeedPostStats(String statTitle, int iconEnum, BOOL stepVal, int barValue, BOOL isImportant, String pictureTextureDict, String pictureTextureName) { return _i(0x2B7E9A4EAAA93C89, statTitle, iconEnum, stepVal, barValue, isImportant, pictureTextureDict, pictureTextureName); } // 0x2b7e9a4eaaa93c890xed130fa1B323 + // This function can show pictures of every texture that can be requested by RequestStreamedTextureDict. + // + // List of picNames: https://pastebin.com/XdpJVbHz + // + // + // flash is a BOOL for fading in. + // iconTypes: + // 1 : Chat Box + // 2 : Email + // 3 : Add Friend Request + // 4 : Nothing + // 5 : Nothing + // 6 : Nothing + // 7 : Right Jumping Arrow + // 8 : RP Icon + // 9 : $ Icon + // + // "sender" is the very top header. This can be any old string. + // "subject" is the header under the sender. + inline int EndTextCommandThefeedPostMessagetext(String txdName, String textureName, BOOL flash, int iconType, String sender, String subject) { return _i(0x1CCD9A37359072CF, txdName, textureName, flash, iconType, sender, subject); } // 0x1ccd9a37359072cf0xe7e3c98bB323 + // This function can show pictures of every texture that can be requested by RequestStreamedTextureDict. + // + // Needs more research. + // + // Only one type of usage in the scripts: + // + // HUD::EndTextCommandThefeedPostMessagetextSubtitleLabel("CHAR_ACTING_UP", "CHAR_ACTING_UP", 0, 0, "DI_FEED_CHAR", a_0); + inline int EndTextCommandThefeedPostMessagetextSubtitleLabel(String txdName, String textureName, BOOL flash, int iconType, String sender, String subject) { return _i(0xC6F580E4C94926AC, txdName, textureName, flash, iconType, sender, subject); } // 0xc6f580e4c94926acB323 + // This function can show pictures of every texture that can be requested by RequestStreamedTextureDict. + // + // NOTE: 'duration' is a multiplier, so 1.0 is normal, 2.0 is twice as long (very slow), and 0.5 is half as long. + // + // Example, only occurrence in the scripts: + // v_8 = HUD::EndTextCommandThefeedPostMessagetextTu("CHAR_SOCIAL_CLUB", "CHAR_SOCIAL_CLUB", 0, 0, &v_9, "", a_5); + inline int EndTextCommandThefeedPostMessagetextTu(String txdName, String textureName, BOOL flash, int iconType, String sender, String subject, float duration) { return _i(0x1E6611149DB3DB6B, txdName, textureName, flash, iconType, sender, subject, duration); } // 0x1e6611149db3db6b0x0eb382b7B323 + // This function can show pictures of every texture that can be requested by RequestStreamedTextureDict. + // + // List of picNames https://pastebin.com/XdpJVbHz + // + // flash is a BOOL for fading in. + // iconTypes: + // 1 : Chat Box + // 2 : Email + // 3 : Add Friend Request + // 4 : Nothing + // 5 : Nothing + // 6 : Nothing + // 7 : Right Jumping Arrow + // 8 : RP Icon + // 9 : $ Icon + // + // "sender" is the very top header. This can be any old string. + // "subject" is the header under the sender. + // "duration" is a multiplier, so 1.0 is normal, 2.0 is twice as long (very slow), and 0.5 is half as long. + // "clanTag" shows a crew tag in the "sender" header, after the text. You need to use 3 underscores as padding. Maximum length of this field seems to be 7. (e.g. "MK" becomes "___MK", "ACE" becomes "___ACE", etc.) + inline int EndTextCommandThefeedPostMessagetextWithCrewTag(String txdName, String textureName, BOOL flash, int iconType, String sender, String subject, float duration, String clanTag) { return _i(0x5CBF7BADE20DB93E, txdName, textureName, flash, iconType, sender, subject, duration, clanTag); } // 0x5cbf7bade20db93e0x3e807fe3B323 + // This function can show pictures of every texture that can be requested by RequestStreamedTextureDict. + // + // List of picNames: https://pastebin.com/XdpJVbHz + // + // flash is a BOOL for fading in. + // iconTypes: + // 1 : Chat Box + // 2 : Email + // 3 : Add Friend Request + // 4 : Nothing + // 5 : Nothing + // 6 : Nothing + // 7 : Right Jumping Arrow + // 8 : RP Icon + // 9 : $ Icon + // + // "sender" is the very top header. This can be any old string. + // "subject" is the header under the sender. + // "duration" is a multiplier, so 1.0 is normal, 2.0 is twice as long (very slow), and 0.5 is half as long. + // "clanTag" shows a crew tag in the "sender" header, after the text. You need to use 3 underscores as padding. Maximum length of this field seems to be 7. (e.g. "MK" becomes "___MK", "ACE" becomes "___ACE", etc.) + // iconType2 is a mirror of iconType. It shows in the "subject" line, right under the original iconType. + // + // + // int IconNotification(char *text, char *text2, char *Subject) + // { + // BeginTextCommandThefeedPost("STRING"); + // AddTextComponentSubstringPlayerName(text); + // _SET_NOTIFICATION_MESSAGE_CLAN_TAG_2("CHAR_SOCIAL_CLUB", "CHAR_SOCIAL_CLUB", 1, 7, text2, Subject, 1.0f, "__EXAMPLE", 7); + // return EndTextCommandThefeedPostTicker(1, 1); + // } + inline int EndTextCommandThefeedPostMessagetextWithCrewTagAndAdditionalIcon(String txdName, String textureName, BOOL flash, int iconType1, String sender, String subject, float duration, String clanTag, int iconType2, int p9) { return _i(0x531B84E7DA981FB6, txdName, textureName, flash, iconType1, sender, subject, duration, clanTag, iconType2, p9); } // 0x531b84e7da981fb60xdeb491c8B323 + inline int EndTextCommandThefeedPostTicker(BOOL blink, BOOL p1) { return _i(0x2ED7843F8F801023, blink, p1); } // 0x2ed7843f8f8010230x08f7af78B323 + inline int EndTextCommandThefeedPostTickerForced(BOOL blink, BOOL p1) { return _i(0x44FA03975424A0EE, blink, p1); } // 0x44fa03975424a0ee0x57b8d0d4B323 + inline int EndTextCommandThefeedPostTickerWithTokens(BOOL blink, BOOL p1) { return _i(0x378E809BF61EC840, blink, p1); } // 0x378e809bf61ec8400x02bcaf9bB323 + // Shows an "award" notification above the minimap, example: https://i.imgur.com/e2DNaKX.png + // Example: + // + // HUD::BeginTextCommandThefeedPost("HUNT"); + // HUD::EndTextCommandThefeedPostAward("Hunting", "Hunting_Gold_128", 0, 109, "HUD_MED_UNLKED"); + inline int EndTextCommandThefeedPostAward(String textureDict, String textureName, int rpBonus, int colorOverlay, String titleLabel) { return _i(0xAA295B6F28BD587D, textureDict, textureName, rpBonus, colorOverlay, titleLabel); } // 0xaa295b6f28bd587d0x02ded2b8B323 + inline int EndTextCommandThefeedPostCrewtag(BOOL p0, BOOL p1, int* p2, int p3, BOOL isLeader, BOOL unk0, int clanDesc, int R, int G, int B) { return _i(0x97C9E4E7024A8F2C, p0, p1, p2, p3, isLeader, unk0, clanDesc, R, G, B); } // 0x97c9e4e7024a8f2c0xa9ccef66B323 + inline int EndTextCommandThefeedPostCrewtagWithGameName(BOOL p0, BOOL p1, int* p2, int p3, BOOL isLeader, BOOL unk0, int clanDesc, String playerName, int R, int G, int B) { return _i(0x137BC35589E34E1E, p0, p1, p2, p3, isLeader, unk0, clanDesc, playerName, R, G, B); } // 0x137bc35589e34e1e0x88b9b909B323 + inline int EndTextCommandThefeedPostUnlock(String gxtLabel1, int p1, String gxtLabel2) { return _i(0x33EE12743CCD6343, gxtLabel1, p1, gxtLabel2); } // 0x33ee12743ccd63430xe05e7052B323 + inline int EndTextCommandThefeedPostUnlockTu(String gxtLabel1, int p1, String gxtLabel2, int p3) { return _i(0xC8F3AAF93D0600BF, gxtLabel1, p1, gxtLabel2, p3); } // 0xc8f3aaf93d0600bf0x4fa43ba4B323 + inline int EndTextCommandThefeedPostUnlockTuWithColor(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0x7AE0589093A2E088, p0, p1, p2, p3, p4, p5); } // 0x7ae0589093a2e0880x8c90d22fB323 + inline int EndTextCommandThefeedPostMpticker(BOOL blink, BOOL p1) { return _i(0xF020C96915705B3A, blink, p1); } // 0xf020c96915705b3a0x8e319ab8B323 + inline int EndTextCommandThefeedPostCrewRankupWithLiteralFlag(String p0, String p1, String p2, BOOL p3, BOOL p4) { return _i(0x8EFCCF6EC66D85E4, p0, p1, p2, p3, p4); } // 0x8efccf6ec66d85e4B323 + // This function can show pictures of every texture that can be requested by RequestStreamedTextureDict. + // + // List of picNames: https://pastebin.com/XdpJVbHz + // HUD colors and their values: https://pastebin.com/d9aHPbXN + // + // Shows a deathmatch score above the minimap, example: https://i.imgur.com/YmoMklG.png + inline int EndTextCommandThefeedPostVersusTu(String txdName1, String textureName1, int count1, String txdName2, String textureName2, int count2, int hudColor1, int hudColor2) { return _i(0xB6871B0555B02996, txdName1, textureName1, count1, txdName2, textureName2, count2, hudColor1, hudColor2); } // 0xb6871b0555b029960x5e93fbfaB323 + // returns a notification handle, prints out a notification like below: + // type range: 0 - 2 + // if you set type to 1, image goes from 0 - 39 - Xbox you can add text to + // + // example: + // HUD::EndTextCommandThefeedPostReplayInput(1, 20, "Who you trynna get crazy with, ese? Don't you know I'm LOCO?!"); + // - https://imgur.com/lGBPCz3 + inline int EndTextCommandThefeedPostReplay(int type, int image, String text) { return _i(0xD202B92CBF1D816F, type, image, text); } // 0xd202b92cbf1d816fB323 + // returns a notification handle, prints out a notification like below: + // type range: 0 - 2 + // if you set type to 1, button accepts "~INPUT_SOMETHING~" + // + // example: + // HUD::EndTextCommandThefeedPostReplayInput(1, "~INPUT_TALK~", "Who you trynna get crazy with, ese? Don't you know I'm LOCO?!"); + // - https://imgur.com/UPy0Ial + // + // + // Examples from the scripts: + // l_D1[1/*1*/]=HUD::EndTextCommandThefeedPostReplayInput(1,"~INPUT_REPLAY_START_STOP_RECORDING~",""); + // l_D1[2/*1*/]=HUD::EndTextCommandThefeedPostReplayInput(1,"~INPUT_SAVE_REPLAY_CLIP~",""); + // l_D1[1/*1*/]=HUD::EndTextCommandThefeedPostReplayInput(1,"~INPUT_REPLAY_START_STOP_RECORDING~",""); + // l_D1[2/*1*/]=HUD::EndTextCommandThefeedPostReplayInput(1,"~INPUT_REPLAY_START_STOP_RECORDING_SECONDARY~",""); + // + inline int EndTextCommandThefeedPostReplayInput(int type, String button, String text) { return _i(0xDD6CB2CCE7C2735C, type, button, text); } // 0xdd6cb2cce7c2735cB323 + // Void ShowSubtitle(const char *text) + // { + // BeginTextCommandPrint("STRING"); + // AddTextComponentSubstringPlayerName(text); + // EndTextCommandPrint(2000, true); + // } + inline Void BeginTextCommandPrint(String GxtEntry) { return _i(0xB87A37EEB7FAA67D, GxtEntry); } // 0xb87a37eeb7faa67d0xf42c43c7B323 + // Draws the subtitle at middle center of the screen. + // + // int duration = time in milliseconds to show text on screen before disappearing + // + // drawImmediately = If true, the text will be drawn immediately, if false, the text will be drawn after the previous subtitle has finished + // + // Used to be known as _DRAW_SUBTITLE_TIMED + inline Void EndTextCommandPrint(int duration, BOOL drawImmediately) { return _i(0x9D77056A530643F6, duration, drawImmediately); } // 0x9d77056a530643f60x38f82261B323 + // nothin doin. + // + // BOOL Message(String text) + // { + // BeginTextCommandIsMessageDisplayed("STRING"); + // AddTextComponentSubstringPlayerName(text); + // return EndTextCommandIsMessageDisplayed(); + // } + inline Void BeginTextCommandIsMessageDisplayed(String text) { return _i(0x853648FD1063A213, text); } // 0x853648fd1063a2130xdd524a11B323 + inline BOOL EndTextCommandIsMessageDisplayed() { return _i(0x8A9BA1AB3E237613); } // 0x8a9ba1ab3e2376130x672efb45B323 + // The following were found in the decompiled script files: + // STRING, TWOSTRINGS, NUMBER, PERCENTAGE, FO_TWO_NUM, ESMINDOLLA, ESDOLLA, MTPHPER_XPNO, AHD_DIST, CMOD_STAT_0, CMOD_STAT_1, CMOD_STAT_2, CMOD_STAT_3, DFLT_MNU_OPT, F3A_TRAFDEST, ES_HELP_SOC3 + // + // ESDOLLA - cash + // ESMINDOLLA - cash (negative) + // + // Used to be known as _SET_TEXT_ENTRY + inline Void BeginTextCommandDisplayText(String text) { return _i(0x25FBB336DF1804CB, text); } // 0x25fbb336df1804cb0x3e35563eB323 + // After applying the properties to the text (See HUD::SET_TEXT_), this will draw the text in the applied position. Also 0.0f < x, y < 1.0f, percentage of the axis. + // + // Used to be known as _DRAW_TEXT + inline Void EndTextCommandDisplayText(float x, float y, int p2) { return _i(0xCD015E5BB0D96A57, x, y, p2); } // 0xcd015e5bb0d96a570x6f8350ceB323 + inline Void BeginTextCommandGetScreenWidthOfDisplayText(String text) { return _i(0x54CE8AC98E120CAB, text); } // 0x54ce8ac98e120cab0x51e7a037B323 + inline float EndTextCommandGetScreenWidthOfDisplayText(BOOL p0) { return _i(0x85F061DA64ED2F67, p0); } // 0x85f061da64ed2f670xd12a643aB323 + // int GetLineCount(char *text, float x, float y) + // { + // BeginTextCommandGetNumberOfLinesForString("STRING"); + // AddTextComponentSubstringPlayerName(text); + // return BeginTextCommandGetNumberOfLinesForString(x, y); + // } + inline Void BeginTextCommandGetNumberOfLinesForString(String entry) { return _i(0x521FB041D93DD0E4, entry); } // 0x521fb041d93dd0e40x94b82066B323 + // Determines how many lines the text string will use when drawn on screen. + // Must use 0x521FB041D93DD0E4 for setting up + inline int EndTextCommandGetNumberOfLinesForString(float x, float y) { return _i(0x9040DFB09BE75706, x, y); } // 0x9040dfb09be757060xaa318785B323 + // Used to be known as _SET_TEXT_COMPONENT_FORMAT + inline Void BeginTextCommandDisplayHelp(String inputType) { return _i(0x8509B634FBE7DA11, inputType); } // 0x8509b634fbe7da110xb245fc10B323 + // shape goes from -1 to 50 (may be more). + // p0 is always 0. + // + // Example: + // Void FloatingHelpText(String text) + // { + // BeginTextCommandDisplayHelp("STRING"); + // AddTextComponentSubstringPlayerName(text); + // EndTextCommandDisplayHelp (0, 0, 1, -1); + // } + // + // Image: + // - imgbin.org/images/26209.jpg + // + // more inputs/icons: + // - https://pastebin.com/nqNYWMSB + // + // Used to be known as _DISPLAY_HELP_TEXT_FROM_STRING_LABEL + inline Void EndTextCommandDisplayHelp(int p0, BOOL loop, BOOL beep, int shape) { return _i(0x238FFE5C7B0498A6, p0, loop, beep, shape); } // 0x238ffe5c7b0498a60xb59b530dB323 + // BOOL IsContextActive(char *ctx) + // { + // BeginTextCommandIsThisHelpMessageBeingDisplayed(ctx); + // return EndTextCommandIsThisHelpMessageBeingDisplayed(0); + // } + inline Void BeginTextCommandIsThisHelpMessageBeingDisplayed(String labelName) { return _i(0x0A24DA3A41B718F5, labelName); } // 0x0a24da3a41b718f50x00e20f2dB323 + inline BOOL EndTextCommandIsThisHelpMessageBeingDisplayed(int p0) { return _i(0x10BDDBFC529428DD, p0); } // 0x10bddbfc529428dd0xf63a13ecB323 + // Starts a text command to change the name of a blip displayed in the pause menu. + // This should be paired with `EndTextCommandSetBlipName`, once adding all required text components. + // Example: + // + // HUD::BeginTextCommandSetBlipName("STRING"); + // HUD::AddTextComponentSubstringPlayerName("Name"); + // HUD::EndTextCommandSetBlipName(blip); + inline Void BeginTextCommandSetBlipName(String textLabel) { return _i(0xF9113A30DE5C6670, textLabel); } // 0xf9113a30de5c66700xf4c211f6B323 + // Finalizes a text command started with BeginTextCommandSetBlipName, setting the name of the specified blip. + inline Void EndTextCommandSetBlipName(Blip blip) { return _i(0xBC38B49BCB83BC9B, blip); } // 0xbc38b49bcb83bc9b0xe8e59820B323 + inline Void BeginTextCommandAddDirectlyToPreviousBriefs(String p0) { return _i(0x23D69E0465570028, p0); } // 0x23d69e04655700280x0e103475B323 + inline Void EndTextCommandAddDirectlyToPreviousBriefs(BOOL p0) { return _i(0xCFDBDF5AE59BA0F4, p0); } // 0xcfdbdf5ae59ba0f40x2944a6c5B323 + // clears a print text command with this text + inline Void BeginTextCommandClearPrint(String text) { return _i(0xE124FA80A759019C, text); } // 0xe124fa80a759019c0x550665aeB323 + inline Void EndTextCommandClearPrint() { return _i(0xFCC75460ABA29378); } // 0xfcc75460aba293780x67785af2B323 + inline Void BeginTextCommandOverrideButtonText(String gxtEntry) { return _i(0x8F9EE5687F8EECCD, gxtEntry); } // 0x8f9ee5687f8eeccd0xbf855650B323 + inline Void EndTextCommandOverrideButtonText(int p0) { return _i(0xA86911979638106F, p0); } // 0xa86911979638106f0x6e7fda1cB323 + inline Void AddTextComponentInteger(int value) { return _i(0x03B504CF259931BC, value); } // 0x03b504cf259931bc0xfe272a57B323 + inline Void AddTextComponentFloat(float value, int decimalPlaces) { return _i(0xE7DCB5B874BCD96E, value, decimalPlaces); } // 0xe7dcb5b874bcd96e0x24d78013B323 + inline Void AddTextComponentSubstringTextLabel(String labelName) { return _i(0xC63CD5D2920ACBE7, labelName); } // 0xc63cd5d2920acbe70xdce05406B323 + // It adds the localized text of the specified GXT entry name. Eg. if the argument is GetHashKey("ES_HELP"), adds "Continue". Just uses a text labels hash key + inline Void AddTextComponentSubstringTextLabelHashKey(Hash gxtEntryHash) { return _i(0x17299B63C7683A2B, gxtEntryHash); } // 0x17299b63c7683a2b0x150e03b6B323 + inline Void AddTextComponentSubstringBlipName(Blip blip) { return _i(0x80EAD8E2E1D5D52E, blip); } // 0x80ead8e2e1d5d52e0x5de98f0aB323 + inline Void AddTextComponentSubstringPlayerName(String text) { return _i(0x6C188BE134E074AA, text); } // 0x6c188be134e074aa0x27a244d8B323 + // Adds a timer (e.g. "00:00:00:000"). The appearance of the timer depends on the flags, which needs more research. + inline Void AddTextComponentSubstringTime(int timestamp, int flags) { return _i(0x1115F16B8AB9E8BF, timestamp, flags); } // 0x1115f16b8ab9e8bf0x135b3cd0B323 + inline Void AddTextComponentFormattedInteger(int value, BOOL commaSeparated) { return _i(0x0E4C749FF9DE9CC4, value, commaSeparated); } // 0x0e4c749ff9de9cc40x12929bdfB323 + // p1 was always -1 + inline Void AddTextComponentSubstringPhoneNumber(String p0, int p1) { return _i(0x761B77454205A61D, p0, p1); } // 0x761b77454205a61d0x65e1d404B323 + // This native (along with AddTextComponentSubstringKeyboardDisplay and AddTextComponentSubstringPlayerName) do not actually filter anything. They simply add the provided text (as of 944) + inline Void AddTextComponentSubstringWebsite(String website) { return _i(0x94CF4AC034C9C986, website); } // 0x94cf4ac034c9c9860xc736999eB323 + inline Void AddTextComponentSubstringKeyboardDisplay(String string) { return _i(0x5F68520888E69014, string); } // 0x5f68520888e690140x0829a799B323 + inline Void SetColourOfNextTextComponent(int hudColor) { return _i(0x39BBF623FC803EAC, hudColor); } // 0x39bbf623fc803eac0x6f1a1901B323 + // Returns a substring of a specified length starting at a specified position. + // + // Example: + // // Get "STRING" text from "MY_STRING" + // subStr = HUD::GetCharacterFromAudioConversationFilename("MY_STRING", 3, 6); + inline String GetCharacterFromAudioConversationFilename(String text, int position, int length) { return _i(0x169BD9382084C8C0, text, position, length); } // 0x169bd9382084c8c00x34a396eeB323 + // Returns a substring of a specified length starting at a specified position. The result is guaranteed not to exceed the specified max length. + // + // NOTE: The 'maxLength' parameter might actually be the size of the buffer that is returned. More research is needed. -CL69 + // + // Example: + // // Condensed example of how Rockstar uses this function + // strLen = HUD::GetLengthOfLiteralString(MISC::GetOnscreenKeyboardResult()); + // subStr = HUD::GetCharacterFromAudioConversationFilenameWithByteLimit(MISC::GetOnscreenKeyboardResult(), 0, strLen, 63); + // + // -- + // + // "fm_race_creator.ysc", line 85115: + // // parameters modified for clarity + // BOOL sub_8e5aa(char *text, int length) { + // for (i = 0; i <= (length - 2); i += 1) { + // if (!MISC::AreStringsEqual(HUD::GetCharacterFromAudioConversationFilenameWithByteLimit(text, i, i + 1, 1), " ")) { + // return FALSE; + // } + // } + // return TRUE; + // } + inline String GetCharacterFromAudioConversationFilenameWithByteLimit(String text, int position, int length, int maxLength) { return _i(0xB2798643312205C5, text, position, length, maxLength); } // 0xb2798643312205c50x0183a66cB323 + // Returns a substring that is between two specified positions. The length of the string will be calculated using (endPosition - startPosition). + // + // Example: + // // Get "STRING" text from "MY_STRING" + // subStr = HUD::GetCharacterFromAudioConversationFilenameBytes("MY_STRING", 3, 9); + // // Overflows are possibly replaced with underscores (needs verification) + // subStr = HUD::GetCharacterFromAudioConversationFilenameBytes("MY_STRING", 3, 10); // "STRING_"? + inline String GetCharacterFromAudioConversationFilenameBytes(String text, int startPosition, int endPosition) { return _i(0xCE94AEBA5D82908A, text, startPosition, endPosition); } // 0xce94aeba5d82908a0xfa6373bbB323 + // Gets a localized string literal from a label name. Can be used for output of e.g. VEHICLE::GetLiveryName. To check if a GXT label can be localized with this, HUD::DoesTextLabelExist can be used. + inline String GetFilenameForAudioConversation(String labelName) { return _i(0x7B5280EBA9840C72, labelName); } // 0x7b5280eba9840c720x95c4b5adB323 + inline Void ClearPrints() { return _i(0xCC33FA791322B9D9); } // 0xcc33fa791322b9d90x216cb1c5B323 + inline Void ClearBrief() { return _i(0x9D292F73ADBD9313); } // 0x9d292f73adbd93130x9f75a929B323 + inline Void ClearAllHelpMessages() { return _i(0x6178F68A87A4D3A0); } // 0x6178f68a87a4d3a00x9e5d9198B323 + // p0: found arguments in the b617d scripts: https://pastebin.com/X5akCN7z + inline Void ClearThisPrint(String p0) { return _i(0xCF708001E1E536DD, p0); } // 0xcf708001e1e536dd0x06878327B323 + inline Void ClearSmallPrints() { return _i(0x2CEA2839313C09AC); } // 0x2cea2839313c09ac0xa869a238B323 + inline BOOL DoesTextBlockExist(String gxt) { return _i(0x1C7302E725259789, gxt); } // 0x1c7302e7252597890x96f74838B323 + // Request a gxt into the passed slot. + inline Void RequestAdditionalText(String gxt, int slot) { return _i(0x71A78003C8E71424, gxt, slot); } // 0x71a78003c8e714240x9fa9175bB323 + inline Void RequestAdditionalTextForDlc(String gxt, int slot) { return _i(0x6009F9F1AE90D8A6, gxt, slot); } // 0x6009f9f1ae90d8a60xf4d27ebeB323 + inline BOOL HasAdditionalTextLoaded(int slot) { return _i(0x02245FE4BED318B8, slot); } // 0x02245fe4bed318b80xb0e56045B323 + inline Void ClearAdditionalText(int p0, BOOL p1) { return _i(0x2A179DF17CCF04CD, p0, p1); } // 0x2a179df17ccf04cd0x518141e0B323 + inline BOOL IsStreamingAdditionalText(int p0) { return _i(0x8B6817B71B85EBF0, p0); } // 0x8b6817b71b85ebf00xf079e4ebB323 + // Checks if the specified gxt has loaded into the passed slot. + inline BOOL HasThisAdditionalTextLoaded(String gxt, int slot) { return _i(0xADBF060E2B30C5BC, gxt, slot); } // 0xadbf060e2b30c5bc0x80a52040B323 + inline BOOL IsMessageBeingDisplayed() { return _i(0x7984C03AA5CC2F41); } // 0x7984c03aa5cc2f410x6a77fe8dB323 + // Checks if the passed gxt name exists in the game files. + inline BOOL DoesTextLabelExist(String gxt) { return _i(0xAC09CA973C564252, gxt); } // 0xac09ca973c5642520x6ecae560B323 + inline String GetFirstNCharactersOfLiteralString(String string, int length) { return _i(0x98C3CF913D895111, string, length); } // 0x98c3cf913d895111B505 + // Returns the string length of the string from the gxt string . + inline int GetLengthOfStringWithThisTextLabel(String gxt) { return _i(0x801BD273D3A23F74, gxt); } // 0x801bd273d3a23f740xa4ca7be5B323 + // Returns the length of the string passed (much like strlen). + inline int GetLengthOfLiteralString(String string) { return _i(0xF030907CCBB8A9FD, string); } // 0xf030907ccbb8a9fd0x99379d55B323 + inline int GetLengthOfLiteralStringInBytes(String string) { return _i(0x43E4111189E54F0E, string); } // 0x43e4111189e54f0e0x7dbc0764B323 + // This functions converts the hash of a street name into a readable string. + // + // For how to get the hashes, see PATHFIND::GetStreetNameAtCoord. + inline String GetStreetNameFromHashKey(Hash hash) { return _i(0xD0EF8A959B8A4CB9, hash); } // 0xd0ef8a959b8a4cb90x1e8e310cB323 + inline BOOL IsHudPreferenceSwitchedOn() { return _i(0x1930DFA731813EC4); } // 0x1930dfa731813ec40xc3bc1b4fB323 + inline BOOL IsRadarPreferenceSwitchedOn() { return _i(0x9EB6522EA68F22FE); } // 0x9eb6522ea68f22fe0x14aeaa28B323 + inline BOOL IsSubtitlePreferenceSwitchedOn() { return _i(0xAD6DACA4BA53E0A4); } // 0xad6daca4ba53e0a40x63ba19f5B323 + // If Hud should be displayed + inline Void DisplayHud(BOOL toggle) { return _i(0xA6294919E56FF02A, toggle); } // 0xa6294919e56ff02a0xd10e4e31B323 + // Enables drawing some hud components, such as help labels, this frame, when the player is dead. + inline Void DisplayHudWhenNotInStateOfPlayThisFrame() { return _i(0x7669F9E39DC17063); } // 0x7669f9e39dc170630xc380ac85B323 + inline Void DisplayHudWhenPausedThisFrame() { return _i(0x402F9ED62087E898); } // 0x402f9ed62087e8980xc47ab1b0B323 + // If Minimap / Radar should be displayed. + inline Void DisplayRadar(BOOL toggle) { return _i(0xA0EBB943C300E693, toggle); } // 0xa0ebb943c300e6930x52816bd4B323 + // Setter for GetFakeSpectatorMode + inline Void SetFakeSpectatorMode(BOOL toggle) { return _i(0xCD74233600C4EA6B, toggle); } // 0xcd74233600c4ea6bB505 + // Getter for SetFakeSpectatorMode + inline BOOL GetFakeSpectatorMode() { return _i(0xC2D2AD9EAAE265B8); } // 0xc2d2ad9eaae265b8B505 + inline BOOL IsHudHidden() { return _i(0xA86478C6958735C5); } // 0xa86478c6958735c50x40bada1dB323 + inline BOOL IsRadarHidden() { return _i(0x157F93B036700462); } // 0x157f93b0367004620x1ab3b954B323 + inline BOOL IsMinimapRendering() { return _i(0xAF754F20EB5CD51A); } // 0xaf754f20eb5cd51a0x9cd18314B323 + inline Void UseVehicleTargetingReticule(Any p0) { return _i(0x0C698D8F099174C7, p0); } // 0x0c698d8f099174c7B1180 + inline Void UseVehicleTargetingReticuleOnVehicles(BOOL enable) { return _i(0x1BC0EA2912708625, enable); } // 0x1bc0ea2912708625B3095 + inline Void AddValidVehicleHitHash(Any p0) { return _i(0xE4C3B169876D33D7, p0); } // 0xe4c3b169876d33d7B1290 + inline Void ClearValidVehicleHitHashes() { return _i(0xEB81A3DADD503187); } // 0xeb81a3dadd503187B1290 + // Enable / disable showing route for the Blip-object. + inline Void SetBlipRoute(Blip blip, BOOL enabled) { return _i(0x4F7D8A9BFB0B43E9, blip, enabled); } // 0x4f7d8a9bfb0b43e90x3e160c90B323 + inline Void ClearAllBlipRoutes() { return _i(0xD12882D3FF82BF11); } // 0xd12882d3ff82bf11B877 + inline Void SetBlipRouteColour(Blip blip, int colour) { return _i(0x837155CD2F63DA09, blip, colour); } // 0x837155cd2f63da090xdde7c65cB323 + inline Void SetForceShowGps(BOOL toggle) { return _i(0x2790F4B17D098E26, toggle); } // 0x2790f4b17d098e26B573 + inline Void SetUseSetDestinationInPauseMap(BOOL toggle) { return _i(0x6CDD58146A436083, toggle); } // 0x6cdd58146a436083B573 + inline Void SetBlockWantedFlash(BOOL disabled) { return _i(0xD1942374085C8469, disabled); } // 0xd1942374085c8469B505 + inline Void AddNextMessageToPreviousBriefs(BOOL p0) { return _i(0x60296AF4BA14ABC5, p0); } // 0x60296af4ba14abc50xb58b25bdB323 + inline Void ForceNextMessageToPreviousBriefsList(int p0) { return _i(0x57D760D55F54E071, p0); } // 0x57d760d55f54e0710x9854485fB323 + // zoom ranges from 0 to 90f in R* Scripts + inline Void SetRadarZoomPrecise(float zoom) { return _i(0xBD12C5EEE184C337, zoom); } // 0xbd12c5eee184c3370xdca3f423B323 + // zoomLevel ranges from 0 to 1400 in R* Scripts + inline Void SetRadarZoom(int zoomLevel) { return _i(0x096EF57A0C999BBA, zoomLevel); } // 0x096ef57a0c999bba0x2a50d1a6B323 + inline Void SetRadarZoomToBlip(Blip blip, float zoom) { return _i(0xF98E4B3E56AFC7B1, blip, zoom); } // 0xf98e4b3e56afc7b10x25ec28c0B323 + inline Void SetRadarZoomToDistance(float zoom) { return _i(0xCB7CC0D58405AD41, zoom); } // 0xcb7cc0d58405ad410x09cf1ce5B323 + // Does nothing (it's a nullsub). + inline Void UpdateRadarZoomToBlip() { return _i(0xD2049635DEB9C375); } // 0xd2049635deb9c3750xe8d3a910B323 + inline Void GetHudColour(int hudColorIndex, int* r, int* g, int* b, int* a) { return _i(0x7C9C91AB74A0360F, hudColorIndex, r, g, b, a); } // 0x7c9c91ab74a0360f0x63f66a0bB323 + // Sets the color of HUD_COLOUR_SCRIPT_VARIABLE + inline Void SetScriptVariableHudColour(int r, int g, int b, int a) { return _i(0xD68A5FF8A3A89874, r, g, b, a); } // 0xd68a5ff8a3a898740x0e41e45cB323 + // Sets the color of HUD_COLOUR_SCRIPT_VARIABLE_2 + inline Void SetSecondScriptVariableHudColour(int r, int g, int b, int a) { return _i(0x16A304E6CB2BFAB9, r, g, b, a); } // 0x16a304e6cb2bfab90x6be3aca8B323 + // makes hudColorIndex2 color into hudColorIndex color + inline Void ReplaceHudColour(int hudColorIndex, int hudColorIndex2) { return _i(0x1CCC708F0F850613, hudColorIndex, hudColorIndex2); } // 0x1ccc708f0f8506130x3b216749B323 + inline Void ReplaceHudColourWithRgba(int hudColorIndex, int r, int g, int b, int a) { return _i(0xF314CF4F0211894E, hudColorIndex, r, g, b, a); } // 0xf314cf4f0211894e0xf6e7e92bB323 + inline Void SetAbilityBarVisibility(BOOL visible) { return _i(0x1DFEDD15019315A9, visible); } // 0x1dfedd15019315a9B1493 + inline Void SetAllowAbilityBar(BOOL toggle) { return _i(0x889329C80FE5963C, toggle); } // 0x889329c80fe5963cB1868 + inline Void FlashAbilityBar(int millisecondsToFlash) { return _i(0x02CFBA0C9E9275CE, millisecondsToFlash); } // 0x02cfba0c9e9275ce0x3648960dB323 + inline Void SetAbilityBarValue(float p0, float p1) { return _i(0x9969599CCFF5D85E, p0, p1); } // 0x9969599ccff5d85e0x24e53fd8B323 + inline Void FlashWantedDisplay(BOOL p0) { return _i(0xA18AFB39081B6A1F, p0); } // 0xa18afb39081b6a1f0x629f866bB323 + inline Void ForceOffWantedStarFlash(BOOL toggle) { return _i(0xBA8D65C1C65702E5, toggle); } // 0xba8d65c1c65702e50x58612465B323 + inline Void SetCustomMpHudColor(int hudColorId) { return _i(0x2ACCB195F3CCD9DE, hudColorId); } // 0x2accb195f3ccd9deB2545 + // This gets the height of the FONT and not the total text. You need to get the number of lines your text uses, and get the height of a newline (I'm using a smaller value) to get the total text height. + inline float GetRenderedCharacterHeight(float size, int font) { return _i(0xDB88A37483346780, size, font); } // 0xdb88a374833467800x3330175bB323 + // Size range : 0F to 1.0F + // p0 is unknown and doesn't seem to have an effect, yet in the game scripts it changes to 1.0F sometimes. + inline Void SetTextScale(float scale, float size) { return _i(0x07C837F9A01C34C9, scale, size); } // 0x07c837f9a01c34c90xb6e15b23B323 + // colors you input not same as you think? + // A: for some reason its R B G A + inline Void SetTextColour(int red, int green, int blue, int alpha) { return _i(0xBE6B23FFA53FB442, red, green, blue, alpha); } // 0xbe6b23ffa53fb4420xe54dd2c8B323 + inline Void SetTextCentre(BOOL align) { return _i(0xC02F4DBFB51D988B, align); } // 0xc02f4dbfb51d988b0xe26d39a1B323 + inline Void SetTextRightJustify(BOOL toggle) { return _i(0x6B3C4650BC8BEE47, toggle); } // 0x6b3c4650bc8bee470x45b60520B323 + // Types - + // 0: Center-Justify + // 1: Left-Justify + // 2: Right-Justify + // + // Right-Justify requires SetTextWrap, otherwise it will draw to the far right of the screen + inline Void SetTextJustification(int justifyType) { return _i(0x4E096588B13FFECA, justifyType); } // 0x4e096588b13ffeca0x68cdfa60B323 + inline Void SetTextLineHeightMult(float lineHeightMult) { return _i(0x9F4624F76E6953D1, lineHeightMult); } // 0x9f4624f76e6953d1B3095 + // It sets the text in a specified box and wraps the text if it exceeds the boundries. Both values are for X axis. Useful when positioning text set to center or aligned to the right. + // + // start - left boundry on screen position (0.0 - 1.0) + // end - right boundry on screen position (0.0 - 1.0) + inline Void SetTextWrap(float start, float end) { return _i(0x63145D9C883A1A70, start, end); } // 0x63145d9c883a1a700x6f60ab54B323 + inline Void SetTextLeading(int p0) { return _i(0xA50ABC31E3CDFAFF, p0); } // 0xa50abc31e3cdfaff0x98ce21d4B323 + // This native does absolutely nothing, just a nullsub + inline Void SetTextProportional(BOOL p0) { return _i(0x038C1F517D7FDCF8, p0); } // 0x038c1f517d7fdcf80xf49d8a08B323 + // fonts that mess up your text where made for number values/misc stuff + inline Void SetTextFont(int fontType) { return _i(0x66E0276CC5F6B9DA, fontType); } // 0x66e0276cc5f6b9da0x80bc530dB323 + inline Void SetTextDropShadow() { return _i(0x1CA3E9EAC9D93E5E); } // 0x1ca3e9eac9d93e5e0xe2a11511B323 + // distance - shadow distance in pixels, both horizontal and vertical + // r, g, b, a - color + inline Void SetTextDropshadow(int distance, int r, int g, int b, int a) { return _i(0x465C84BC39F1C351, distance, r, g, b, a); } // 0x465c84bc39f1c3510xe6587517B323 + inline Void SetTextOutline() { return _i(0x2513DFB0FB8400FE); } // 0x2513dfb0fb8400fe0xc753412fB323 + // This native does absolutely nothing, just a nullsub + inline Void SetTextEdge(int p0, int r, int g, int b, int a) { return _i(0x441603240D202FA6, p0, r, g, b, a); } // 0x441603240d202fa60x3f1a5dabB323 + inline Void SetTextRenderId(int renderId) { return _i(0x5F15302936E07111, renderId); } // 0x5f15302936e071110xc5c3b7f3B323 + // This function is hard-coded to always return 1. + inline int GetDefaultScriptRendertargetRenderId() { return _i(0x52F0982D7FD156B6); } // 0x52f0982d7fd156b60x8188935fB323 + inline BOOL RegisterNamedRendertarget(String name, BOOL p1) { return _i(0x57D9C12635E25CE3, name, p1); } // 0x57d9c12635e25ce30xfae5d6f0B323 + inline BOOL IsNamedRendertargetRegistered(String name) { return _i(0x78DCDC15C9F116B4, name); } // 0x78dcdc15c9f116b40x284057f5B323 + inline BOOL ReleaseNamedRendertarget(String name) { return _i(0xE9F6FFE837354DD4, name); } // 0xe9f6ffe837354dd40xd3f6c892B323 + inline Void LinkNamedRendertarget(Hash modelHash) { return _i(0xF6C09E276AEB3F2D, modelHash); } // 0xf6c09e276aeb3f2d0x6844c4b9B323 + inline int GetNamedRendertargetRenderId(String name) { return _i(0x1A6478B61C6BDC3B, name); } // 0x1a6478b61c6bdc3b0xf9d7a401B323 + inline BOOL IsNamedRendertargetLinked(Hash modelHash) { return _i(0x113750538FA31298, modelHash); } // 0x113750538fa312980x8b52601fB323 + inline Void ClearHelp(BOOL toggle) { return _i(0x8DFCED7A656F8802, toggle); } // 0x8dfced7a656f88020xe6d85741B323 + inline BOOL IsHelpMessageOnScreen() { return _i(0xDAD37F45428801AE); } // 0xdad37f45428801ae0x4b3c9ca9B323 + inline BOOL HasScriptHiddenHelpThisFrame() { return _i(0x214CD562A939246A); } // 0x214cd562a939246a0x812cbe0eB323 + inline BOOL IsHelpMessageBeingDisplayed() { return _i(0x4D79439A6B55AC67); } // 0x4d79439a6b55ac670xa65f262aB323 + inline BOOL IsHelpMessageFadingOut() { return _i(0x327EDEEEAC55C369); } // 0x327edeeeac55c3690x3e50ae92B323 + inline Void SetHelpMessageStyle(int style, int hudColor, int alpha, int p3, int p4) { return _i(0xB9C362BABECDDC7A, style, hudColor, alpha, p3, p4); } // 0xb9c362babecddc7aB463 + inline int GetStandardBlipEnumId() { return _i(0x4A9923385BDB9DAD); } // 0x4a9923385bdb9dad0x87871ce0B323 + inline int GetWaypointBlipEnumId() { return _i(0x186E5D252FA50E7D); } // 0x186e5d252fa50e7d0xb9827942B323 + inline int GetNumberOfActiveBlips() { return _i(0x9A3FF3DE163034E8); } // 0x9a3ff3de163034e80x144020faB323 + inline Blip GetNextBlipInfoId(int blipSprite) { return _i(0x14F96AA50D6FBEA7, blipSprite); } // 0x14f96aa50d6fbea70x9356e92fB323 + inline Blip GetFirstBlipInfoId(int blipSprite) { return _i(0x1BEDE233E6CD2A1F, blipSprite); } // 0x1bede233e6cd2a1f0x64c0273dB323 + inline Blip GetClosestBlipInfoId(int blipSprite) { return _i(0xD484BF71050CA1EE, blipSprite); } // 0xd484bf71050ca1eeB1180 + inline Vector3 GetBlipInfoIdCoord(Blip blip) { return _i(0xFA7C7F0AADF25D09, blip); } // 0xfa7c7f0aadf25d090xb7374a66B323 + inline int GetBlipInfoIdDisplay(Blip blip) { return _i(0x1E314167F701DC3B, blip); } // 0x1e314167f701dc3b0xd0fc19f4B323 + // Returns a value based on what the blip is attached to + // 1 - Vehicle + // 2 - Ped + // 3 - Object + // 4 - Coord + // 5 - unk + // 6 - Pickup + // 7 - Radius + inline int GetBlipInfoIdType(Blip blip) { return _i(0xBE9B0959FFD0779B, blip); } // 0xbe9b0959ffd0779b0x501d7b4eB323 + inline Entity GetBlipInfoIdEntityIndex(Blip blip) { return _i(0x4BA4E2553AFEDC2C, blip); } // 0x4ba4e2553afedc2c0xa068c40bB323 + // This function is hard-coded to always return 0. + inline Pickup GetBlipInfoIdPickupIndex(Blip blip) { return _i(0x9B6786E4C03DD382, blip); } // 0x9b6786e4c03dd3820x86913d37B323 + // Returns the Blip handle of given Entity. + inline Blip GetBlipFromEntity(Entity entity) { return _i(0xBC8DBDCA2436F7E8, entity); } // 0xbc8dbdca2436f7e80x005a2a47B323 + inline Blip AddBlipForRadius(float posX, float posY, float posZ, float radius) { return _i(0x46818D79B1F7499A, posX, posY, posZ, radius); } // 0x46818d79b1f7499a0x4626756cB323 + // Adds a rectangular blip for the specified coordinates/area. + // + // It is recommended to use SetBlipRotation and SetBlipColour to make the blip not rotate along with the camera. + // + // By default, the blip will show as a _regular_ blip with the specified color/sprite if it is outside of the minimap view. + // + // Example image: + // minimap https://w.wew.wtf/pdcjig.png + // big map https://w.wew.wtf/zgcjcm.png + // + // (Native name is _likely_ to actually be AddBlipForArea, but due to the usual reasons this can't be confirmed) + inline Blip AddBlipForArea(float x, float y, float z, float width, float height) { return _i(0xCE5D0E5E315DB238, x, y, z, width, height); } // 0xce5d0e5e315db238B463 + // Returns red ( default ) blip attached to entity. + // + // Example: + // Blip blip; //Put this outside your case or option + // blip = HUD::AddBlipForEntity(YourPedOrBodyguardName); + // HUD::SetBlipAsFriendly(blip, true); + inline Blip AddBlipForEntity(Entity entity) { return _i(0x5CDE92C702A8FCE7, entity); } // 0x5cde92c702a8fce70x30822554B323 + inline Blip AddBlipForPickup(Pickup pickup) { return _i(0xBE339365C863BD36, pickup); } // 0xbe339365c863bd360x16693c3aB323 + // Creates an orange ( default ) Blip-object. Returns a Blip-object which can then be modified. + inline Blip AddBlipForCoord(float x, float y, float z) { return _i(0x5A039BB0BCA604B6, x, y, z); } // 0x5a039bb0bca604b60xc6f43d0eB323 + inline Void TriggerSonarBlip(float posX, float posY, float posZ, float radius, int p4) { return _i(0x72DD432F3CDFC0EE, posX, posY, posZ, radius, p4); } // 0x72dd432f3cdfc0ee0xbf25e7b2B323 + inline Void AllowSonarBlips(BOOL toggle) { return _i(0x60734CC207C9833C, toggle); } // 0x60734cc207c9833c0xe7e1e32bB323 + inline Void SetBlipCoords(Blip blip, float posX, float posY, float posZ) { return _i(0xAE2AF67E9D9AF65D, blip, posX, posY, posZ); } // 0xae2af67e9d9af65d0x680a34d4B323 + inline Vector3 GetBlipCoords(Blip blip) { return _i(0x586AFE3FF72D996E, blip); } // 0x586afe3ff72d996e0xef6ff47bB323 + // Sets the displayed sprite for a specific blip.. + // + // You may have your own list, but since dev-c didn't show it I was bored and started looking through scripts and functions to get a presumable almost positive list of a majority of blip IDs + // https://pastebin.com/Bpj9Sfft + // + // Blips Images + IDs: + // https://gtaxscripting.blogspot.com/2016/05/gta-v-blips-id-and-image.html + inline Void SetBlipSprite(Blip blip, int spriteId) { return _i(0xDF735600A4696DAF, blip, spriteId); } // 0xdf735600a4696daf0x8dbbb0b9B323 + // Blips Images + IDs: + // gtaxscripting.blogspot.com/2016/05/gta-v-blips-id-and-image.html + inline int GetBlipSprite(Blip blip) { return _i(0x1FC877464A04FC4F, blip); } // 0x1fc877464a04fc4f0x72ff2e73B323 + inline Void SetCopBlipSprite(int p0, float p1) { return _i(0x9FCB3CBFB3EAD69A, p0, p1); } // 0x9fcb3cbfb3ead69aB1734 + inline Void SetCopBlipSpriteAsStandard() { return _i(0xB7B873520C84C118); } // 0xb7b873520c84c118B1734 + // Doesn't work if the label text of gxtEntry is >= 80. + inline Void SetBlipNameFromTextFile(Blip blip, String gxtEntry) { return _i(0xEAA0FFE120D92784, blip, gxtEntry); } // 0xeaa0ffe120d927840xac8a5461B323 + inline Void SetBlipNameToPlayerName(Blip blip, Player player) { return _i(0x127DE7B20C60A6A3, blip, player); } // 0x127de7b20c60a6a30x03a0b8f9B323 + // Sets alpha-channel for blip color. + // + // Example: + // + // Blip blip = HUD::AddBlipForEntity(entity); + // HUD::SetBlipColour(blip , 3); + // HUD::SetBlipAlpha(blip , 64); + // + inline Void SetBlipAlpha(Blip blip, int alpha) { return _i(0x45FF974EEE1C8734, blip, alpha); } // 0x45ff974eee1c87340xa791fccdB323 + inline int GetBlipAlpha(Blip blip) { return _i(0x970F608F0EE6C885, blip); } // 0x970f608f0ee6c8850x297af6c8B323 + inline Void SetBlipFade(Blip blip, int opacity, int duration) { return _i(0x2AEE8F8390D2298C, blip, opacity, duration); } // 0x2aee8f8390d2298c0xa5999031B323 + // Returns -1, 0, +1, depending on if the blip is fading out, doing nothing, or fading in respectively. + inline int GetBlipFadeDirection(Blip blip) { return _i(0x2C173AE2BDB9385E, blip); } // 0x2c173ae2bdb9385eB463 + // After some testing, looks like you need to use Ceil() on the rotation (vehicle/ped heading) before using it there. + inline Void SetBlipRotation(Blip blip, int rotation) { return _i(0xF87683CDF73C3F6E, blip, rotation); } // 0xf87683cdf73c3f6e0x6b8f44feB323 + // Does not require whole number/integer rotations. + inline Void SetBlipRotationWithFloat(Blip blip, float heading) { return _i(0xA8B6AFDAC320AC87, blip, heading); } // 0xa8b6afdac320ac87B877 + inline int GetBlipRotation(Blip blip) { return _i(0x003E92BA477F9D7F, blip); } // 0x003e92ba477f9d7fB2060 + // Adds up after viewing multiple R* scripts. I believe that the duration is in miliseconds. + inline Void SetBlipFlashTimer(Blip blip, int duration) { return _i(0xD3CD6FD297AE87CC, blip, duration); } // 0xd3cd6fd297ae87cc0x8d5df611B323 + inline Void SetBlipFlashInterval(Blip blip, Any p1) { return _i(0xAA51DB313C010A7E, blip, p1); } // 0xaa51db313c010a7e0xeaf67377B323 + // https://gtaforums.com/topic/864881-all-blip-color-ids-pictured/ + inline Void SetBlipColour(Blip blip, int color) { return _i(0x03D7FB09E75D6B7E, blip, color); } // 0x03d7fb09e75d6b7e0xbb3c5a41B323 + // Can be used to give blips any RGB colour with SetBlipColour(blip, 84). + inline Void SetBlipSecondaryColour(Blip blip, int r, int g, int b) { return _i(0x14892474891E09EB, blip, r, g, b); } // 0x14892474891e09eb0xc6384d32B323 + inline int GetBlipColour(Blip blip) { return _i(0xDF729E8D20CF7327, blip); } // 0xdf729e8d20cf73270xdd6a1e54B323 + inline int GetBlipHudColour(Blip blip) { return _i(0x729B5F1EFBC0AAEE, blip); } // 0x729b5f1efbc0aaee0xe88b4bc2B323 + inline BOOL IsBlipShortRange(Blip blip) { return _i(0xDA5F8727EB75B926, blip); } // 0xda5f8727eb75b9260x1226765aB323 + inline BOOL IsBlipOnMinimap(Blip blip) { return _i(0xE41CA53051197A27, blip); } // 0xe41ca53051197a270x258cba3aB323 + inline BOOL DoesBlipHaveGpsRoute(Blip blip) { return _i(0xDD2238F57B977751, blip); } // 0xdd2238f57b9777510x3e47f357B323 + inline Void SetBlipHiddenOnLegend(Blip blip, BOOL toggle) { return _i(0x54318C915D27E4CE, blip, toggle); } // 0x54318c915d27e4ce0x43996428B323 + inline Void SetBlipHighDetail(Blip blip, BOOL toggle) { return _i(0xE2590BC29220CEBB, blip, toggle); } // 0xe2590bc29220cebb0xd5842bffB323 + inline Void SetBlipAsMissionCreatorBlip(Blip blip, BOOL toggle) { return _i(0x24AC0137444F9FD5, blip, toggle); } // 0x24ac0137444f9fd50x802fb686B323 + inline BOOL IsMissionCreatorBlip(Blip blip) { return _i(0x26F49BF3381D933D, blip); } // 0x26f49bf3381d933d0x24acc4e9B323 + inline Blip GetNewSelectedMissionCreatorBlip() { return _i(0x5C90988E7C8E1AF4); } // 0x5c90988e7c8e1af40xffd7476cB323 + inline BOOL IsHoveringOverMissionCreatorBlip() { return _i(0x4167EFE0527D706E); } // 0x4167efe0527d706e0xc5eb849aB323 + inline Void ShowStartMissionInstructionalButton(BOOL toggle) { return _i(0xF1A6C18B35BCADE6, toggle); } // 0xf1a6c18b35bcade60xa2caab4fB323 + inline Void ShowContactInstructionalButton(BOOL toggle) { return _i(0xC772A904CDE1186F, toggle); } // 0xc772a904cde1186fB2545 + inline Void ReloadMapMenu() { return _i(0x2916A928514C9827); } // 0x2916a928514c9827B573 + inline Void SetBlipMarkerLongDistance(Any p0, Any p1) { return _i(0xB552929B85FC27EC, p0, p1); } // 0xb552929b85fc27ecB573 + inline Void SetBlipFlashes(Blip blip, BOOL toggle) { return _i(0xB14552383D39CE3E, blip, toggle); } // 0xb14552383d39ce3e0xc0047f15B323 + inline Void SetBlipFlashesAlternate(Blip blip, BOOL toggle) { return _i(0x2E8D9498C56DD0D1, blip, toggle); } // 0x2e8d9498c56dd0d10x1a81202bB323 + inline BOOL IsBlipFlashing(Blip blip) { return _i(0xA5E41FD83AD6CEF0, blip); } // 0xa5e41fd83ad6cef00x52e111d7B323 + // Sets whether or not the specified blip should only be displayed when nearby, or on the minimap. + inline Void SetBlipAsShortRange(Blip blip, BOOL toggle) { return _i(0xBE8BE4FE60E27B72, blip, toggle); } // 0xbe8be4fe60e27b720x5c67725eB323 + inline Void SetBlipScale(Blip blip, float scale) { return _i(0xD38744167B2FA257, blip, scale); } // 0xd38744167b2fa2570x1e6ec434B323 + // See https://imgur.com/a/lLkEsMN + inline Void SetBlipScale2d(Blip blip, float xScale, float yScale) { return _i(0xCD6524439909C979, blip, xScale, yScale); } // 0xcd6524439909c979B1734 + // See this topic for more details : gtaforums.com/topic/717612-v-scriptnative-documentation-and-research/page-35?p=1069477935 + inline Void SetBlipPriority(Blip blip, int priority) { return _i(0xAE9FC9EF6A9FAC79, blip, priority); } // 0xae9fc9ef6a9fac790xce87da6fB323 + // Display Id behaviours: + // 0 = Doesn't show up, ever, anywhere. + // 1 = Doesn't show up, ever, anywhere. + // 2 = Shows on both main map and minimap. (Selectable on map) + // 3 = Shows on main map only. (Selectable on map) + // 4 = Shows on main map only. (Selectable on map) + // 5 = Shows on minimap only. + // 6 = Shows on both main map and minimap. (Selectable on map) + // 7 = Doesn't show up, ever, anywhere. + // 8 = Shows on both main map and minimap. (Not selectable on map) + // 9 = Shows on minimap only. + // 10 = Shows on both main map and minimap. (Not selectable on map) + // + // Anything higher than 10 seems to be exactly the same as 10. + inline Void SetBlipDisplay(Blip blip, int displayId) { return _i(0x9029B2F3DA924928, blip, displayId); } // 0x9029b2f3da9249280x2b521f91B323 + // Example: https://i.imgur.com/skY6vAJ.png + // + // Index: + // 1 = No distance shown in legend + // 2 = Distance shown in legend + // 7 = "Other Players" category, also shows distance in legend + // 10 = "Property" category + // 11 = "Owned Property" category + // + // Any other value behaves like index = 1, index wraps around after 255 + // Blips with categories 7, 10 or 11 will all show under the specific categories listing in the map legend, regardless of sprite or name. + // Legend entries: + // 7 = Other Players (BLIP_OTHPLYR) + // 10 = Property (BLIP_PROPCAT) + // 11 = Owned Property (BLIP_APARTCAT) + // + // Category needs to be `7` in order for blip names to show on the expanded minimap when using DisplayPlayerNameTagsOnBlips. + inline Void SetBlipCategory(Blip blip, int index) { return _i(0x234CDD44D996FD9A, blip, index); } // 0x234cdd44d996fd9a0xef72f533B323 + // In the C++ SDK, this seems not to work-- the blip isn't removed immediately. I use it for saving cars. + // + // E.g.: + // + // Ped pped = PLAYER::PlayerPedId(); + // Vehicle v = PED::GetVehiclePedIsUsing(pped); + // Blip b = HUD::AddBlipForEntity(v); + // + // works fine. + // But later attempting to delete it with: + // + // Blip b = HUD::GetBlipFromEntity(v); + // if (HUD::DoesBlipExist(b)) HUD::RemoveBlip(&b); + // + // doesn't work. And yes, doesn't work without the DoesBlipExist check either. Also, if you attach multiple blips to the same thing (say, a vehicle), and that thing disappears, the blips randomly attach to other things (in my case, a vehicle). + // + // Thus for me, HUD::RemoveBlip(&b) only works if there's one blip, (in my case) the vehicle is marked as no longer needed, you drive away from it and it eventually despawns, AND there is only one blip attached to it. I never intentionally attach multiple blips but if the user saves the car, this adds a blip. Then if they delete it, it is supposed to remove the blip, but it doesn't. Then they can immediately save it again, causing another blip to re-appear. + // ------------- + // + // Passing the address of the variable instead of the value works for me. + // e.g. + // int blip = HUD::AddBlipForEntity(ped); + // HUD::RemoveBlip(&blip); + // + // + // Remove blip will currently crash your game, just artificially remove the blip by setting the sprite to a id that is 'invisible'. + inline Void RemoveBlip(Blip* blip) { return _i(0x86A652570E5F25DD, blip); } // 0x86a652570e5f25dd0xd8c3c1cdB323 + // false for enemy + // true for friendly + inline Void SetBlipAsFriendly(Blip blip, BOOL toggle) { return _i(0x6F6F290102C02AB4, blip, toggle); } // 0x6f6f290102c02ab40xf290cfd8B323 + inline Void PulseBlip(Blip blip) { return _i(0x742D6FD43115AF73, blip); } // 0x742d6fd43115af730x44253855B323 + inline Void ShowNumberOnBlip(Blip blip, int number) { return _i(0xA3C0B359DCB848B6, blip, number); } // 0xa3c0b359dcb848b60x7bfc66c6B323 + inline Void HideNumberOnBlip(Blip blip) { return _i(0x532CFF637EF80148, blip); } // 0x532cff637ef801480x0b6d610dB323 + inline Void ShowHeightOnBlip(Blip blip, BOOL toggle) { return _i(0x75A16C3DA34F1245, blip, toggle); } // 0x75a16c3da34f12450x1d99f676B323 + // Adds a green checkmark on top of a blip. + inline Void ShowTickOnBlip(Blip blip, BOOL toggle) { return _i(0x74513EA3E505181E, blip, toggle); } // 0x74513ea3e505181e0x3dcf0092B323 + // Adds a orange checkmark on top of a given blip handle: https://imgur.com/a/aw5OTMF + // _SHOW_FRIEND_INDICATOR_ON_BLIP* - _SHOW_HEADING_INDICATOR_ON_BLIP* + inline Void ShowGoldTickOnBlip(Blip blip, BOOL toggle) { return _i(0xCAC2031EBF79B1A8, blip, toggle); } // 0xcac2031ebf79b1a8B2699 + inline Void ShowForSaleIconOnBlip(Blip blip, BOOL toggle) { return _i(0x19BD6E3C0E16A8FA, blip, toggle); } // 0x19bd6e3c0e16a8faB2802 + // Adds the GTA: Online player heading indicator to a blip. + inline Void ShowHeadingIndicatorOnBlip(Blip blip, BOOL toggle) { return _i(0x5FBCA48327B914DF, blip, toggle); } // 0x5fbca48327b914df0xd1c3d71bB323 + // Highlights a blip by a cyan color circle. + // + // Color can be changed with SetBlipSecondaryColour + inline Void ShowOutlineIndicatorOnBlip(Blip blip, BOOL toggle) { return _i(0xB81656BC81FE24D1, blip, toggle); } // 0xb81656bc81fe24d10x8de82c15B323 + // Highlights a blip by a half cyan circle on the right side of the blip. https://i.imgur.com/FrV9M4e.png + // .Indicating that that player is a friend (in GTA:O). This color can not be changed. + // To toggle the left side (crew member indicator) of the half circle around the blip, use: `ShowCrewIndicatorOnBlip` + inline Void ShowFriendIndicatorOnBlip(Blip blip, BOOL toggle) { return _i(0x23C3EB807312F01A, blip, toggle); } // 0x23c3eb807312f01a0x4c8f02b4B323 + // Enables or disables the blue half circle https://i.imgur.com/iZes9Ec.png around the specified blip on the left side of the blip. This is used to indicate that the player is in your crew in GTA:O. Color is changeable by using `SetBlipSecondaryColour`. + inline Void ShowCrewIndicatorOnBlip(Blip blip, BOOL toggle) { return _i(0xDCFB5D4DB8BF367E, blip, toggle); } // 0xdcfb5d4db8bf367e0xabbe1e45B323 + // Must be toggled before being queued for animation + inline Void SetBlipExtendedHeightThreshold(Blip blip, BOOL toggle) { return _i(0xC4278F70131BAA6D, blip, toggle); } // 0xc4278f70131baa6d0x6aa6a1ccB323 + inline Void SetBlipShortHeightThreshold(Any p0, Any p1) { return _i(0x4B5B620C9B59ED34, p0, p1); } // 0x4b5b620c9b59ed34B678 + inline Void SetBlipUseHeightIndicatorOnEdge(Blip blip, Any p1) { return _i(0x2C9F302398E13141, blip, p1); } // 0x2c9f302398e131410xca95c487B1103 + // Makes a blip go small when off the minimap. + inline Void SetBlipAsMinimalOnEdge(Blip blip, BOOL toggle) { return _i(0x2B6D467DAB714E8D, blip, toggle); } // 0x2b6d467dab714e8d0xc575f0bcB323 + // Enabling this on a radius blip will make it outline only. See https://cdn.discordapp.com/attachments/553235301632573459/575132227935928330/unknown.png + inline Void SetRadiusBlipEdge(Blip blip, BOOL toggle) { return _i(0x25615540D894B814, blip, toggle); } // 0x25615540d894b8140x40e25db8B323 + inline BOOL DoesBlipExist(Blip blip) { return _i(0xA6DB27D19ECBB7DA, blip); } // 0xa6db27d19ecbb7da0xae92dd96B323 + // This native removes the current waypoint from the map. + // + // Example: + // C#: + // Function.Call(Hash.SetWaypointOff); + // + // C++: + // HUD::SetWaypointOff(); + inline Void SetWaypointOff() { return _i(0xA7E4E2D361C2627F); } // 0xa7e4e2d361c2627f0xb3496e1bB323 + inline Void DeleteWaypointsFromThisPlayer() { return _i(0xD8E694757BCEA8E9); } // 0xd8e694757bcea8e90x62babf2cB323 + inline Void RefreshWaypoint() { return _i(0x81FA173F170560D1); } // 0x81fa173f170560d10xb395d753B323 + inline BOOL IsWaypointActive() { return _i(0x1DD1F58F493F1DA5); } // 0x1dd1f58f493f1da50x5e4df47bB323 + inline Void SetNewWaypoint(float x, float y) { return _i(0xFE43368D2AA4F2FC, x, y); } // 0xfe43368d2aa4f2fc0x8444e1f0B323 + inline Void SetBlipBright(Blip blip, BOOL toggle) { return _i(0xB203913733F27884, blip, toggle); } // 0xb203913733f278840x72bee6dfB323 + // As of b2189, the third parameter sets the color of the cone (before b2189 it was ignored). Note that it uses HUD colors, not blip colors. + inline Void SetBlipShowCone(Blip blip, BOOL toggle, int hudColorIndex) { return _i(0x13127EC3665E8EE1, blip, toggle, hudColorIndex); } // 0x13127ec3665e8ee10xff545ad8B323 + // Interesting fact: A hash collision for this is RESET_JETPACK_MODEL_SETTINGS + inline Void RemoveCopBlipFromPed(Ped ped) { return _i(0xC594B315EDF2D4AF, ped); } // 0xc594b315edf2d4af0x41b0d022B323 + inline Void SetupFakeConeData(Blip blip, float p1, float p2, float p3, float p4, float p5, float p6, Any p7, int p8) { return _i(0xF83D0FEBE75E62C9, blip, p1, p2, p3, p4, p5, p6, p7, p8); } // 0xf83d0febe75e62c9B1290 + inline Void RemoveFakeConeData(Blip blip) { return _i(0x35A3CD97B2C0A6D2, blip); } // 0x35a3cd97b2c0a6d2B1290 + inline Void ClearFakeConeArray() { return _i(0x8410C5E0CD847B9D); } // 0x8410c5e0cd847b9dB1290 + // Applies to new eBlipParams _BLIP_CHANGE_46* and _BLIP_CHANGE_47* + inline Void SetBlipGpsRouteDisplayDistance(Blip blip, int blipChangeParam46, BOOL blipChangeParam47) { return _i(0x25D984CFB64ED6DE, blip, blipChangeParam46, blipChangeParam47); } // 0x25d984cfb64ed6deB3095 + // This native is used to colorize certain map components like the army base at the top of the map. + // p2 appears to be always -1. If p2 is -1 then native wouldn't change the color. See https://gfycat.com/SkinnyPinkChupacabra + inline BOOL SetMinimapComponent(int componentId, BOOL toggle, int overrideColor) { return _i(0x75A9A10948D1DEA6, componentId, toggle, overrideColor); } // 0x75a9a10948d1dea60x419dcdc4B323 + inline Void SetMinimapSonarSweep(BOOL toggle) { return _i(0x6B50FC8749632EC1, toggle); } // 0x6b50fc8749632ec1B2189 + inline Void ShowAccountPicker() { return _i(0x60E892BA4F5BDCA4); } // 0x60e892ba4f5bdca4B323 + inline Blip GetMainPlayerBlipId() { return _i(0xDCD4EC3F419D02FA); } // 0xdcd4ec3f419d02fa0xab93f020B323 + inline Void SetPmWarningscreenActive(BOOL p0) { return _i(0x41350B4FC28E3941, p0); } // 0x41350b4fc28e3941B323 + inline Void HideLoadingOnFadeThisFrame() { return _i(0x4B0311D3CDC4648F); } // 0x4b0311d3cdc4648f0x35087963B323 + // List of interior hashes: https://pastebin.com/1FUyXNqY + // Not for every interior zoom > 0 available. + inline Void SetRadarAsInteriorThisFrame(Hash interior, float x, float y, int z, int zoom) { return _i(0x59E727A1C9D3E31A, interior, x, y, z, zoom); } // 0x59e727a1c9d3e31a0x6f2626e1B323 + inline Void SetInsideVerySmallInterior(BOOL toggle) { return _i(0x504DFE62A1692296, toggle); } // 0x504dfe62a1692296B1493 + inline Void SetInsideVeryLargeInterior(BOOL toggle) { return _i(0x7EC8ABA5E74B3D7A, toggle); } // 0x7ec8aba5e74b3d7aB2372 + inline Void SetRadarAsExteriorThisFrame() { return _i(0xE81B7D2A3DAB2D81); } // 0xe81b7d2a3dab2d810x39abb10eB323 + // Sets the position of the arrow icon representing the player on both the minimap and world map. + // + // Too bad this wouldn't work over the network (obviously not). Could spoof where we would be. + inline Void SetFakePausemapPlayerPositionThisFrame(float x, float y) { return _i(0x77E2DD177910E1CF, x, y); } // 0x77e2dd177910e1cf0x54e75c7dB323 + // p2 maybe z float? + inline Void SetFakeGpsPlayerPositionThisFrame(float x, float y, Any p2) { return _i(0xA17784FCA9548D15, x, y, p2); } // 0xa17784fca9548d15B877 + inline BOOL IsPausemapInInteriorMode() { return _i(0x9049FE339D5F6F6F); } // 0x9049fe339d5f6f6f0x199ded14B323 + inline Void HideMinimapExteriorMapThisFrame() { return _i(0x5FBAE526203990C9); } // 0x5fbae526203990c90x1a4318f7B323 + inline Void HideMinimapInteriorMapThisFrame() { return _i(0x20FE7FDFEEAD38C0); } // 0x20fe7fdfeead38c00xce36e3feB323 + // Toggles the Cayo Perico map. + inline Void SetUseIslandMap(BOOL toggle) { return _i(0x5E1460624D194A38, toggle); } // 0x5e1460624d194a38B2189 + inline Void SetPauseExteriorRenderingWhileInInterior() { return _i(0x35CCE12EAECB4A51); } // 0x35cce12eaecb4a51B2944 + // When calling this, the current frame will have the players "arrow icon" be focused on the dead center of the radar. + inline Void DontTiltMinimapThisFrame() { return _i(0x6D14BFDC33B34F55); } // 0x6d14bfdc33b34f550x334efd46B323 + inline Void DontZoomMinimapWhenRunningThisFrame() { return _i(0x89DA85D949CE57A0); } // 0x89da85d949ce57a0B2802 + inline Void DontZoomMinimapWhenSnipingThisFrame() { return _i(0x55F5A5F07134DE60); } // 0x55f5a5f07134de600x7a569f78B1180 + inline Void SetWidescreenFormat(Any p0) { return _i(0xC3B07BA00A83B0F1, p0); } // 0xc3b07ba00a83b0f10xf016e08fB323 + inline Void DisplayAreaName(BOOL toggle) { return _i(0x276B6CE369C33678, toggle); } // 0x276b6ce369c336780x489fdd41B323 + // "DisplayCash(false);" makes the cash amount render on the screen when appropriate + // "DisplayCash(true);" disables cash amount rendering + inline Void DisplayCash(BOOL toggle) { return _i(0x96DEC8D5430208B7, toggle); } // 0x96dec8d5430208b70x0049df83B323 + // Related to displaying cash on the HUD + // Always called before HUD::ChangeFakeMpCash in decompiled scripts + inline Void UseFakeMpCash(BOOL toggle) { return _i(0x170F541E1CADD1DE, toggle); } // 0x170f541e1cadd1de0x6253b9d7B323 + // Displays cash change notifications on HUD. + inline Void ChangeFakeMpCash(int cash, int bank) { return _i(0x0772DF77852C2E30, cash, bank); } // 0x0772df77852c2e300xe319f90bB323 + inline Void DisplayAmmoThisFrame(BOOL display) { return _i(0xA5E78BA2B1331C55, display); } // 0xa5e78ba2b1331c550x60693ceeB323 + // Displays the crosshair for this frame. + inline Void DisplaySniperScopeThisFrame() { return _i(0x73115226F4814E62); } // 0x73115226f4814e620xbc6c73cbB323 + // Hides HUD and radar this frame and prohibits switching to other weapons (or accessing the weapon wheel) + inline Void HideHudAndRadarThisFrame() { return _i(0x719FF505F097FD20); } // 0x719ff505f097fd200xb75d4ad2B323 + // Controls whether to display 'Cash'/'Bank' next to the money balance HUD in Multiplayer (https://i.imgur.com/MiYUtNl.png) + inline Void AllowDisplayOfMultiplayerCashText(BOOL allow) { return _i(0xE67C6DFD386EA5E7, allow); } // 0xe67c6dfd386ea5e70x5476b9fdB323 + inline Void SetMultiplayerWalletCash() { return _i(0xC2D15BEF167E27BC); } // 0xc2d15bef167e27bc0xf4f3c796B323 + inline Void RemoveMultiplayerWalletCash() { return _i(0x95CF81BD06EE1887); } // 0x95cf81bd06ee18870x7bffe82fB323 + inline Void SetMultiplayerBankCash() { return _i(0xDD21B55DF695CD0A); } // 0xdd21b55df695cd0a0x2c842d03B323 + inline Void RemoveMultiplayerBankCash() { return _i(0xC7C6789AA1CFEDD0); } // 0xc7c6789aa1cfedd00x728b4ef4B323 + // This native does absolutely nothing, just a nullsub + inline Void SetMultiplayerHudCash(int p0, BOOL p1) { return _i(0xFD1D220394BCB824, p0, p1); } // 0xfd1d220394bcb8240xa8db435eB323 + // Removes multiplayer cash hud each frame + inline Void RemoveMultiplayerHudCash() { return _i(0x968F270E39141ECA); } // 0x968f270e39141eca0x07bf4a7dB323 + inline Void HideHelpTextThisFrame() { return _i(0xD46923FC481CA285); } // 0xd46923fc481ca2850xf3807bedB323 + inline BOOL IsImeInProgress() { return _i(0x801879A9B4F4B2FB); } // 0x801879a9b4f4b2fbB372 + // The messages are localized strings. + // Examples: + // "No_bus_money" + // "Enter_bus" + // "Tour_help" + // "LETTERS_HELP2" + // "Dummy" + // + // **The BOOL appears to always be false (if it even is a BOOL, as it's represented by a zero)** + // -------- + // p1 doesn't seem to make a difference, regardless of the state it's in. + // + // + // picture of where on the screen this is displayed? + inline Void DisplayHelpTextThisFrame(String message, BOOL p1) { return _i(0x960C9FF8F616E41C, message, p1); } // 0x960c9ff8f616e41c0x18e3360aB323 + // Forces the weapon wheel to show/hide. + inline Void HudForceWeaponWheel(BOOL show) { return _i(0xEB354E5376BC81A7, show); } // 0xeb354e5376bc81a70x1effb02aB323 + // Displays "blazer_wheels_up" and "blazer_wheels_down" "weapon" icons when switching between jetski and quadbike modes. Works only on vehicles using "VEHICLE_TYPE_AMPHIBIOUS_QUADBIKE" vehicle type. Needs to be called every time prior to switching modes, otherwise the icon will only appear when switching modes once. + inline Void HudForceSpecialVehicleWeaponWheel() { return _i(0x488043841BBE156F); } // 0x488043841bbe156fB1011 + // Calling this each frame, stops the player from receiving a weapon via the weapon wheel. + inline Void HudSuppressWeaponWheelResultsThisFrame() { return _i(0x0AFC4AF510774B47); } // 0x0afc4af510774b470xb26fed2bB323 + // Returns the weapon hash to the selected/highlighted weapon in the wheel + inline Hash HudGetWeaponWheelCurrentlyHighlighted() { return _i(0xA48931185F0536FE); } // 0xa48931185f0536fe0x22e9f555B323 + // Set the active slotIndex in the wheel weapon to the slot associated with the provided Weapon hash + inline Void HudSetWeaponWheelTopSlot(Hash weaponHash) { return _i(0x72C1056D678BB7D8, weaponHash); } // 0x72c1056d678bb7d80x83b608a0B323 + // Returns the weapon hash active in a specific weapon wheel slotList + inline Hash HudGetWeaponWheelTopSlot(int weaponTypeIndex) { return _i(0xA13E93403F26C812, weaponTypeIndex); } // 0xa13e93403f26c812B323 + // Sets a global that disables many weapon input tasks (shooting, aiming, etc.). Does not work with vehicle weapons, only used in selector.ysc + inline Void HudShowingCharacterSwitchSelection(BOOL toggle) { return _i(0x14C9FDCC41F81F63, toggle); } // 0x14c9fdcc41f81f630xe70d1f43B323 + // Only the script that originally called SetGpsFlags can set them again. Another script cannot set the flags, until the first script that called it has called ClearGpsFlags. + // + // Doesn't seem like the flags are actually read by the game at all. + inline Void SetGpsFlags(int p0, float p1) { return _i(0x5B440763A4C8D15B, p0, p1); } // 0x5b440763a4c8d15b0x60539babB323 + // Clears the GPS flags. Only the script that originally called SetGpsFlags can clear them. + // + // Doesn't seem like the flags are actually read by the game at all. + inline Void ClearGpsFlags() { return _i(0x21986729D6A3A830); } // 0x21986729d6a3a8300x056afce6B323 + inline Void SetRaceTrackRender(BOOL toggle) { return _i(0x1EAC5F91BCBC5073, toggle); } // 0x1eac5f91bcbc50730xfb9babf5B323 + // Does the same as SetRaceTrackRender(false); + inline Void ClearGpsRaceTrack() { return _i(0x7AA5B4CE533C858B); } // 0x7aa5b4ce533c858b0x40c59829B323 + // Starts a new GPS custom-route, allowing you to plot lines on the map. + // Lines are drawn directly between points. + // The GPS custom route works like the GPS multi route, except it does not follow roads. + // Example result: https://i.imgur.com/BDm5pzt.png + // hudColor: The HUD color of the GPS path. + // displayOnFoot: Draws the path regardless if the player is in a vehicle or not. + // followPlayer: Draw the path partially between the previous and next point based on the players position between them. When false, the GPS appears to not disappear after the last leg is completed. + inline Void StartGpsCustomRoute(int hudColor, BOOL displayOnFoot, BOOL followPlayer) { return _i(0xDB34E8D56FC13B08, hudColor, displayOnFoot, followPlayer); } // 0xdb34e8d56fc13b080x7f93799bB323 + inline Void AddPointToGpsCustomRoute(float x, float y, float z) { return _i(0x311438A071DD9B1A, x, y, z); } // 0x311438a071dd9b1a0xeebdfe55B323 + // radarThickness: The width of the GPS route on the radar + // mapThickness: The width of the GPS route on the map + inline Void SetGpsCustomRouteRender(BOOL toggle, int radarThickness, int mapThickness) { return _i(0x900086F371220B6F, toggle, radarThickness, mapThickness); } // 0x900086f371220b6f0xda0af00eB323 + inline Void ClearGpsCustomRoute() { return _i(0xE6DE0561D9232A64); } // 0xe6de0561d9232a640xcf2e3e24B323 + // Starts a new GPS multi-route, allowing you to create custom GPS paths. + // GPS functions like the waypoint, except it can contain multiple points it's forced to go through. + // Once the player has passed a point, the GPS will no longer force its path through it. + // + // Works independently from the player-placed waypoint and blip routes. + // Example result: https://i.imgur.com/ZZHQatX.png + // hudColor: The HUD color of the GPS path. + // routeFromPlayer: Makes the GPS draw a path from the player to the next point, rather than the original path from the previous point. + // displayOnFoot: Draws the GPS path regardless if the player is in a vehicle or not. + inline Void StartGpsMultiRoute(int hudColor, BOOL routeFromPlayer, BOOL displayOnFoot) { return _i(0x3D3D15AF7BCAAF83, hudColor, routeFromPlayer, displayOnFoot); } // 0x3d3d15af7bcaaf830xc3dcbedbB323 + inline Void AddPointToGpsMultiRoute(float x, float y, float z) { return _i(0xA905192A6781C41B, x, y, z); } // 0xa905192a6781c41b0xfe485135B323 + inline Void SetGpsMultiRouteRender(BOOL toggle) { return _i(0x3DDA37128DD1ACA8, toggle); } // 0x3dda37128dd1aca80xe87cbe4cB323 + // Does the same as SetGpsMultiRouteRender(false); + inline Void ClearGpsMultiRoute() { return _i(0x67EEDEA1B9BAFD94); } // 0x67eedea1b9bafd940x0d9969e4B323 + inline Void ClearGpsPlayerWaypoint() { return _i(0xFF4FB7C8CDFA3DA7); } // 0xff4fb7c8cdfa3da70x0b9c7fc2B323 + inline Void SetGpsFlashes(BOOL toggle) { return _i(0x320D0E0D936A0E9B, toggle); } // 0x320d0e0d936a0e9b0xe991f733B323 + inline Void SetPlayerIconColour(int color) { return _i(0x7B21E0BB01E8224A, color); } // 0x7b21e0bb01e8224aB323 + // adds a short flash to the Radar/Minimap + // Usage: UI.FlashMinimapDisplay + inline Void FlashMinimapDisplay() { return _i(0xF2DD778C22B15BDA); } // 0xf2dd778c22b15bda0xb8359952B323 + inline Void FlashMinimapDisplayWithColor(int hudColorIndex) { return _i(0x6B1DE27EE78E6A19, hudColorIndex); } // 0x6b1de27ee78e6a190x79a6caf6B323 + inline Void ToggleStealthRadar(BOOL toggle) { return _i(0x6AFDFB93754950C7, toggle); } // 0x6afdfb93754950c70xc68d47c4B323 + inline Void SetMinimapInSpectatorMode(BOOL toggle, Ped ped) { return _i(0x1A5CD7752DD28CD3, toggle, ped); } // 0x1a5cd7752dd28cd30xd5bfcadbB323 + inline Void SetMissionName(BOOL p0, String name) { return _i(0x5F28ECF5FC84772F, p0, name); } // 0x5f28ecf5fc84772f0x68dcae10B323 + inline Void SetMissionNameForUgcMission(BOOL p0, String name) { return _i(0xE45087D85F468BC2, p0, name); } // 0xe45087d85f468bc20x8d9a1734B323 + inline Void SetDescriptionForUgcMissionEightStrings(BOOL p0, String p1, String p2, String p3, String p4, String p5, String p6, String p7, String p8) { return _i(0x817B86108EB94E51, p0, p1, p2, p3, p4, p5, p6, p7, p8); } // 0x817b86108eb94e510xd2161e77B323 + inline Void SetMinimapBlockWaypoint(BOOL toggle) { return _i(0x58FADDED207897DC, toggle); } // 0x58fadded207897dc0xa41c3b62B323 + // Toggles the North Yankton map + inline Void SetMinimapInPrologue(BOOL toggle) { return _i(0x9133955F1A2DA957, toggle); } // 0x9133955f1a2da9570x02f5f1d1B323 + // If true, the entire map will be revealed. + // + // FOW = Fog of War + inline Void SetMinimapHideFow(BOOL toggle) { return _i(0xF8DEE0A5600CBB93, toggle); } // 0xf8dee0a5600cbb930xd8d77733B323 + inline float GetMinimapFowDiscoveryRatio() { return _i(0xE0130B41D3CF4574); } // 0xe0130b41d3cf45740xa4098accB323 + inline BOOL GetMinimapFowCoordinateIsRevealed(float x, float y, float z) { return _i(0x6E31B91145873922, x, y, z); } // 0x6e31b911458739220x65b705f6B323 + inline Void SetMinimapFowDoNotUpdate(BOOL p0) { return _i(0x62E849B7EB28E770, p0); } // 0x62e849b7eb28e770B323 + // Up to eight coordinates may be revealed per frame + inline Void SetMinimapFowRevealCoordinate(float x, float y, float z) { return _i(0x0923DBF87DFF735E, x, y, z); } // 0x0923dbf87dff735e0xe010f081B323 + // Not much is known so far on what it does _exactly_. + // All I know for sure is that it draws the specified hole ID on the pause menu map as well as on the mini-map/radar. This native also seems to change some other things related to the pause menu map's behaviour, for example: you can no longer set waypoints, the pause menu map starts up in a 'zoomed in' state. This native does not need to be executed every tick. + // You need to center the minimap manually as well as change/lock it's zoom and angle in order for it to appear correctly on the minimap. + // You'll also need to use the `GOLF` scaleform in order to get the correct minmap border to show up. + // Use `0x35edd5b2e3ff01c0` to reset the map when you no longer want to display any golf holes (you still need to unlock zoom, position and angle of the radar manually after calling this). + inline Void SetMinimapGolfCourse(int hole) { return _i(0x71BDB63DBAF8DA59, hole); } // 0x71bdb63dbaf8da590x5133a750B323 + inline Void SetMinimapGolfCourseOff() { return _i(0x35EDD5B2E3FF01C0); } // 0x35edd5b2e3ff01c00x20fd3e87B323 + // Locks the minimap to the specified angle in integer degrees. + // + // angle: The angle in whole degrees. If less than 0 or greater than 360, unlocks the angle. + inline Void LockMinimapAngle(int angle) { return _i(0x299FAEBB108AE05B, angle); } // 0x299faebb108ae05b0xdec733e4B323 + inline Void UnlockMinimapAngle() { return _i(0x8183455E16C42E3A); } // 0x8183455e16c42e3a0x742043f9B323 + // Locks the minimap to the specified world position. + inline Void LockMinimapPosition(float x, float y) { return _i(0x1279E861A329E73F, x, y); } // 0x1279e861a329e73f0xb9632a91B323 + inline Void UnlockMinimapPosition() { return _i(0x3E93E06DB8EF1F30); } // 0x3e93e06db8ef1f300x5e8e6f54B323 + // Argument must be 0.0f or above 38.0f, or it will be ignored. + inline Void SetFakeMinimapMaxAltimeterHeight(float altitude, BOOL p1, Any p2) { return _i(0xD201F3FF917A506D, altitude, p1, p2); } // 0xd201f3ff917a506d0x0308edf6B323 + inline Void SetHealthHudDisplayValues(int health, int capacity, BOOL wasAdded) { return _i(0x3F5CC444DCAAA8F2, health, capacity, wasAdded); } // 0x3f5cc444dcaaa8f20x7fb6fb2aB323 + inline Void SetMaxHealthHudDisplay(int maximumValue) { return _i(0x975D66A0BC17064C, maximumValue); } // 0x975d66a0bc17064c0xf07d8cefB323 + inline Void SetMaxArmourHudDisplay(int maximumValue) { return _i(0x06A320535F5F0248, maximumValue); } // 0x06a320535f5f02480x827f14deB323 + // Toggles the big minimap state like in GTA:Online. + inline Void SetBigmapActive(BOOL toggleBigMap, BOOL showFullMap) { return _i(0x231C8F89D0539D8F, toggleBigMap, showFullMap); } // 0x231c8f89d0539d8f0x08eb83d2B323 + // Full list of components below + // + // HUD = 0; + // HUD_WANTED_STARS = 1; + // HUD_WEAPON_ICON = 2; + // HUD_CASH = 3; + // HUD_MP_CASH = 4; + // HUD_MP_MESSAGE = 5; + // HUD_VEHICLE_NAME = 6; + // HUD_AREA_NAME = 7; + // HUD_VEHICLE_CLASS = 8; + // HUD_STREET_NAME = 9; + // HUD_HELP_TEXT = 10; + // HUD_FLOATING_HELP_TEXT_1 = 11; + // HUD_FLOATING_HELP_TEXT_2 = 12; + // HUD_CASH_CHANGE = 13; + // HUD_RETICLE = 14; + // HUD_SUBTITLE_TEXT = 15; + // HUD_RADIO_STATIONS = 16; + // HUD_SAVING_GAME = 17; + // HUD_GAME_STREAM = 18; + // HUD_WEAPON_WHEEL = 19; + // HUD_WEAPON_WHEEL_STATS = 20; + // MAX_HUD_COMPONENTS = 21; + // MAX_HUD_WEAPONS = 22; + // MAX_SCRIPTED_HUD_COMPONENTS = 141; + inline BOOL IsHudComponentActive(int id) { return _i(0xBC4C9EA5391ECC0D, id); } // 0xbc4c9ea5391ecc0d0x6214631fB323 + inline BOOL IsScriptedHudComponentActive(int id) { return _i(0xDD100EB17A94FF65, id); } // 0xdd100eb17a94ff650x2b86f382B323 + inline Void HideScriptedHudComponentThisFrame(int id) { return _i(0xE374C498D8BADC14, id); } // 0xe374c498d8badc140x31aba127B323 + inline Void ShowScriptedHudComponentThisFrame(int id) { return _i(0x4F38DCA127DAAEA2, id); } // 0x4f38dca127daaea2B1734 + inline BOOL IsScriptedHudComponentHiddenThisFrame(int id) { return _i(0x09C0403ED9A751C2, id); } // 0x09c0403ed9a751c20xe8c8e535B323 + // This function hides various HUD (Heads-up Display) components. + // Listed below are the integers and the corresponding HUD component. + // - 1 : WANTED_STARS + // - 2 : WEAPON_ICON + // - 3 : CASH + // - 4 : MP_CASH + // - 5 : MP_MESSAGE + // - 6 : VEHICLE_NAME + // - 7 : AREA_NAME + // - 8 : VEHICLE_CLASS + // - 9 : STREET_NAME + // - 10 : HELP_TEXT + // - 11 : FLOATING_HELP_TEXT_1 + // - 12 : FLOATING_HELP_TEXT_2 + // - 13 : CASH_CHANGE + // - 14 : RETICLE + // - 15 : SUBTITLE_TEXT + // - 16 : RADIO_STATIONS + // - 17 : SAVING_GAME + // - 18 : GAME_STREAM + // - 19 : WEAPON_WHEEL + // - 20 : WEAPON_WHEEL_STATS + // - 21 : HUD_COMPONENTS + // - 22 : HUD_WEAPONS + // + // These integers also work for the `ShowHudComponentThisFrame` native, but instead shows the HUD Component. + inline Void HideHudComponentThisFrame(int id) { return _i(0x6806C51AD12B83B8, id); } // 0x6806c51ad12b83b80xdb2d0762B323 + // This function hides various HUD (Heads-up Display) components. + // Listed below are the integers and the corresponding HUD component. + // - 1 : WANTED_STARS + // - 2 : WEAPON_ICON + // - 3 : CASH + // - 4 : MP_CASH + // - 5 : MP_MESSAGE + // - 6 : VEHICLE_NAME + // - 7 : AREA_NAME + // - 8 : VEHICLE_CLASS + // - 9 : STREET_NAME + // - 10 : HELP_TEXT + // - 11 : FLOATING_HELP_TEXT_1 + // - 12 : FLOATING_HELP_TEXT_2 + // - 13 : CASH_CHANGE + // - 14 : RETICLE + // - 15 : SUBTITLE_TEXT + // - 16 : RADIO_STATIONS + // - 17 : SAVING_GAME + // - 18 : GAME_STREAM + // - 19 : WEAPON_WHEEL + // - 20 : WEAPON_WHEEL_STATS + // - 21 : HUD_COMPONENTS + // - 22 : HUD_WEAPONS + // + // These integers also work for the `HideHudComponentThisFrame` native, but instead hides the HUD Component. + inline Void ShowHudComponentThisFrame(int id) { return _i(0x0B4DF1FA60C0E664, id); } // 0x0b4df1fa60c0e6640x95e1546eB323 + // Hides area and vehicle name HUD components for one frame. + inline Void HideStreetAndCarNamesThisFrame() { return _i(0xA4DEDE28B1814289); } // 0xa4dede28b18142890x52746fe1B323 + inline Void ResetReticuleValues() { return _i(0x12782CE0A636E9F0); } // 0x12782ce0a636e9f00xbe27aa3fB323 + inline Void ResetHudComponentValues(int id) { return _i(0x450930E616475D0D, id); } // 0x450930e616475d0d0xd15b46daB323 + inline Void SetHudComponentPosition(int id, float x, float y) { return _i(0xAABB1F56E2A17CED, id, x, y); } // 0xaabb1f56e2a17ced0x2f3a0d15B323 + inline Vector3 GetHudComponentPosition(int id) { return _i(0x223CA69A8C4417FD, id); } // 0x223ca69a8c4417fd0x080dced6B323 + // This native does absolutely nothing, just a nullsub + inline Void ClearReminderMessage() { return _i(0xB57D8DD645CFA2CF); } // 0xb57d8dd645cfa2cf0x5bbcc934B323 + // World to relative screen coords, this world to screen will keep the text on screen. Was named _GET_SCREEN_COORD_FROM_WORLD_COORD, but this conflicts with 0x34E82F05DF2974F5. As that hash actually matches GetScreenCoordFromWorldCoord that one supercedes and this one was renamed to _GET_2D_COORD_FROM_3D_COORD + inline int GetHudScreenPositionFromWorldPosition(float worldX, float worldY, float worldZ, float* screenX, float* screenY) { return _i(0xF9904D11F1ACBEC3, worldX, worldY, worldZ, screenX, screenY); } // 0xf9904d11f1acbec30xfe9a39f8B323 + // Shows a menu for reporting UGC content. + inline Void OpenReportugcMenu() { return _i(0x523A590C1A3CC0D3); } // 0x523a590c1a3cc0d30x10de5150B323 + inline Void ForceCloseReportugcMenu() { return _i(0xEE4C0E6DBC6F2C6F); } // 0xee4c0e6dbc6f2c6f0x67649ee0B323 + inline BOOL IsReportugcMenuOpen() { return _i(0x9135584D09A3437E); } // 0x9135584d09a3437e0x9d2c94faB323 + inline BOOL IsFloatingHelpTextOnScreen(int hudIndex) { return _i(0x2432784ACA090DA4, hudIndex); } // 0x2432784aca090da40x45472fd5B323 + inline Void SetFloatingHelpTextScreenPosition(int hudIndex, float x, float y) { return _i(0x7679CC1BCEBE3D4C, hudIndex, x, y); } // 0x7679cc1bcebe3d4c0x198f32d7B323 + inline Void SetFloatingHelpTextWorldPosition(int hudIndex, float x, float y, float z) { return _i(0x784BA7E0ECEB4178, hudIndex, x, y, z); } // 0x784ba7e0eceb41780x93045157B323 + inline Void SetFloatingHelpTextToEntity(int hudIndex, Entity entity, float offsetX, float offsetY) { return _i(0xB094BC1DB4018240, hudIndex, entity, offsetX, offsetY); } // 0xb094bc1db40182400x18b012b7B323 + inline Void SetFloatingHelpTextStyle(int hudIndex, int p1, int p2, int p3, int p4, int p5) { return _i(0x788E7FD431BD67F1, hudIndex, p1, p2, p3, p4, p5); } // 0x788e7fd431bd67f10x97852a82B323 + inline Void ClearFloatingHelp(int hudIndex, BOOL p1) { return _i(0x50085246ABD3FEFA, hudIndex, p1); } // 0x50085246abd3fefa0xb181f88fB323 + // clanFlag: takes a number 0-5 + inline Void CreateMpGamerTagWithCrewColor(Player player, String username, BOOL pointedClanTag, BOOL isRockstarClan, String clanTag, int clanFlag, int r, int g, int b) { return _i(0x6DD05E9D83EFA4C9, player, username, pointedClanTag, isRockstarClan, clanTag, clanFlag, r, g, b); } // 0x6dd05e9d83efa4c90xc969f2d0B323 + inline BOOL IsMpGamerTagMovieActive() { return _i(0x6E0EB3EB47C8D7AA); } // 0x6e0eb3eb47c8d7aa0xefd2564aB323 + // clanFlag: takes a number 0-5 + inline int CreateFakeMpGamerTag(Ped ped, String username, BOOL pointedClanTag, BOOL isRockstarClan, String clanTag, int clanFlag) { return _i(0xBFEFE3321A3F5015, ped, username, pointedClanTag, isRockstarClan, clanTag, clanFlag); } // 0xbfefe3321a3f50150xf5cd2aa4B323 + inline Void RemoveMpGamerTag(int gamerTagId) { return _i(0x31698AA80E0223F8, gamerTagId); } // 0x31698aa80e0223f80x3d081fe4B323 + inline BOOL IsMpGamerTagActive(int gamerTagId) { return _i(0x4E929E7A5796FD26, gamerTagId); } // 0x4e929e7a5796fd260x60118951B323 + inline BOOL IsMpGamerTagFree(int gamerTagId) { return _i(0x595B5178E412E199, gamerTagId); } // 0x595b5178e412e1990x63959059B323 + // enum eMpGamerTagComponent + // { + // MP_TAG_GAMER_NAME, + // MP_TAG_CREW_TAG, + // MP_TAG_HEALTH_ARMOUR, + // MP_TAG_BIG_TEXT, + // MP_TAG_AUDIO_ICON, + // MP_TAG_USING_MENU, + // MP_TAG_PASSIVE_MODE, + // MP_TAG_WANTED_STARS, + // MP_TAG_DRIVER, + // MP_TAG_CO_DRIVER, + // MP_TAG_TAGGED, + // MP_TAG_GAMER_NAME_NEARBY, + // MP_TAG_ARROW, + // MP_TAG_PACKAGES, + // MP_TAG_INV_IF_PED_FOLLOWING, + // MP_TAG_RANK_TEXT, + // MP_TAG_TYPING, + // MP_TAG_BAG_LARGE, + // MP_TAG_ARROW, + // MP_TAG_GANG_CEO, + // MP_TAG_GANG_BIKER, + // MP_TAG_BIKER_ARROW, + // MP_TAG_MC_ROLE_PRESIDENT, + // MP_TAG_MC_ROLE_VICE_PRESIDENT, + // MP_TAG_MC_ROLE_ROAD_CAPTAIN, + // MP_TAG_MC_ROLE_SARGEANT, + // MP_TAG_MC_ROLE_ENFORCER, + // MP_TAG_MC_ROLE_PROSPECT, + // MP_TAG_TRANSMITTER, + // MP_TAG_BOMB + // }; + inline Void SetMpGamerTagVisibility(int gamerTagId, int component, BOOL toggle, Any p3) { return _i(0x63BB75ABEDC1F6A0, gamerTagId, component, toggle, p3); } // 0x63bb75abedc1f6a00xd41df479B323 + inline Void SetAllMpGamerTagsVisibility(int gamerTagId, BOOL toggle) { return _i(0xEE76FF7E6A0166B0, gamerTagId, toggle); } // 0xee76ff7e6a0166b00x767ded29B323 + // Displays a bunch of icons above the players name, and level, and their name twice + inline Void SetMpGamerTagsShouldUseVehicleHealth(int gamerTagId, BOOL toggle) { return _i(0xA67F9C46D612B6F1, gamerTagId, toggle); } // 0xa67f9c46d612b6f10xb01a5434B323 + inline Void SetMpGamerTagsShouldUsePointsHealth(int gamerTagId, BOOL toggle) { return _i(0xD29EC58C2F6B5014, gamerTagId, toggle); } // 0xd29ec58c2f6b5014B1365 + inline Void SetMpGamerTagsPointHealth(int gamerTagId, int value, int maximumValue) { return _i(0x1563FE35E9928E67, gamerTagId, value, maximumValue); } // 0x1563fe35e9928e67B1365 + // Sets a gamer tag's component colour + // + // gamerTagId is obtained using for example CreateFakeMpGamerTag + // Ranges from 0 to 255. 0 is grey health bar, ~50 yellow, 200 purple. + inline Void SetMpGamerTagColour(int gamerTagId, int component, int hudColorIndex) { return _i(0x613ED644950626AE, gamerTagId, component, hudColorIndex); } // 0x613ed644950626ae0x7e3aa40aB323 + // Ranges from 0 to 255. 0 is grey health bar, ~50 yellow, 200 purple. + // Should be enabled as flag (2). Has 0 opacity by default. + // + // - This was _SET_MP_GAMER_TAG_HEALTH_BAR_COLOR, + // -> Rockstar use the EU spelling of 'color' so I hashed the same name with COLOUR and it came back as the correct hash, so it has been corrected above. + inline Void SetMpGamerTagHealthBarColour(int gamerTagId, int hudColorIndex) { return _i(0x3158C77A7E888AB4, gamerTagId, hudColorIndex); } // 0x3158c77a7e888ab40x5777ec77B323 + // Sets flag's sprite transparency. 0-255. + inline Void SetMpGamerTagAlpha(int gamerTagId, int component, int alpha) { return _i(0xD48FE545CD46F857, gamerTagId, component, alpha); } // 0xd48fe545cd46f8570xf4418611B323 + // displays wanted star above head + inline Void SetMpGamerTagWantedLevel(int gamerTagId, int wantedlvl) { return _i(0xCF228E2AA03099C3, gamerTagId, wantedlvl); } // 0xcf228e2aa03099c30x0ebb003fB323 + inline Void SetMpGamerTagNumPackages(int gamerTagId, int p1) { return _i(0x9C16459B2324B2CF, gamerTagId, p1); } // 0x9c16459b2324b2cfB877 + inline Void SetMpGamerTagName(int gamerTagId, String string) { return _i(0xDEA2B8283BAA3944, gamerTagId, string); } // 0xdea2b8283baa39440x627a559bB323 + inline BOOL IsUpdatingMpGamerTagNameAndCrewDetails(int gamerTagId) { return _i(0xEB709A36958ABE0D, gamerTagId); } // 0xeb709a36958abe0d0xf11414c4B323 + inline Void SetMpGamerTagBigText(int gamerTagId, String string) { return _i(0x7B7723747CCB55B6, gamerTagId, string); } // 0x7b7723747ccb55b60x939218abB323 + inline int GetCurrentWebpageId() { return _i(0x01A358D9128B7A86); } // 0x01a358d9128b7a860xab5b7c18B323 + inline int GetCurrentWebsiteId() { return _i(0x97D47996FC48CBAD); } // 0x97d47996fc48cbad0x42a55b14B323 + // Returns the ActionScript flagValue. + // ActionScript flags are global flags that scaleforms use + // Flags found during testing + // 0: Returns 1 if the web_browser keyboard is open, otherwise 0 + // 1: Returns 1 if the player has clicked back twice on the opening page, otherwise 0 (web_browser) + // 2: Returns how many links the player has clicked in the web_browser scaleform, returns 0 when the browser gets closed + // 9: Returns the current selection on the mobile phone scaleform + // + // There are 20 flags in total. + inline int GetGlobalActionscriptFlag(int flagIndex) { return _i(0xE3B05614DCE1D014, flagIndex); } // 0xe3b05614dce1d0140xd217ee7eB323 + inline Void ResetGlobalActionscriptFlag(int flagIndex) { return _i(0xB99C4E4D9499DF29, flagIndex); } // 0xb99c4e4d9499df290x4c4c10cfB323 + inline BOOL IsWarningMessageReadyForControl() { return _i(0xAF42195A42C63BBA); } // 0xaf42195a42c63bbaB323 + // You can only use text entries. No custom text. + // + // Example: SetWarningMessage("t20", 3, "adder", false, -1, 0, 0, true); + // errorCode: shows an error code at the bottom left if nonzero + inline Void SetWarningMessage(String titleMsg, int flags, String promptMsg, BOOL p3, int p4, String p5, String p6, BOOL showBackground, int errorCode) { return _i(0x7B1776B3B53F8D74, titleMsg, flags, promptMsg, p3, p4, p5, p6, showBackground, errorCode); } // 0x7b1776b3b53f8d740xbe699bdeB323 + // Shows a warning message on screen with a header. + // Note: You can only use text entries. No custom text. You can recreate this easily with scaleforms. + // Example: https://i.imgur.com/ITJt8bJ.png + inline Void SetWarningMessageWithHeader(String entryHeader, String entryLine1, int instructionalKey, String entryLine2, BOOL p4, Any p5, Any* showBackground, Any* p7, BOOL p8, Any p9) { return _i(0xDC38CC1E35B6A5D7, entryHeader, entryLine1, instructionalKey, entryLine2, p4, p5, showBackground, p7, p8, p9); } // 0xdc38cc1e35b6a5d70x2db9eab5B323 + // You can use this native for custom input, without having to use any scaleform-related natives. + // The native must be called on tick. + // The entryHeader must be a valid label. + // For Single lines use JL_INVITE_N as entryLine1, JL_INVITE_ND for multiple. + // Notes: + // - additionalIntInfo: replaces first occurrence of ~1~ in provided label with an integer + // - additionalTextInfoLine1: replaces first occurrence of ~a~ in provided label, with your custom text + // - additionalTextInfoLine2: replaces second occurrence of ~a~ in provided label, with your custom text + // - showBackground: shows black background of the warning screen + // - errorCode: shows an error code at the bottom left if nonzero + // Example of usage: + // SetWarningMessageWithHeaderAndSubstringFlags("ALERT", "JL_INVITE_ND", 66, "", true, -1, -1, "Testing line 1", "Testing line 2", true, 0); + // Screenshot: + // https://imgur.com/a/IYA7vJ8 + inline Void SetWarningMessageWithHeaderAndSubstringFlags(String entryHeader, String entryLine1, int instructionalKey, String entryLine2, BOOL p4, Any p5, Any additionalIntInfo, String additionalTextInfoLine1, String additionalTextInfoLine2, BOOL showBackground, int errorCode) { return _i(0x701919482C74B5AB, entryHeader, entryLine1, instructionalKey, entryLine2, p4, p5, additionalIntInfo, additionalTextInfoLine1, additionalTextInfoLine2, showBackground, errorCode); } // 0x701919482c74b5ab0x749929d3B323 + inline Void SetWarningMessageWithHeaderExtended(String entryHeader, String entryLine1, int flags, String entryLine2, BOOL p4, Any p5, Any* p6, Any* p7, BOOL showBg, Any p9, Any p10) { return _i(0x38B55259C2E078ED, entryHeader, entryLine1, flags, entryLine2, p4, p5, p6, p7, showBg, p9, p10); } // 0x38b55259c2e078edB1493 + // labelTitle: Label of the alert's title. + // labelMsg: Label of the alert's message. + // p2: This is an enum, check the description for a list. + // p3: This is an enum, check the description for a list. + // labelMsg2: Label of another message line + // p5: usually 0 + // p6: usually -1 + // p7: usually 0 + // p8: unknown label + // p9: unknown label + // background: Set to anything other than 0 or false (even any string) and it will draw a background. Setting it to 0 or false will draw no background. + // errorCode: Error code, shown at the bottom left if set to value other than 0. + // + // instructionalKey enum list: + // Buttons = { + // Empty = 0, + // Select = 1, -- (RETURN) + // Ok = 2, -- (RETURN) + // Yes = 4, -- (RETURN) + // Back = 8, -- (ESC) + // Cancel = 16, -- (ESC) + // No = 32, -- (ESC) + // RetrySpace = 64, -- (SPACE) + // Restart = 128, -- (SPACE) + // Skip = 256, -- (SPACE) + // Quit = 512, -- (ESC) + // Adjust = 1024, -- (ARROWS) + // SpaceKey = 2048, -- (SPACE) + // Share = 4096, -- (SPACE) + // SignIn = 8192, -- (SPACE) + // Continue = 16384, -- (RETURN) + // AdjustLeftRight = 32768, -- (SCROLL L/R) + // AdjustUpDown = 65536, -- (SCROLL U/D) + // Overwrite = 131072, -- (SPACE) + // SocialClubSignup = 262144, -- (RETURN) + // Confirm = 524288, -- (RETURN) + // Queue = 1048576, -- (RETURN) + // RetryReturn = 2097152, -- (RETURN) + // BackEsc = 4194304, -- (ESC) + // SocialClub = 8388608, -- (RETURN) + // Spectate = 16777216, -- (SPACE) + // OkEsc = 33554432, -- (ESC) + // CancelTransfer = 67108864, -- (ESC) + // LoadingSpinner = 134217728, + // NoReturnToGTA = 268435456, -- (ESC) + // CancelEsc = 536870912, -- (ESC) + // } + // + // Alt = { + // Empty = 0, + // No = 1, -- (SPACE) + // Host = 2, -- (ESC) + // SearchForJob = 4, -- (RETURN) + // ReturnKey = 8, -- (TURN) + // Freemode = 16, -- (ESC) + // } + // + // Example: https://i.imgur.com/TvmNF4k.png + inline Void SetWarningMessageWithHeaderAndSubstringFlagsExtended(String labelTitle, String labelMessage, int p2, int p3, String labelMessage2, BOOL p5, int p6, int p7, String p8, String p9, BOOL background, int errorCode) { return _i(0x15803FEC3B9A872B, labelTitle, labelMessage, p2, p3, labelMessage2, p5, p6, p7, p8, p9, background, errorCode); } // 0x15803fec3b9a872bB573 + // Has to do with the confirmation overlay (E.g. confirm exit) + inline Hash GetWarningScreenMessageHash() { return _i(0x81DF9ABA6C83DFF9); } // 0x81df9aba6c83dff9B1290 + // Some sort of list displayed in a warning message. Yet unknown how to prevent repeating. + // Param names copied from the corresponding scaleform function "SET_LIST_ROW". + // Example: https://i.imgur.com/arKvOYx.png + inline BOOL SetWarningMessageOptionItems(int index, String name, int cash, int rp, int lvl, int colour) { return _i(0x0C5A80A9E096D529, index, name, cash, rp, lvl, colour); } // 0x0c5a80a9e096d529B323 + inline BOOL SetWarningMessageOptionHighlight(Any p0) { return _i(0xDAF87174BE7454FF, p0); } // 0xdaf87174be7454ffB323 + inline Void RemoveWarningMessageOptionItems() { return _i(0x6EF54AB721DC6242); } // 0x6ef54ab721dc6242B323 + inline BOOL IsWarningMessageActive() { return _i(0xE18B138FABC53103); } // 0xe18b138fabc531030x94c834adB323 + inline Void ClearDynamicPauseMenuErrorMessage() { return _i(0x7792424AA0EAC32E); } // 0x7792424aa0eac32e0x2f9a309cB323 + // If toggle is true, the map is shown in full screen + // If toggle is false, the map is shown in normal mode + inline Void CustomMinimapSetActive(BOOL toggle) { return _i(0x5354C5BA2EA868A4, toggle); } // 0x5354c5ba2ea868a40xe4fd20d8B323 + // Sets the sprite of the next BLIP_GALLERY blip, values used in the native scripts: 143 (ObjectiveBlue), 144 (ObjectiveGreen), 145 (ObjectiveRed), 146 (ObjectiveYellow). + inline Void CustomMinimapSetBlipObject(int spriteId) { return _i(0x1EAE6DD17B7A5EFA, spriteId); } // 0x1eae6dd17b7a5efa0x13e7a5a9B323 + // Add a BLIP_GALLERY at the specific coordinate. Used in fm_maintain_transition_players to display race track points. + inline int CustomMinimapCreateBlip(float x, float y, float z) { return _i(0x551DF99658DB6EE8, x, y, z); } // 0x551df99658db6ee80x786ca0a2B323 + inline Void CustomMinimapClearBlips() { return _i(0x2708FC083123F9FF); } // 0x2708fc083123f9ff0xcbec9369B323 + // Doesn't actually return anything. + inline BOOL ForceSonarBlipsThisFrame() { return _i(0x1121BFA1A1A522A8); } // 0x1121bfa1a1a522a80x3f4afb13B323 + inline Blip GetNorthBlidIndex() { return _i(0x3F0CF9CB7E589B88); } // 0x3f0cf9cb7e589b88B463 + // Toggles whether or not name labels are shown on the expanded minimap next to player blips, like in GTA:O. + // Doesn't need to be called every frame. + // Preview: https://i.imgur.com/DfqKWfJ.png + // + // Make sure to call SetBlipCategory with index 7 for this to work on the desired blip. + inline Void DisplayPlayerNameTagsOnBlips(BOOL toggle) { return _i(0x82CEDC33687E1F50, toggle); } // 0x82cedc33687e1f500x2f28f0a6B323 + // This native does absolutely nothing, just a nullsub + inline Void DrawFrontendBackgroundThisFrame() { return _i(0x211C4EF450086857); } // 0x211c4ef4500868570x801d0d86B323 + inline Void DrawHudOverFadeThisFrame() { return _i(0xBF4F34A85CA2970C); } // 0xbf4f34a85ca2970c0x317775dfB323 + // Does stuff like this: + // gyazo.com/7fcb78ea3520e3dbc5b2c0c0f3712617 + // + // Example: + // int GetHash = GetHashKey("fe_menu_version_corona_lobby"); + // ActivateFrontendMenu(GetHash, 0, -1); + // + // BOOL p1 is a toggle to define the game in pause. + // int p2 is unknown but -1 always works, not sure why though. + // + // [30/03/2017] ins1de : + // + // the int p2 is actually a component variable. When the pause menu is visible, it opens the tab related to it. + // + // Example : Function.Call(Hash.ActivateFrontendMenu,-1171018317, 0, 42); + // Result : Opens the "Online" tab without pausing the menu, with -1 it opens the map.Below is a list of all known Frontend Menu Hashes. + // - FE_MENU_VERSION_SP_PAUSE + // - FE_MENU_VERSION_MP_PAUSE + // - FE_MENU_VERSION_CREATOR_PAUSE + // - FE_MENU_VERSION_CUTSCENE_PAUSE + // - FE_MENU_VERSION_SAVEGAME + // - FE_MENU_VERSION_PRE_LOBBY + // - FE_MENU_VERSION_LOBBY + // - FE_MENU_VERSION_MP_CHARACTER_SELECT + // - FE_MENU_VERSION_MP_CHARACTER_CREATION + // - FE_MENU_VERSION_EMPTY + // - FE_MENU_VERSION_EMPTY_NO_BACKGROUND + // - FE_MENU_VERSION_TEXT_SELECTION + // - FE_MENU_VERSION_CORONA + // - FE_MENU_VERSION_CORONA_LOBBY + // - FE_MENU_VERSION_CORONA_JOINED_PLAYERS + // - FE_MENU_VERSION_CORONA_INVITE_PLAYERS + // - FE_MENU_VERSION_CORONA_INVITE_FRIENDS + // - FE_MENU_VERSION_CORONA_INVITE_CREWS + // - FE_MENU_VERSION_CORONA_INVITE_MATCHED_PLAYERS + // - FE_MENU_VERSION_CORONA_INVITE_LAST_JOB_PLAYERS + // - FE_MENU_VERSION_CORONA_RACE + // - FE_MENU_VERSION_CORONA_BETTING + // - FE_MENU_VERSION_JOINING_SCREEN + // - FE_MENU_VERSION_LANDING_MENU + // - FE_MENU_VERSION_LANDING_KEYMAPPING_MENU + inline Void ActivateFrontendMenu(Hash menuhash, BOOL togglePause, int component) { return _i(0xEF01D36B9C9D0C7B, menuhash, togglePause, component); } // 0xef01d36b9c9d0c7b0x01d83872B323 + // Before using this native click the native above and look at the decription. + // + // Example: + // int GetHash = Function.Call(Hash.GetHashKey, "fe_menu_version_corona_lobby"); + // Function.Call(Hash.ActivateFrontendMenu, GetHash, 0, -1); + // Function.Call(Hash.RestartFrontendMenu(GetHash, -1); + // + // This native refreshes the frontend menu. + // + // p1 = Hash of Menu + // p2 = Unknown but always works with -1. + inline Void RestartFrontendMenu(Hash menuHash, int p1) { return _i(0x10706DC6AD2D49C0, menuHash, p1); } // 0x10706dc6ad2d49c00xb07daf98B323 + // if (HUD::GetCurrentFrontendMenuVersion() == joaat("fe_menu_version_empty_no_background")) + inline Hash GetCurrentFrontendMenuVersion() { return _i(0x2309595AD6145265); } // 0x2309595ad61452650x33d6868fB323 + inline Void SetPauseMenuActive(BOOL toggle) { return _i(0xDF47FC56C71569CF, toggle); } // 0xdf47fc56c71569cf0x1dcd878eB323 + inline Void DisableFrontendThisFrame() { return _i(0x6D3465A73092F0E6); } // 0x6d3465a73092f0e60xd86a029eB323 + inline Void SuppressFrontendRenderingThisFrame() { return _i(0xBA751764F0821256); } // 0xba751764f08212560x7f349900B323 + // Allows opening the pause menu this frame, when the player is dead. + inline Void AllowPauseWhenNotInStateOfPlayThisFrame() { return _i(0xCC3FDDED67BCFC63); } // 0xcc3fdded67bcfc630x630cd8eeB323 + inline Void SetFrontendActive(BOOL active) { return _i(0x745711A75AB09277, active); } // 0x745711a75ab092770x81e1ad32B323 + inline BOOL IsPauseMenuActive() { return _i(0xB0034A223497FFCB); } // 0xb0034a223497ffcb0xd3600591B323 + inline BOOL IsStorePendingNetworkShutdownToOpen() { return _i(0x2F057596F2BD0061); } // 0x2f057596f2bd00610xc85c4487B323 + // Returns: + // + // 0 + // 5 + // 10 + // 15 + // 20 + // 25 + // 30 + // 35 + // + inline int GetPauseMenuState() { return _i(0x272ACD84970869C5); } // 0x272acd84970869c50x92f50134B323 + inline Vector3 GetPauseMenuPosition() { return _i(0x5BFF36D6ED83E0AE); } // 0x5bff36d6ed83e0aeB323 + inline BOOL IsPauseMenuRestarting() { return _i(0x1C491717107431C7); } // 0x1c491717107431c70x3c4cf4d9B323 + // Not present in retail version of the game, actual definiton seems to be + // _LOG_DEBUG_INFO(String category, String debugText); + inline Void ForceScriptedGfxWhenFrontendActive(String p0) { return _i(0x2162C446DFDF38FD, p0); } // 0x2162c446dfdf38fd0x2dfd35c7B323 + inline Void PauseMenuceptionGoDeeper(int page) { return _i(0x77F16B447824DA6C, page); } // 0x77f16b447824da6c0x0a89336cB323 + inline Void PauseMenuceptionTheKick() { return _i(0xCDCA26E80FAECB8F); } // 0xcdca26e80faecb8f0xc84be309B323 + inline Void PauseToggleFullscreenMap(Any p0) { return _i(0x2DE6C5E2E996F178, p0); } // 0x2de6c5e2e996f178B372 + // Activates the specified frontend menu context. + // pausemenu.xml defines some specific menu options using 'context'. Context is basically a 'condition'. + // The `*ALL*` part of the context means that whatever is being defined, will be active when any or all of those conditions after `*ALL*` are met. + // The `*NONE*` part of the context section means that whatever is being defined, will NOT be active if any or all of the conditions after `*NONE*` are met. + // This basically allows you to hide certain menu sections, or things like instructional buttons. + inline Void PauseMenuActivateContext(Hash contextHash) { return _i(0xDD564BDD0472C936, contextHash); } // 0xdd564bdd0472c9360x9fe8fd5eB323 + inline Void PauseMenuDeactivateContext(Hash contextHash) { return _i(0x444D8CF241EC25C5, contextHash); } // 0x444d8cf241ec25c50x0029046eB323 + inline BOOL PauseMenuIsContextActive(Hash contextHash) { return _i(0x84698AB38D0C6636, contextHash); } // 0x84698ab38d0c66360xc51bc42fB323 + inline BOOL PauseMenuIsContextMenuActive() { return _i(0x2A25ADC48F87841F); } // 0x2a25adc48f87841f0x016d7af9B323 + inline int PauseMenuGetHairColourIndex() { return _i(0xDE03620F8703A9DF); } // 0xde03620f8703a9dfB323 + inline int PauseMenuGetMouseHoverIndex() { return _i(0x359AF31A4B52F5ED); } // 0x359af31a4b52f5edB323 + inline int PauseMenuGetMouseHoverUniqueId() { return _i(0x13C4B962653A5280); } // 0x13c4b962653a5280B323 + inline BOOL PauseMenuGetMouseClickEvent(Any* p0, Any* p1, Any* p2) { return _i(0xC8E1071177A23BE5, p0, p1, p2); } // 0xc8e1071177a23be5B323 + inline Void PauseMenuRedrawInstructionalButtons(int p0) { return _i(0x4895BDEA16E7C080, p0); } // 0x4895bdea16e7c0800x15b24768B323 + inline Void PauseMenuSetBusySpinner(BOOL p0, int position, int spinnerIndex) { return _i(0xC78E239AC5B2DDB9, p0, position, spinnerIndex); } // 0xc78e239ac5b2ddb90x6c67131aB323 + inline Void PauseMenuSetWarnOnTabChange(BOOL p0) { return _i(0xF06EBB91A81E09E3, p0); } // 0xf06ebb91a81e09e30x11d09737B323 + inline BOOL IsFrontendReadyForControl() { return _i(0x3BAB9A4E4F2FF5C7); } // 0x3bab9a4e4f2ff5c70xd3bf3abdB323 + // Disables frontend (works in custom frontends, not sure about regular pause menu) navigation keys on keyboard. Not sure about controller. Does not disable mouse controls. No need to call this every tick. + // + // To enable the keys again, use `0x14621BB1DF14E2B2`. + inline Void TakeControlOfFrontend() { return _i(0xEC9264727EEC0F28); } // 0xec9264727eec0f280xc06b763dB323 + // Enables frontend (works in custom frontends, not sure about regular pause menu) navigation keys on keyboard if they were disabled using the native below. + // To disable the keys, use `0xEC9264727EEC0F28` + inline Void ReleaseControlOfFrontend() { return _i(0x14621BB1DF14E2B2); } // 0x14621bb1df14e2b20xb9392ce7B323 + inline BOOL CodeWantsScriptToTakeControl() { return _i(0x66E7CB63C97B7D20); } // 0x66e7cb63c97b7d200x92dafa78B323 + inline int GetScreenCodeWantsScriptToControl() { return _i(0x593FEAE1F73392D4); } // 0x593feae1f73392d40x22ca9f2aB323 + inline BOOL IsNavigatingMenuContent() { return _i(0x4E3CD0EF8A489541); } // 0x4e3cd0ef8a4895410xda7951a2B323 + inline BOOL HasMenuTriggerEventOccurred() { return _i(0xF284AC67940C6812); } // 0xf284ac67940c68120x7d95afffB323 + inline BOOL HasMenuLayoutChangedEventOccurred() { return _i(0x2E22FEFA0100275E); } // 0x2e22fefa0100275e0x96863460B323 + inline Void SetSavegameListUniqueId(Any p0) { return _i(0x0CF54F20DE43879C, p0); } // 0x0cf54f20de43879cB323 + inline Void GetMenuTriggerEventDetails(int* lastItemMenuId, int* selectedItemUniqueId) { return _i(0x36C1451A88A09630, lastItemMenuId, selectedItemUniqueId); } // 0x36c1451a88a096300x8543aac8B323 + // lastItemMenuId: this is the menuID of the last selected item minus 1000 (lastItem.menuID - 1000) + // selectedItemMenuId: same as lastItemMenuId except for the currently selected menu item + // selectedItemUniqueId: this is uniqueID of the currently selected menu item + // + // when the pausemenu is closed: + // lastItemMenuId = -1 + // selectedItemMenuId = -1 + // selectedItemUniqueId = 0 + // + // when the header gains focus: + // lastItemMenuId updates as normal or 0 if the pausemenu was just opened + // selectedItemMenuId becomes a unique id for the pausemenu page that focus was taken from (?) or 0 if the pausemenu was just opened + // selectedItemUniqueId = -1 + // + // when focus is moved from the header to a pausemenu page: + // lastItemMenuId becomes a unique id for the pausemenu page that focus was moved to (?) + // selectedItemMenuId = -1 + // selectedItemUniqueId updates as normal + inline Void GetMenuLayoutChangedEventDetails(int* lastItemMenuId, int* selectedItemMenuId, int* selectedItemUniqueId) { return _i(0x7E17BE53E1AAABAF, lastItemMenuId, selectedItemMenuId, selectedItemUniqueId); } // 0x7e17be53e1aaabaf0x6025aa2fB323 + inline BOOL GetPmPlayerCrewColor(int* r, int* g, int* b) { return _i(0xA238192F33110615, r, g, b); } // 0xa238192f331106150x46794eb2B323 + inline BOOL GetMenuPedIntStat(Any p0, Any* p1) { return _i(0xEF4CED81CEBEDC6D, p0, p1); } // 0xef4ced81cebedc6d0x4370999eB323 + inline BOOL GetCharacterMenuPedIntStat(Any p0, Any* p1, Any p2) { return _i(0xCA6B2F7CE32AB653, p0, p1, p2); } // 0xca6b2f7ce32ab653B323 + inline BOOL GetMenuPedMaskedIntStat(Hash statHash, int* outValue, int mask, BOOL p3) { return _i(0x90A6526CF0381030, statHash, outValue, mask, p3); } // 0x90a6526cf03810300xd6cc4766B323 + inline BOOL GetCharacterMenuPedMaskedIntStat(Hash statHash, Any* outValue, int p2, int mask, BOOL p4) { return _i(0x24A49BEAF468DC90, statHash, outValue, p2, mask, p4); } // 0x24a49beaf468dc90B323 + inline BOOL GetMenuPedFloatStat(Hash statHash, float* outValue) { return _i(0x5FBD7095FE7AE57F, statHash, outValue); } // 0x5fbd7095fe7ae57f0x51972b04B323 + inline BOOL GetCharacterMenuPedFloatStat(float statHash, float* outValue, BOOL p2) { return _i(0x8F08017F9D7C47BD, statHash, outValue, p2); } // 0x8f08017f9d7c47bdB323 + // p0 was always 0xAE2602A3. + inline BOOL GetMenuPedBoolStat(Hash statHash, BOOL* outValue) { return _i(0x052991E59076E4E4, statHash, outValue); } // 0x052991e59076e4e40xd43bb56dB323 + inline Void ClearPedInPauseMenu() { return _i(0x5E62BE5DC58E9E06); } // 0x5e62be5dc58e9e060x28058acfB323 + // p1 is either 1 or 2 in the PC scripts. + inline Void GivePedToPauseMenu(Ped ped, int p1) { return _i(0xAC0BFBDC3BE00E14, ped, p1); } // 0xac0bfbdc3be00e140x2ad2c9ceB323 + // Toggles the light state for the pause menu ped in frontend menus. + // + // This is used by R* in combination with `SetPauseMenuPedSleepState` to toggle the "offline" or "online" state in the "friends" tab of the pause menu in GTA Online. + // + // + // Example: + // Lights On: https://vespura.com/hi/i/2019-04-01_16-09_540ee_1015.png + // Lights Off: https://vespura.com/hi/i/2019-04-01_16-10_8b5e7_1016.png + inline Void SetPauseMenuPedLighting(BOOL state) { return _i(0x3CA6050692BC61B0, state); } // 0x3ca6050692bc61b00x127310ebB323 + // Toggles the pause menu ped sleep state for frontend menus. + // + // Example: https://vespura.com/hi/i/2019-04-01_15-51_8ed38_1014.gif + // + // `state` 0 will make the ped slowly fall asleep, 1 will slowly wake the ped up. + inline Void SetPauseMenuPedSleepState(BOOL state) { return _i(0xECF128344E9FF9F1, state); } // 0xecf128344e9ff9f10x8f45d327B323 + inline Void OpenOnlinePoliciesMenu() { return _i(0x805D7CBB36FD6C4C); } // 0x805d7cbb36fd6c4c0x19fcbbb2B323 + inline BOOL AreOnlinePoliciesUpToDate() { return _i(0xF13FE2A80C05C561); } // 0xf13fe2a80c05c5610x850690ffB323 + // Returns the same as IsSocialClubActive + inline BOOL IsOnlinePoliciesMenuActive() { return _i(0x6F72CD94F7B5B68C); } // 0x6f72cd94f7b5b68c0x9d4934f4B323 + // Uses the `SOCIAL_CLUB2` scaleform. + // menu: GALLERY, MISSIONS, CREWS, MIGRATE, PLAYLISTS, JOBS + inline Void OpenSocialClubMenu(Hash menu) { return _i(0x75D3691713C3B05A, menu); } // 0x75d3691713c3b05a0x57218529B323 + inline Void CloseSocialClubMenu() { return _i(0xD2B32BE3FC1626C6); } // 0xd2b32be3fc1626c60x5f86aa39B323 + // HUD::SetSocialClubTour("Gallery"); + // HUD::SetSocialClubTour("Missions"); + // HUD::SetSocialClubTour("General"); + // HUD::SetSocialClubTour("Playlists"); + inline Void SetSocialClubTour(String name) { return _i(0x9E778248D6685FE0, name); } // 0x9e778248d6685fe00x7ad67c95B323 + inline BOOL IsSocialClubActive() { return _i(0xC406BE343FC4B9AF); } // 0xc406be343fc4b9af0xd4da14efB323 + inline Void SetTextInputBoxEnabled(BOOL p0) { return _i(0x1185A8087587322C, p0); } // 0x1185a8087587322cB323 + inline Void ForceCloseTextInputBox() { return _i(0x8817605C2BA76200); } // 0x8817605c2ba76200B323 + inline Void SetAllowCommaOnTextInput(Any p0) { return _i(0x577599CCED639CA2, p0); } // 0x577599cced639ca2B505 + inline Void OverrideMpTextChatTeamString(Hash gxtEntryHash) { return _i(0x6A1738B4323FE2D9, gxtEntryHash); } // 0x6a1738b4323fe2d9B573 + // Returns whether or not the text chat (MULTIPLAYER_CHAT Scaleform component) is active. + inline BOOL IsMpTextChatTyping() { return _i(0xB118AF58B5F332A1); } // 0xb118af58b5f332a1B323 + inline Void CloseMpTextChat() { return _i(0x1AC8F4AD40E22127); } // 0x1ac8f4ad40e22127B323 + inline Void MpTextChatIsTeamJob(Any p0) { return _i(0x7C226D5346D4D10A, p0); } // 0x7c226d5346d4d10aB372 + inline Void OverrideMpTextChatColor(int p0, int hudColor) { return _i(0xF47E567B3630DD12, p0, hudColor); } // 0xf47e567b3630dd12B678 + // Hides the chat history, closes the input box and makes it unable to be opened unless called again with FALSE. + inline Void MpTextChatDisable(BOOL toggle) { return _i(0x1DB21A44B09E8BA3, toggle); } // 0x1db21a44b09e8ba3B323 + inline Void FlagPlayerContextInTournament(BOOL toggle) { return _i(0xCEF214315D276FD1, toggle); } // 0xcef214315d276fd10xff06772aB323 + // This native turns on the AI blip on the specified ped. It also disappears automatically when the ped is too far or if the ped is dead. You don't need to control it with other natives. + // + // See gtaforums.com/topic/884370-native-research-ai-blips for further information. + inline Void SetPedHasAiBlip(Ped ped, BOOL hasCone) { return _i(0xD30C50DF888D58B5, ped, hasCone); } // 0xd30c50df888d58b50x96c4c4ddB323 + // color: see SetBlipColour + inline Void SetPedHasAiBlipWithColour(Ped ped, BOOL hasCone, int color) { return _i(0xB13DCB4C6FAAD238, ped, hasCone, color); } // 0xb13dcb4c6faad238B505 + inline BOOL DoesPedHaveAiBlip(Ped ped) { return _i(0x15B8ECF844EE67ED, ped); } // 0x15b8ecf844ee67ed0x3be1257fB323 + inline Void SetPedAiBlipGangId(Ped ped, int gangId) { return _i(0xE52B8E7F85D39A08, ped, gangId); } // 0xe52b8e7f85d39a080xd8e31b1aB323 + inline Void SetPedAiBlipHasCone(Ped ped, BOOL toggle) { return _i(0x3EED80DFF7325CAA, ped, toggle); } // 0x3eed80dff7325caa0x872c2cfbB323 + inline Void SetPedAiBlipForcedOn(Ped ped, BOOL toggle) { return _i(0x0C4BBF625CA98C4E, ped, toggle); } // 0x0c4bbf625ca98c4e0xffdf46f0B323 + inline Void SetPedAiBlipNoticeRange(Ped ped, float range) { return _i(0x97C65887D4B37FA9, ped, range); } // 0x97c65887d4b37fa90xf9dc2af7B323 + inline Void SetPedAiBlipSprite(Ped ped, int spriteId) { return _i(0xFCFACD0DB9D7A57D, ped, spriteId); } // 0xfcfacd0db9d7a57dB877 + inline Blip GetAiPedPedBlipIndex(Ped ped) { return _i(0x7CD934010E115C2C, ped); } // 0x7cd934010e115c2c0x06349065B323 + // Returns the current AI BLIP for the specified ped + inline Blip GetAiPedVehicleBlipIndex(Ped ped) { return _i(0x56176892826A4FE8, ped); } // 0x56176892826a4fe80xca52cf43B323 + inline BOOL HasDirectorModeBeenLaunchedByCode() { return _i(0xA277800A9EAE340E); } // 0xa277800a9eae340eB323 + inline Void SetDirectorModeLaunchedByScript() { return _i(0x2632482FD6B9AB87); } // 0x2632482fd6b9ab87B323 + // If toggle is true, hides special ability bar / character name in the pause menu + // If toggle is false, shows special ability bar / character name in the pause menu + inline Void SetPlayerIsInDirectorMode(BOOL toggle) { return _i(0x808519373FD336A3, toggle); } // 0x808519373fd336a3B323 + inline Void SetDirectorModeAvailable(BOOL toggle) { return _i(0x04655F9D075D0AE5, toggle); } // 0x04655f9d075d0ae5B323 + inline Void HideHudmarkersThisFrame() { return _i(0x243296A510B562B6); } // 0x243296a510b562b6B2060 } namespace INTERIOR { - inline float GetInteriorHeading(Interior interior) { return _i(0xF49B58631D9E22D9, interior); } // 0xf49b58631d9e22d9B1493 - inline Void GetInteriorLocationAndNamehash(Interior interior, Vector3* position, Hash* nameHash) { return _i(0x252BDC06B73FA6EA, interior, position, nameHash); } // 0x252bdc06b73fa6ea0x75885cb3B1290 - // Returns the group ID of the specified interior. - // 0 = default - // 1 = subway station, subway tracks, sewers - // 3 = train tunnel under mirror park - // 5 = tunnel near del perro - // 6 = train tunnel near chilliad - // 7 = train tunnel near josiah - // 8 = train tunnel in sandy shores - // 9 = braddock tunnel (near chilliad) - // 12 = tunnel under fort zancudo - // 14 = train tunnel under cypress flats - // 18 = rockford plaza parking garage - // 19 = arcadius parking garage - // 20 = union depository parking garage - // 21 = fib parking garage - inline int GetInteriorGroupId(Interior interior) { return _i(0xE4A84ABF135EF91A, interior); } // 0xe4a84abf135ef91a0x09d6376fB323 - inline Vector3 GetOffsetFromInteriorInWorldCoords(Interior interior, float x, float y, float z) { return _i(0x9E3B3E6D66F6E22F, interior, x, y, z); } // 0x9e3b3e6d66f6e22f0x7d8f26a1B323 - inline BOOL IsInteriorScene() { return _i(0xBC72B5D7A1CBD54D); } // 0xbc72b5d7a1cbd54d0x55226c13B323 - inline BOOL IsValidInterior(Interior interior) { return _i(0x26B0E73D7EAAF4D3, interior); } // 0x26b0e73d7eaaf4d30x39c0b635B323 - inline Void ClearRoomForEntity(Entity entity) { return _i(0xB365FC0C4E27FFA7, entity); } // 0xb365fc0c4e27ffa70x7ddadb92B323 - inline Void ForceRoomForEntity(Entity entity, Interior interior, Hash roomHashKey) { return _i(0x52923C4710DD9907, entity, interior, roomHashKey); } // 0x52923c4710dd99070x10bd4435B323 - // Gets the room hash key from the room that the specified entity is in. Each room in every interior has a unique key. Returns 0 if the entity is outside. - inline Hash GetRoomKeyFromEntity(Entity entity) { return _i(0x47C2A06D4F5F424B, entity); } // 0x47c2a06d4f5f424b0xe4acf8c3B323 - // Seems to do the exact same as INTERIOR::GetRoomKeyFromEntity - inline Hash GetKeyForEntityInRoom(Entity entity) { return _i(0x399685DB942336BC, entity); } // 0x399685db942336bc0x91ea80efB323 - // Returns the handle of the interior that the entity is in. Returns 0 if outside. - inline Interior GetInteriorFromEntity(Entity entity) { return _i(0x2107BA504071A6BB, entity); } // 0x2107ba504071a6bb0x5c644614B323 - inline Void RetainEntityInInterior(Entity entity, Interior interior) { return _i(0x82EBB79E258FA2B7, entity, interior); } // 0x82ebb79e258fa2b70xe645e162B323 - // Immediately removes entity from an interior. Like sets entity to `limbo` room. - inline Void ClearInteriorStateOfEntity(Entity entity) { return _i(0x85D5422B2039A70D, entity); } // 0x85d5422b2039a70dB2189 - inline Void ForceActivatingTrackingOnEntity(Any p0, Any p1) { return _i(0x38C1CB1CB119A016, p0, p1); } // 0x38c1cb1cb119a016B1493 - inline Void ForceRoomForGameViewport(int interiorID, Hash roomHashKey) { return _i(0x920D853F3E17F1DA, interiorID, roomHashKey); } // 0x920d853f3e17f1da0xd79803b5B323 - // Example of use (carmod_shop) - // INTERIOR::SetRoomForGameViewportByName("V_CarModRoom"); - inline Void SetRoomForGameViewportByName(String roomName) { return _i(0xAF348AFCB575A441, roomName); } // 0xaf348afcb575a4410x1f6b4b13B323 - // Usage: INTERIOR::SetRoomForGameViewportByKey(INTERIOR::GetKeyForEntityInRoom(PLAYER::PlayerPedId())); - inline Void SetRoomForGameViewportByKey(Hash roomHashKey) { return _i(0x405DC2AEF6AF95B9, roomHashKey); } // 0x405dc2aef6af95b90x0e9529ccB323 - inline Hash GetRoomKeyForGameViewport() { return _i(0xA6575914D2A0B450); } // 0xa6575914d2a0b4500x4ff3d3f5B323 - inline Void ClearRoomForGameViewport() { return _i(0x23B59D8912F94246); } // 0x23b59d8912f942460x617dc75dB323 - // Returns the current interior id from gameplay camera - inline Interior GetInteriorFromPrimaryView() { return _i(0xE7D267EC6CA966C3); } // 0xe7d267ec6ca966c30xa83c3d15B1604 - // Returns interior ID from specified coordinates. If coordinates are outside, then it returns 0. - // - // Example for VB.NET - // Dim interiorID As Integer = Native.Function.Call(Of Integer)(Hash.GetInteriorAtCoords, X, Y, Z) - inline Interior GetInteriorAtCoords(float x, float y, float z) { return _i(0xB0F7F8663821D9C3, x, y, z); } // 0xb0f7f8663821d9c30xa17fbf37B323 - inline Void AddPickupToInteriorRoomByName(Pickup pickup, String roomName) { return _i(0x3F6167F351168730, pickup, roomName); } // 0x3f6167f3511687300xa2a73564B323 - inline Void PinInteriorInMemory(Interior interior) { return _i(0x2CA429C029CCF247, interior); } // 0x2ca429c029ccf2470x3ada414eB323 - // Does something similar to INTERIOR::DisableInterior. - // - // You don't fall through the floor but everything is invisible inside and looks the same as when INTERIOR::DisableInterior is used. Peds behaves normally inside. - inline Void UnpinInterior(Interior interior) { return _i(0x261CCE7EED010641, interior); } // 0x261cce7eed0106410xfcff792aB323 - inline BOOL IsInteriorReady(Interior interior) { return _i(0x6726BDCCC1932F0E, interior); } // 0x6726bdccc1932f0e0xe1ef6450B323 - // Only used once in the entire game scripts. - // Does not actually return anything. - inline BOOL SetInteriorInUse(Interior interior) { return _i(0x4C2330E61D3DEB56, interior); } // 0x4c2330e61d3deb56B323 - // Returns the interior ID representing the requested interior at that location (if found?). The supplied interior string is not the same as the one used to load the interior. - // - // Use: INTERIOR::UnpinInterior(INTERIOR::GetInteriorAtCoordsWithType(x, y, z, interior)) - // - // Interior types include: "V_Michael", "V_Franklins", "V_Franklinshouse", etc.. you can find them in the scripts. - // - // Not a very useful native as you could just use GetInteriorAtCoords instead and get the same result, without even having to specify the interior type. - inline Interior GetInteriorAtCoordsWithType(float x, float y, float z, String interiorType) { return _i(0x05B7A89BD78797FC, x, y, z, interiorType); } // 0x05b7a89bd78797fc0x96525b06B323 - // Hashed version of GetInteriorAtCoordsWithType - inline Interior GetInteriorAtCoordsWithTypehash(float x, float y, float z, Hash typeHash) { return _i(0xF0F77ADB9F67E79D, x, y, z, typeHash); } // 0xf0f77adb9f67e79d0x11718507B323 - inline Void ActivateInteriorGroupsUsingCamera() { return _i(0x483ACA1176CA93F1); } // 0x483aca1176ca93f1B1103 - // Returns true if the collision at the specified coords is marked as being outside (false if there's an interior) - inline BOOL IsCollisionMarkedOutside(float x, float y, float z) { return _i(0xEEA5AC2EDA7C33E8, x, y, z); } // 0xeea5ac2eda7c33e80x7762249cB323 - inline Interior GetInteriorFromCollision(float x, float y, float z) { return _i(0xEC4CF9FCB29A4424, x, y, z); } // 0xec4cf9fcb29a44240x7ed33dc1B323 - inline Void EnableStadiumProbesThisFrame(BOOL toggle) { return _i(0x7ECDF98587E92DEC, toggle); } // 0x7ecdf98587e92decB1604 - // More info: http://gtaforums.com/topic/836367-adding-props-to-interiors/ - // - // Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - inline Void ActivateInteriorEntitySet(Interior interior, String entitySetName) { return _i(0x55E86AF2712B36A1, interior, entitySetName); } // 0x55e86af2712b36a10xc80a5ddfB323 - // Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - inline Void DeactivateInteriorEntitySet(Interior interior, String entitySetName) { return _i(0x420BD37289EEE162, interior, entitySetName); } // 0x420bd37289eee1620xdba768a1B323 - // Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - inline BOOL IsInteriorEntitySetActive(Interior interior, String entitySetName) { return _i(0x35F7DD45E8C0A16D, interior, entitySetName); } // 0x35f7dd45e8c0a16d0x39a3cc6fB323 - // Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - inline Void SetInteriorEntitySetTintIndex(Interior interior, String entitySetName, int color) { return _i(0xC1F1920BAF281317, interior, entitySetName, color); } // 0xc1f1920baf281317B877 - inline Void RefreshInterior(Interior interior) { return _i(0x41F37C3427C75AE0, interior); } // 0x41f37c3427c75ae00x9a29ace6B323 - // This is the native that is used to hide the exterior of GTA Online apartment buildings when you are inside an apartment. - // - // More info: http://gtaforums.com/topic/836301-hiding-gta-online-apartment-exteriors/ - inline Void EnableExteriorCullModelThisFrame(Hash mapObjectHash) { return _i(0xA97F257D0151A6AB, mapObjectHash); } // 0xa97f257d0151a6ab0x1f375b4cB323 - inline Void EnableShadowCullModelThisFrame(Hash mapObjectHash) { return _i(0x50C375537449F369, mapObjectHash); } // 0x50c375537449f369B757 - // Example: - // This removes the interior from the strip club and when trying to walk inside the player just falls: - // - // INTERIOR::DisableInterior(118018, true); - inline Void DisableInterior(Interior interior, BOOL toggle) { return _i(0x6170941419D7D8EC, interior, toggle); } // 0x6170941419d7d8ec0x093adea5B323 - inline BOOL IsInteriorDisabled(Interior interior) { return _i(0xBC5115A5A939DD15, interior); } // 0xbc5115a5a939dd150x81f34c71B323 - // Does something similar to INTERIOR::DisableInterior - inline Void CapInterior(Interior interior, BOOL toggle) { return _i(0xD9175F941610DB54, interior, toggle); } // 0xd9175f941610db540x34e735a6B323 - inline BOOL IsInteriorCapped(Interior interior) { return _i(0x92BAC8ACF88CEC26, interior); } // 0x92bac8acf88cec260x18b17c80B323 - inline Void DisableMetroSystem(BOOL toggle) { return _i(0x9E6542F0CE8E70A3, toggle); } // 0x9e6542f0ce8e70a30x5ef9c5c2B323 - // Jenkins hash _might_ be 0xFC227584. - inline Void SetIsExteriorOnly(Entity entity, BOOL toggle) { return _i(0x7241CCB7D020DB69, entity, toggle); } // 0x7241ccb7d020db69B791 + inline float GetInteriorHeading(Interior interior) { return _i(0xF49B58631D9E22D9, interior); } // 0xf49b58631d9e22d9B1493 + inline Void GetInteriorLocationAndNamehash(Interior interior, Vector3* position, Hash* nameHash) { return _i(0x252BDC06B73FA6EA, interior, position, nameHash); } // 0x252bdc06b73fa6ea0x75885cb3B1290 + // Returns the group ID of the specified interior. + // 0 = default + // 1 = subway station, subway tracks, sewers + // 3 = train tunnel under mirror park + // 5 = tunnel near del perro + // 6 = train tunnel near chilliad + // 7 = train tunnel near josiah + // 8 = train tunnel in sandy shores + // 9 = braddock tunnel (near chilliad) + // 12 = tunnel under fort zancudo + // 14 = train tunnel under cypress flats + // 18 = rockford plaza parking garage + // 19 = arcadius parking garage + // 20 = union depository parking garage + // 21 = fib parking garage + inline int GetInteriorGroupId(Interior interior) { return _i(0xE4A84ABF135EF91A, interior); } // 0xe4a84abf135ef91a0x09d6376fB323 + inline Vector3 GetOffsetFromInteriorInWorldCoords(Interior interior, float x, float y, float z) { return _i(0x9E3B3E6D66F6E22F, interior, x, y, z); } // 0x9e3b3e6d66f6e22f0x7d8f26a1B323 + inline BOOL IsInteriorScene() { return _i(0xBC72B5D7A1CBD54D); } // 0xbc72b5d7a1cbd54d0x55226c13B323 + inline BOOL IsValidInterior(Interior interior) { return _i(0x26B0E73D7EAAF4D3, interior); } // 0x26b0e73d7eaaf4d30x39c0b635B323 + inline Void ClearRoomForEntity(Entity entity) { return _i(0xB365FC0C4E27FFA7, entity); } // 0xb365fc0c4e27ffa70x7ddadb92B323 + inline Void ForceRoomForEntity(Entity entity, Interior interior, Hash roomHashKey) { return _i(0x52923C4710DD9907, entity, interior, roomHashKey); } // 0x52923c4710dd99070x10bd4435B323 + // Gets the room hash key from the room that the specified entity is in. Each room in every interior has a unique key. Returns 0 if the entity is outside. + inline Hash GetRoomKeyFromEntity(Entity entity) { return _i(0x47C2A06D4F5F424B, entity); } // 0x47c2a06d4f5f424b0xe4acf8c3B323 + // Seems to do the exact same as INTERIOR::GetRoomKeyFromEntity + inline Hash GetKeyForEntityInRoom(Entity entity) { return _i(0x399685DB942336BC, entity); } // 0x399685db942336bc0x91ea80efB323 + // Returns the handle of the interior that the entity is in. Returns 0 if outside. + inline Interior GetInteriorFromEntity(Entity entity) { return _i(0x2107BA504071A6BB, entity); } // 0x2107ba504071a6bb0x5c644614B323 + inline Void RetainEntityInInterior(Entity entity, Interior interior) { return _i(0x82EBB79E258FA2B7, entity, interior); } // 0x82ebb79e258fa2b70xe645e162B323 + // Immediately removes entity from an interior. Like sets entity to `limbo` room. + inline Void ClearInteriorStateOfEntity(Entity entity) { return _i(0x85D5422B2039A70D, entity); } // 0x85d5422b2039a70dB2189 + inline Void ForceActivatingTrackingOnEntity(Any p0, Any p1) { return _i(0x38C1CB1CB119A016, p0, p1); } // 0x38c1cb1cb119a016B1493 + inline Void ForceRoomForGameViewport(int interiorID, Hash roomHashKey) { return _i(0x920D853F3E17F1DA, interiorID, roomHashKey); } // 0x920d853f3e17f1da0xd79803b5B323 + // Example of use (carmod_shop) + // INTERIOR::SetRoomForGameViewportByName("V_CarModRoom"); + inline Void SetRoomForGameViewportByName(String roomName) { return _i(0xAF348AFCB575A441, roomName); } // 0xaf348afcb575a4410x1f6b4b13B323 + // Usage: INTERIOR::SetRoomForGameViewportByKey(INTERIOR::GetKeyForEntityInRoom(PLAYER::PlayerPedId())); + inline Void SetRoomForGameViewportByKey(Hash roomHashKey) { return _i(0x405DC2AEF6AF95B9, roomHashKey); } // 0x405dc2aef6af95b90x0e9529ccB323 + inline Hash GetRoomKeyForGameViewport() { return _i(0xA6575914D2A0B450); } // 0xa6575914d2a0b4500x4ff3d3f5B323 + inline Void ClearRoomForGameViewport() { return _i(0x23B59D8912F94246); } // 0x23b59d8912f942460x617dc75dB323 + // Returns the current interior id from gameplay camera + inline Interior GetInteriorFromPrimaryView() { return _i(0xE7D267EC6CA966C3); } // 0xe7d267ec6ca966c30xa83c3d15B1604 + // Returns interior ID from specified coordinates. If coordinates are outside, then it returns 0. + // + // Example for VB.NET + // Dim interiorID As Integer = Native.Function.Call(Of Integer)(Hash.GetInteriorAtCoords, X, Y, Z) + inline Interior GetInteriorAtCoords(float x, float y, float z) { return _i(0xB0F7F8663821D9C3, x, y, z); } // 0xb0f7f8663821d9c30xa17fbf37B323 + inline Void AddPickupToInteriorRoomByName(Pickup pickup, String roomName) { return _i(0x3F6167F351168730, pickup, roomName); } // 0x3f6167f3511687300xa2a73564B323 + inline Void PinInteriorInMemory(Interior interior) { return _i(0x2CA429C029CCF247, interior); } // 0x2ca429c029ccf2470x3ada414eB323 + // Does something similar to INTERIOR::DisableInterior. + // + // You don't fall through the floor but everything is invisible inside and looks the same as when INTERIOR::DisableInterior is used. Peds behaves normally inside. + inline Void UnpinInterior(Interior interior) { return _i(0x261CCE7EED010641, interior); } // 0x261cce7eed0106410xfcff792aB323 + inline BOOL IsInteriorReady(Interior interior) { return _i(0x6726BDCCC1932F0E, interior); } // 0x6726bdccc1932f0e0xe1ef6450B323 + // Only used once in the entire game scripts. + // Does not actually return anything. + inline BOOL SetInteriorInUse(Interior interior) { return _i(0x4C2330E61D3DEB56, interior); } // 0x4c2330e61d3deb56B323 + // Returns the interior ID representing the requested interior at that location (if found?). The supplied interior string is not the same as the one used to load the interior. + // + // Use: INTERIOR::UnpinInterior(INTERIOR::GetInteriorAtCoordsWithType(x, y, z, interior)) + // + // Interior types include: "V_Michael", "V_Franklins", "V_Franklinshouse", etc.. you can find them in the scripts. + // + // Not a very useful native as you could just use GetInteriorAtCoords instead and get the same result, without even having to specify the interior type. + inline Interior GetInteriorAtCoordsWithType(float x, float y, float z, String interiorType) { return _i(0x05B7A89BD78797FC, x, y, z, interiorType); } // 0x05b7a89bd78797fc0x96525b06B323 + // Hashed version of GetInteriorAtCoordsWithType + inline Interior GetInteriorAtCoordsWithTypehash(float x, float y, float z, Hash typeHash) { return _i(0xF0F77ADB9F67E79D, x, y, z, typeHash); } // 0xf0f77adb9f67e79d0x11718507B323 + inline Void ActivateInteriorGroupsUsingCamera() { return _i(0x483ACA1176CA93F1); } // 0x483aca1176ca93f1B1103 + // Returns true if the collision at the specified coords is marked as being outside (false if there's an interior) + inline BOOL IsCollisionMarkedOutside(float x, float y, float z) { return _i(0xEEA5AC2EDA7C33E8, x, y, z); } // 0xeea5ac2eda7c33e80x7762249cB323 + inline Interior GetInteriorFromCollision(float x, float y, float z) { return _i(0xEC4CF9FCB29A4424, x, y, z); } // 0xec4cf9fcb29a44240x7ed33dc1B323 + inline Void EnableStadiumProbesThisFrame(BOOL toggle) { return _i(0x7ECDF98587E92DEC, toggle); } // 0x7ecdf98587e92decB1604 + // More info: http://gtaforums.com/topic/836367-adding-props-to-interiors/ + // + // Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json + inline Void ActivateInteriorEntitySet(Interior interior, String entitySetName) { return _i(0x55E86AF2712B36A1, interior, entitySetName); } // 0x55e86af2712b36a10xc80a5ddfB323 + // Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json + inline Void DeactivateInteriorEntitySet(Interior interior, String entitySetName) { return _i(0x420BD37289EEE162, interior, entitySetName); } // 0x420bd37289eee1620xdba768a1B323 + // Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json + inline BOOL IsInteriorEntitySetActive(Interior interior, String entitySetName) { return _i(0x35F7DD45E8C0A16D, interior, entitySetName); } // 0x35f7dd45e8c0a16d0x39a3cc6fB323 + // Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json + inline Void SetInteriorEntitySetTintIndex(Interior interior, String entitySetName, int color) { return _i(0xC1F1920BAF281317, interior, entitySetName, color); } // 0xc1f1920baf281317B877 + inline Void RefreshInterior(Interior interior) { return _i(0x41F37C3427C75AE0, interior); } // 0x41f37c3427c75ae00x9a29ace6B323 + // This is the native that is used to hide the exterior of GTA Online apartment buildings when you are inside an apartment. + // + // More info: http://gtaforums.com/topic/836301-hiding-gta-online-apartment-exteriors/ + inline Void EnableExteriorCullModelThisFrame(Hash mapObjectHash) { return _i(0xA97F257D0151A6AB, mapObjectHash); } // 0xa97f257d0151a6ab0x1f375b4cB323 + inline Void EnableShadowCullModelThisFrame(Hash mapObjectHash) { return _i(0x50C375537449F369, mapObjectHash); } // 0x50c375537449f369B757 + // Example: + // This removes the interior from the strip club and when trying to walk inside the player just falls: + // + // INTERIOR::DisableInterior(118018, true); + inline Void DisableInterior(Interior interior, BOOL toggle) { return _i(0x6170941419D7D8EC, interior, toggle); } // 0x6170941419d7d8ec0x093adea5B323 + inline BOOL IsInteriorDisabled(Interior interior) { return _i(0xBC5115A5A939DD15, interior); } // 0xbc5115a5a939dd150x81f34c71B323 + // Does something similar to INTERIOR::DisableInterior + inline Void CapInterior(Interior interior, BOOL toggle) { return _i(0xD9175F941610DB54, interior, toggle); } // 0xd9175f941610db540x34e735a6B323 + inline BOOL IsInteriorCapped(Interior interior) { return _i(0x92BAC8ACF88CEC26, interior); } // 0x92bac8acf88cec260x18b17c80B323 + inline Void DisableMetroSystem(BOOL toggle) { return _i(0x9E6542F0CE8E70A3, toggle); } // 0x9e6542f0ce8e70a30x5ef9c5c2B323 + // Jenkins hash _might_ be 0xFC227584. + inline Void SetIsExteriorOnly(Entity entity, BOOL toggle) { return _i(0x7241CCB7D020DB69, entity, toggle); } // 0x7241ccb7d020db69B791 } namespace ITEMSET { - inline ScrHandle CreateItemset(BOOL p0) { return _i(0x35AD299F50D91B24, p0); } // 0x35ad299f50d91b240x0a113b2cB323 - inline Void DestroyItemset(ScrHandle itemset) { return _i(0xDE18220B1C183EDA, itemset); } // 0xde18220b1c183eda0x83ce1a4cB323 - inline BOOL IsItemsetValid(ScrHandle itemset) { return _i(0xB1B1EA596344DFAB, itemset); } // 0xb1b1ea596344dfab0xd201fc29B323 - inline BOOL AddToItemset(ScrHandle item, ScrHandle itemset) { return _i(0xE3945201F14637DD, item, itemset); } // 0xe3945201f14637dd0x6b0fe61bB323 - inline Void RemoveFromItemset(ScrHandle item, ScrHandle itemset) { return _i(0x25E68244B0177686, item, itemset); } // 0x25e68244b01776860xa9565228B323 - inline int GetItemsetSize(ScrHandle itemset) { return _i(0xD9127E83ABF7C631, itemset); } // 0xd9127e83abf7c6310x2b31f41aB323 - inline ScrHandle GetIndexedItemInItemset(int index, ScrHandle itemset) { return _i(0x7A197E2521EE2BAB, index, itemset); } // 0x7a197e2521ee2bab0x3f712874B323 - inline BOOL IsInItemset(ScrHandle item, ScrHandle itemset) { return _i(0x2D0FC594D1E9C107, item, itemset); } // 0x2d0fc594d1e9c1070x0d4b9730B323 - inline Void CleanItemset(ScrHandle itemset) { return _i(0x41BC0D722FC04221, itemset); } // 0x41bc0d722fc042210x919a4858B323 + inline ScrHandle CreateItemset(BOOL p0) { return _i(0x35AD299F50D91B24, p0); } // 0x35ad299f50d91b240x0a113b2cB323 + inline Void DestroyItemset(ScrHandle itemset) { return _i(0xDE18220B1C183EDA, itemset); } // 0xde18220b1c183eda0x83ce1a4cB323 + inline BOOL IsItemsetValid(ScrHandle itemset) { return _i(0xB1B1EA596344DFAB, itemset); } // 0xb1b1ea596344dfab0xd201fc29B323 + inline BOOL AddToItemset(ScrHandle item, ScrHandle itemset) { return _i(0xE3945201F14637DD, item, itemset); } // 0xe3945201f14637dd0x6b0fe61bB323 + inline Void RemoveFromItemset(ScrHandle item, ScrHandle itemset) { return _i(0x25E68244B0177686, item, itemset); } // 0x25e68244b01776860xa9565228B323 + inline int GetItemsetSize(ScrHandle itemset) { return _i(0xD9127E83ABF7C631, itemset); } // 0xd9127e83abf7c6310x2b31f41aB323 + inline ScrHandle GetIndexedItemInItemset(int index, ScrHandle itemset) { return _i(0x7A197E2521EE2BAB, index, itemset); } // 0x7a197e2521ee2bab0x3f712874B323 + inline BOOL IsInItemset(ScrHandle item, ScrHandle itemset) { return _i(0x2D0FC594D1E9C107, item, itemset); } // 0x2d0fc594d1e9c1070x0d4b9730B323 + inline Void CleanItemset(ScrHandle itemset) { return _i(0x41BC0D722FC04221, itemset); } // 0x41bc0d722fc042210x919a4858B323 } namespace LOADINGSCREEN { - // This function is hard-coded to always return 0. - inline BOOL LobbyAutoMultiplayerMenu() { return _i(0xF2CA003F167E21D2); } // 0xf2ca003f167e21d20x106c8317B323 - inline BOOL LobbyAutoMultiplayerFreemode() { return _i(0xEF7D17BC6C85264C); } // 0xef7d17bc6c85264c0xd87f3a9eB323 - inline Void LobbySetAutoMultiplayer(BOOL toggle) { return _i(0xB0C56BD3D808D863, toggle); } // 0xb0c56bd3d808d8630xc0b971eaB323 - inline BOOL LobbyAutoMultiplayerEvent() { return _i(0x8AA464D4E0F6ACCD); } // 0x8aa464d4e0f6accd0x94bcac7cB323 - inline Void LobbySetAutoMultiplayerEvent(BOOL toggle) { return _i(0xFC309E94546FCDB5, toggle); } // 0xfc309e94546fcdb50x7d90eee5B323 - inline BOOL LobbyAutoMultiplayerRandomJob() { return _i(0xC6DC823253FBB366); } // 0xc6dc823253fbb3660x734cfedaB323 - inline Void LobbySetAutoMpRandomJob(BOOL toggle) { return _i(0xC7E7181C09F33B69, toggle); } // 0xc7e7181c09f33b690x8c227332B323 - inline Void ShutdownSessionClearsAutoMultiplayer(BOOL toggle) { return _i(0xFA1E0E893D915215, toggle); } // 0xfa1e0e893d9152150x5c350d78B323 + // This function is hard-coded to always return 0. + inline BOOL LobbyAutoMultiplayerMenu() { return _i(0xF2CA003F167E21D2); } // 0xf2ca003f167e21d20x106c8317B323 + inline BOOL LobbyAutoMultiplayerFreemode() { return _i(0xEF7D17BC6C85264C); } // 0xef7d17bc6c85264c0xd87f3a9eB323 + inline Void LobbySetAutoMultiplayer(BOOL toggle) { return _i(0xB0C56BD3D808D863, toggle); } // 0xb0c56bd3d808d8630xc0b971eaB323 + inline BOOL LobbyAutoMultiplayerEvent() { return _i(0x8AA464D4E0F6ACCD); } // 0x8aa464d4e0f6accd0x94bcac7cB323 + inline Void LobbySetAutoMultiplayerEvent(BOOL toggle) { return _i(0xFC309E94546FCDB5, toggle); } // 0xfc309e94546fcdb50x7d90eee5B323 + inline BOOL LobbyAutoMultiplayerRandomJob() { return _i(0xC6DC823253FBB366); } // 0xc6dc823253fbb3660x734cfedaB323 + inline Void LobbySetAutoMpRandomJob(BOOL toggle) { return _i(0xC7E7181C09F33B69, toggle); } // 0xc7e7181c09f33b690x8c227332B323 + inline Void ShutdownSessionClearsAutoMultiplayer(BOOL toggle) { return _i(0xFA1E0E893D915215, toggle); } // 0xfa1e0e893d9152150x5c350d78B323 } namespace LOCALIZATION { - // Same return values as GetCurrentLanguage - inline int LocalizationGetSystemLanguage() { return _i(0x497420E022796B3F); } // 0x497420e022796b3fB877 - // 0 = american (en-US) - // 1 = french (fr-FR) - // 2 = german (de-DE) - // 3 = italian (it-IT) - // 4 = spanish (es-ES) - // 5 = brazilian (pt-BR) - // 6 = polish (pl-PL) - // 7 = russian (ru-RU) - // 8 = korean (ko-KR) - // 9 = chinesetrad (zh-TW) - // 10 = japanese (ja-JP) - // 11 = mexican (es-MX) - // 12 = chinesesimp (zh-CN) - inline int GetCurrentLanguage() { return _i(0x2BDD44CC428A7EAE); } // 0x2bdd44cc428a7eae0x761be00bB323 - // Possible return values: 0, 1, 2 - inline int LocalizationGetSystemDateType() { return _i(0xA8AE43AEC1A61314); } // 0xa8ae43aec1a61314B323 + // Same return values as GetCurrentLanguage + inline int LocalizationGetSystemLanguage() { return _i(0x497420E022796B3F); } // 0x497420e022796b3fB877 + // 0 = american (en-US) + // 1 = french (fr-FR) + // 2 = german (de-DE) + // 3 = italian (it-IT) + // 4 = spanish (es-ES) + // 5 = brazilian (pt-BR) + // 6 = polish (pl-PL) + // 7 = russian (ru-RU) + // 8 = korean (ko-KR) + // 9 = chinesetrad (zh-TW) + // 10 = japanese (ja-JP) + // 11 = mexican (es-MX) + // 12 = chinesesimp (zh-CN) + inline int GetCurrentLanguage() { return _i(0x2BDD44CC428A7EAE); } // 0x2bdd44cc428a7eae0x761be00bB323 + // Possible return values: 0, 1, 2 + inline int LocalizationGetSystemDateType() { return _i(0xA8AE43AEC1A61314); } // 0xa8ae43aec1a61314B323 } namespace MISC { - inline int GetAllocatedStackSize() { return _i(0x8B3CA62B1EF19B62); } // 0x8b3ca62b1ef19b620x4e9ca30aB323 - inline int GetNumberOfFreeStacksOfThisSize(int stackSize) { return _i(0xFEAD16FC8F9DFC0F, stackSize); } // 0xfead16fc8f9dfc0f0x11a178b8B323 - inline Void SetRandomSeed(int seed) { return _i(0x444D98F98C11F3EC, seed); } // 0x444d98f98c11f3ec0xdb3feb5cB323 - // Maximum value is 1. - // At a value of 0 the game will still run at a minimum time scale. - // - // Slow Motion 1: 0.6 - // Slow Motion 2: 0.4 - // Slow Motion 3: 0.2 - inline Void SetTimeScale(float timeScale) { return _i(0x1D408577D440E81E, timeScale); } // 0x1d408577d440e81e0xa7f84694B323 - // If true, the player can't save the game. - // - // - // If the parameter is true, sets the mission flag to true, if the parameter is false, the function does nothing at all. - // - // ^ also, if the mission flag is already set, the function does nothing at all - inline Void SetMissionFlag(BOOL toggle) { return _i(0xC4301E5121A0ED73, toggle); } // 0xc4301e5121a0ed730x57592d52B323 - inline BOOL GetMissionFlag() { return _i(0xA33CDCCDA663159E); } // 0xa33cdccda663159e0x95115f97B323 - // If the parameter is true, sets the random event flag to true, if the parameter is false, the function does nothing at all. - // Does nothing if the mission flag is set. - inline Void SetRandomEventFlag(BOOL toggle) { return _i(0x971927086CFD2158, toggle); } // 0x971927086cfd21580xa77f31e8B323 - inline BOOL GetRandomEventFlag() { return _i(0xD2D57F1D764117B1); } // 0xd2d57f1d764117b10x794cc92cB323 - // Returns pointer to an empty string. - inline String GET_CONTENT_TO_LOAD() { return _i(0x24DA7D7667FD7B09); } // 0x24DA7D7667FD7B09 b323 - // Does nothing (it's a nullsub). Seems to be PS4 specific. - inline Void ActivityFeedCreate(String p0, String p1) { return _i(0x4DCDF92BF64236CD, p0, p1); } // 0x4dcdf92bf64236cdB323 - // Does nothing (it's a nullsub). Seems to be PS4 specific. - inline Void ActivityFeedAddSubstringToCaption(String p0) { return _i(0x31125FD509D9043F, p0); } // 0x31125fd509d9043fB323 - // Does nothing (it's a nullsub). Seems to be PS4 specific. - inline Void ActivityFeedAddLiteralSubstringToCaption(String p0) { return _i(0xEBD3205A207939ED, p0); } // 0xebd3205a207939edB323 - // Does nothing (it's a nullsub). Seems to be PS4 specific. - inline Void ActivityFeedAddIntToCaption(Any p0) { return _i(0x97E7E2C04245115B, p0); } // 0x97e7e2c04245115bB323 - // Does nothing (it's a nullsub). Seems to be PS4 specific. - inline Void ActivityFeedLargeImageUrl(String p0) { return _i(0x916CA67D26FD1E37, p0); } // 0x916ca67d26fd1e37B2060 - // Does nothing (it's a nullsub). Seems to be PS4 specific. - inline Void ActivityFeedActionStartWithCommandLine(String p0, String p1) { return _i(0xEB078CA2B5E82ADD, p0, p1); } // 0xeb078ca2b5e82addB323 - // Does nothing (it's a nullsub). Seems to be PS4 specific. - inline Void ActivityFeedActionStartWithCommandLineAdd(String p0) { return _i(0x703CC7F60CBB2B57, p0); } // 0x703cc7f60cbb2b57B323 - // Does nothing (it's a nullsub). Seems to be PS4 specific. - inline Void ActivityFeedPost() { return _i(0x8951EB9C6906D3C8); } // 0x8951eb9c6906d3c8B323 - // Does nothing (it's a nullsub). Seems to be PS4 specific. - // - // Used only once in the scripts (ingamehud) with p0 = "AF_GAMEMODE" - inline Void ActivityFeedOnlinePlayedWithPost(String p0) { return _i(0xBA4B8D83BDC75551, p0); } // 0xba4b8d83bdc75551B323 - // Hardcoded to return false. - inline BOOL HasResumedFromSuspend() { return _i(0xE8B9C0EC9E183F35); } // 0xe8b9c0ec9e183f35B323 - // Sets GtaThread+0x14A - inline Void SetScriptHighPrio(BOOL toggle) { return _i(0x65D2EBB47E1CEC21, toggle); } // 0x65d2ebb47e1cec21B323 - // Sets bit 3 in GtaThread+0x150 - inline Void SetThisIsATriggerScript(BOOL toggle) { return _i(0x6F2135B6129620C1, toggle); } // 0x6f2135b6129620c10x8b2de971B323 - inline Void InformCodeOfContentIdOfCurrentUgcMission(String p0) { return _i(0x8D74E26F54B4E5C3, p0); } // 0x8d74e26f54b4e5c30xe77199f7B323 - inline BOOL GetBaseElementLocationFromMetadataBlock(Any* p0, Any* p1, Any p2, BOOL p3) { return _i(0xB335F761606DB47C, p0, p1, p2, p3); } // 0xb335f761606db47cB323 - // Returns current weather name hash - inline Hash GetPrevWeatherTypeHashName() { return _i(0x564B884A05EC45A3); } // 0x564b884a05ec45a30xa8171e9eB323 - // Returns weather name hash - inline Hash GetNextWeatherTypeHashName() { return _i(0x711327CD09C8F162); } // 0x711327cd09c8f1620x353e8056B323 - inline BOOL IsPrevWeatherType(String weatherType) { return _i(0x44F28F86433B10A9, weatherType); } // 0x44f28f86433b10a90x250ada61B323 - inline BOOL IsNextWeatherType(String weatherType) { return _i(0x2FAA3A30BEC0F25D, weatherType); } // 0x2faa3a30bec0f25d0x99cb167fB323 - // The following weatherTypes are used in the scripts: - // "CLEAR" - // "EXTRASUNNY" - // "CLOUDS" - // "OVERCAST" - // "RAIN" - // "CLEARING" - // "THUNDER" - // "SMOG" - // "FOGGY" - // "XMAS" - // "SNOW" - // "SNOWLIGHT" - // "BLIZZARD" - // "HALLOWEEN" - // "NEUTRAL" - inline Void SetWeatherTypePersist(String weatherType) { return _i(0x704983DF373B198F, weatherType); } // 0x704983df373b198f0xc6c04c75B323 - // The following weatherTypes are used in the scripts: - // "CLEAR" - // "EXTRASUNNY" - // "CLOUDS" - // "OVERCAST" - // "RAIN" - // "CLEARING" - // "THUNDER" - // "SMOG" - // "FOGGY" - // "XMAS" - // "SNOW" - // "SNOWLIGHT" - // "BLIZZARD" - // "HALLOWEEN" - // "NEUTRAL" - inline Void SetWeatherTypeNowPersist(String weatherType) { return _i(0xED712CA327900C8A, weatherType); } // 0xed712ca327900c8a0xc869fe97B323 - // The following weatherTypes are used in the scripts: - // "CLEAR" - // "EXTRASUNNY" - // "CLOUDS" - // "OVERCAST" - // "RAIN" - // "CLEARING" - // "THUNDER" - // "SMOG" - // "FOGGY" - // "XMAS" - // "SNOW" - // "SNOWLIGHT" - // "BLIZZARD" - // "HALLOWEEN" - // "NEUTRAL" - inline Void SetWeatherTypeNow(String weatherType) { return _i(0x29B487C359E19889, weatherType); } // 0x29b487c359e198890x361e9eacB323 - inline Void SetWeatherTypeOvertimePersist(String weatherType, float time) { return _i(0xFB5045B7C42B75BF, weatherType, time); } // 0xfb5045b7c42b75bf0x386f0d25B323 - inline Void SetRandomWeatherType() { return _i(0x8B05F884CF7E8020); } // 0x8b05f884cf7e80200xe7aa1bc9B323 - inline Void ClearWeatherTypePersist() { return _i(0xCCC39339BEF76CF5); } // 0xccc39339bef76cf50x6ab757d8B323 - inline Void ClearWeatherTypeNowPersistNetwork(int milliseconds) { return _i(0x0CF97F497FE7D048, milliseconds); } // 0x0cf97f497fe7d048B1103 - inline Void GetCurrWeatherState(Hash* weatherType1, Hash* weatherType2, float* percentWeather2) { return _i(0xF3BBE884A14BB413, weatherType1, weatherType2, percentWeather2); } // 0xf3bbe884a14bb4130x9a5c1d56B323 - // Mixes two weather types. If percentWeather2 is set to 0.0f, then the weather will be entirely of weatherType1, if it is set to 1.0f it will be entirely of weatherType2. If it's set somewhere in between, there will be a mixture of weather behaviors. To test, try this in the RPH console, and change the float to different values between 0 and 1: - // - // execute "NativeFunction.Natives.x578C752848ECFA0C(Game.GetHashKey(""RAIN""), Game.GetHashKey(""SMOG""), 0.50f); - // - // Note that unlike most of the other weather natives, this native takes the hash of the weather name, not the plain string. These are the weather names and their hashes: - // - // CLEAR 0x36A83D84 - // EXTRASUNNY 0x97AA0A79 - // CLOUDS 0x30FDAF5C - // OVERCAST 0xBB898D2D - // RAIN 0x54A69840 - // CLEARING 0x6DB1A50D - // THUNDER 0xB677829F - // SMOG 0x10DCF4B5 - // FOGGY 0xAE737644 - // XMAS 0xAAC9C895 - // SNOWLIGHT 0x23FB812B - // BLIZZARD 0x27EA2814 - // - // - // - // - // - // /* OLD INVALID INFO BELOW */ - // Not tested. Based purely on disassembly. Instantly sets the weather to sourceWeather, then transitions to targetWeather over the specified transitionTime in seconds. - // - // If an invalid hash is specified for sourceWeather, the current weather type will be used. - // If an invalid hash is specified for targetWeather, the next weather type will be used. - // If an invalid hash is specified for both sourceWeather and targetWeather, the function just changes the transition time of the current transition. - inline Void SetCurrWeatherState(Hash weatherType1, Hash weatherType2, float percentWeather2) { return _i(0x578C752848ECFA0C, weatherType1, weatherType2, percentWeather2); } // 0x578c752848ecfa0c0x5ca74040B323 - // Appears to have an optional bool parameter that is unused in the scripts. - // - // If you pass true, something will be set to zero. - inline Void SetOverrideWeather(String weatherType) { return _i(0xA43D5C6FE51ADBEF, weatherType); } // 0xa43d5c6fe51adbef0xd9082bb5B323 - // Identical to SetOverrideWeather but has an additional BOOL param that sets some weather var to 0 if true - inline Void SetOverrideWeatherex(String weatherType, BOOL p1) { return _i(0x1178E104409FE58C, weatherType, p1); } // 0x1178e104409fe58cB2189 - inline Void ClearOverrideWeather() { return _i(0x338D2E3477711050); } // 0x338d2e34777110500x7740ea4eB323 - inline Void WaterOverrideSetShorewaveamplitude(float amplitude) { return _i(0xB8F87EAD7533B176, amplitude); } // 0xb8f87ead7533b1760x625181dcB323 - inline Void WaterOverrideSetShorewaveminamplitude(float minAmplitude) { return _i(0xC3EAD29AB273ECE8, minAmplitude); } // 0xc3ead29ab273ece80xbebbfdc8B323 - inline Void WaterOverrideSetShorewavemaxamplitude(float maxAmplitude) { return _i(0xA7A1127490312C36, maxAmplitude); } // 0xa7a1127490312c360x6926ab03B323 - inline Void WaterOverrideSetOceannoiseminamplitude(float minAmplitude) { return _i(0x31727907B2C43C55, minAmplitude); } // 0x31727907b2c43c550xd447439dB323 - inline Void WaterOverrideSetOceanwaveamplitude(float amplitude) { return _i(0x405591EC8FD9096D, amplitude); } // 0x405591ec8fd9096d0x584e9c59B323 - inline Void WaterOverrideSetOceanwaveminamplitude(float minAmplitude) { return _i(0xF751B16FB32ABC1D, minAmplitude); } // 0xf751b16fb32abc1d0x5656d578B323 - inline Void WaterOverrideSetOceanwavemaxamplitude(float maxAmplitude) { return _i(0xB3E6360DDE733E82, maxAmplitude); } // 0xb3e6360dde733e820x0de40c28B323 - inline Void WaterOverrideSetRipplebumpiness(float bumpiness) { return _i(0x7C9C0B1EEB1F9072, bumpiness); } // 0x7c9c0b1eeb1f90720x98c9138bB323 - inline Void WaterOverrideSetRippleminbumpiness(float minBumpiness) { return _i(0x6216B116083A7CB4, minBumpiness); } // 0x6216b116083a7cb40xfb1a9cdeB323 - inline Void WaterOverrideSetRipplemaxbumpiness(float maxBumpiness) { return _i(0x9F5E6BB6B34540DA, maxBumpiness); } // 0x9f5e6bb6b34540da0x1c0cae89B323 - inline Void WaterOverrideSetRippledisturb(float disturb) { return _i(0xB9854DFDE0D833D6, disturb); } // 0xb9854dfde0d833d60x4671ac2eB323 - // This seems to edit the water wave, intensity around your current location. - // - // 0.0f = Normal - // 1.0f = So Calm and Smooth, a boat will stay still. - // 3.0f = Really Intense. - inline Void WaterOverrideSetStrength(float strength) { return _i(0xC54A08C85AE4D410, strength); } // 0xc54a08c85ae4d4100xda02f415B323 - inline Void WaterOverrideFadeIn(float p0) { return _i(0xA8434F1DFF41D6E7, p0); } // 0xa8434f1dff41d6e70x5f3ddec0B323 - inline Void WaterOverrideFadeOut(float p0) { return _i(0xC3C221ADDDE31A11, p0); } // 0xc3c221addde31a110x63a89684B323 - // Sets the the normalized wind speed value. The wind speed clamps always at 12.0, SetWind sets the wind in a percentage, 0.0 is 0 and 1.0 is 12.0. Setting this value to a negative number resumes the random wind speed changes provided by the game. - inline Void SetWind(float speed) { return _i(0xAC3A74E8384A9919, speed); } // 0xac3a74e8384a99190xc6294698B323 - // Using this native will set the absolute wind speed value. The wind speed clamps to a range of 0.0- 12.0. Setting this value to a negative number resumes the random wind speed changes provided by the game. - inline Void SetWindSpeed(float speed) { return _i(0xEE09ECEDBABE47FC, speed); } // 0xee09ecedbabe47fc0x45705f94B323 - inline float GetWindSpeed() { return _i(0xA8CF1CC0AFCD3F12); } // 0xa8cf1cc0afcd3f120x098f0f3cB323 - // The wind direction in radians - // 180 degrees (PI), wind will blow from the south. Setting this value to a negative number resumes the random wind direction changes provided by the game. - inline Void SetWindDirection(float direction) { return _i(0xEB0F4468467B4528, direction); } // 0xeb0f4468467b45280x381aeee9B323 - inline Vector3 GetWindDirection() { return _i(0x1F400FEF721170DA); } // 0x1f400fef721170da0x89499a0dB323 - // With an `intensity` higher than `0.5f`, only the creation of puddles gets faster, rain and rain sound won't increase after that. - // With an `intensity` of `0.0f` rain and rain sounds are disabled and there won't be any new puddles. - // To use the rain intensity of the current weather, call this native with `-1f` as `intensity`. - inline Void SetRain(float intensity) { return _i(0x643E26EA6E024D92, intensity); } // 0x643e26ea6e024d92B323 - inline float GetRainLevel() { return _i(0x96695E368AD855F3); } // 0x96695e368ad855f30xc9f67f28B323 - inline Void SetSnow(float level) { return _i(0x7F06937B0CDCBC1A, level); } // 0x7f06937b0cdcbc1aB1868 - inline float GetSnowLevel() { return _i(0xC5868A966E5BE3AE); } // 0xc5868a966e5be3ae0x1b09184fB323 - // creates single lightning+thunder at random position - inline Void ForceLightningFlash() { return _i(0xF6062E089251C898); } // 0xf6062e089251c8980xdf38165eB323 - inline Void SetCloudSettingsOverride(String p0) { return _i(0x02DEAAC8F8EA7FE7, p0); } // 0x02deaac8f8ea7fe7B323 - inline Void PreloadCloudHat(String name) { return _i(0x11B56FBBF7224868, name); } // 0x11b56fbbf72248680x8727a4c5B323 - // The following cloudhats are useable: - // altostratus - // Cirrus - // cirrocumulus - // Clear 01 - // Cloudy 01 - // Contrails - // Horizon - // horizonband1 - // horizonband2 - // horizonband3 - // horsey - // Nimbus - // Puffs - // RAIN - // Snowy 01 - // Stormy 01 - // stratoscumulus - // Stripey - // shower - // Wispy - // - inline Void LoadCloudHat(String name, float transitionTime) { return _i(0xFC4842A34657BFCB, name, transitionTime); } // 0xfc4842a34657bfcb0xed88fc61B323 - inline Void UnloadCloudHat(String name, float p1) { return _i(0xA74802FB8D0B7814, name, p1); } // 0xa74802fb8d0b78140xc9fa6e07B323 - inline Void UnloadAllCloudHats() { return _i(0x957E790EA1727B64); } // 0x957e790ea1727b640x2d7787bcB323 - inline Void SetCloudsAlpha(float opacity) { return _i(0xF36199225D6D8C86, opacity); } // 0xf36199225d6d8c86B323 - inline float GetCloudsAlpha() { return _i(0x20AC25E781AE4A84); } // 0x20ac25e781ae4a84B323 - inline int GetGameTimer() { return _i(0x9CD27B0045628463); } // 0x9cd27b00456284630xa4ea0691B323 - inline float GetFrameTime() { return _i(0x15C40837039FFAF7); } // 0x15c40837039ffaf70x96374262B323 - inline float GetSystemTimeStep() { return _i(0xE599A503B3837E1B); } // 0xe599a503b3837e1bB323 - inline int GetFrameCount() { return _i(0xFC8202EFC642E6F2); } // 0xfc8202efc642e6f20xb477a015B323 - inline float GetRandomFloatInRange(float startRange, float endRange) { return _i(0x313CE5879CEB6FCD, startRange, endRange); } // 0x313ce5879ceb6fcd0x0562c4d0B323 - inline int GetRandomIntInRange(int startRange, int endRange) { return _i(0xD53343AA4FB7DD28, startRange, endRange); } // 0xd53343aa4fb7dd280x4051115bB323 - inline int GetRandomMwcIntInRange(int startRange, int endRange) { return _i(0xF2D49816A804D134, startRange, endRange); } // 0xf2d49816a804d134B1734 - // Gets the ground elevation at the specified position. Note that if the specified position is below ground level, the function will output zero! - // - // x: Position on the X-axis to get ground elevation at. - // y: Position on the Y-axis to get ground elevation at. - // z: Position on the Z-axis to get ground elevation at. - // groundZ: The ground elevation at the specified position. - // ignoreWater: Nearly always 0, very rarely 1 in the scripts: https://gfycat.com/NiftyTatteredCricket - // - // Bear in mind this native can only calculate the elevation when the coordinates are within the client's render distance. - inline BOOL GetGroundZFor3dCoord(float x, float y, float z, float* groundZ, BOOL ignoreWater, BOOL p5) { return _i(0xC906A7DAB05C8D2B, x, y, z, groundZ, ignoreWater, p5); } // 0xc906a7dab05c8d2b0xa1bfd5e0B323 - inline BOOL GetGroundZAndNormalFor3dCoord(float x, float y, float z, float* groundZ, Vector3* normal) { return _i(0x8BDC7BFC57A81E76, x, y, z, groundZ, normal); } // 0x8bdc7bfc57a81e760x64d91cedB323 - inline BOOL GetGroundZExcludingObjectsFor3dCoord(float x, float y, float z, float* groundZ, BOOL p4, BOOL p5) { return _i(0x9E82F0F362881B29, x, y, z, groundZ, p4, p5); } // 0x9e82f0f362881b29B505 - inline float Asin(float p0) { return _i(0xC843060B5765DCE7, p0); } // 0xc843060b5765dce70x998e5cadB323 - inline float Acos(float p0) { return _i(0x1D08B970013C34B6, p0); } // 0x1d08b970013c34b60xf4038776B323 - inline float Tan(float p0) { return _i(0x632106CC96E82E91, p0); } // 0x632106cc96e82e910xd320ce5eB323 - inline float Atan(float p0) { return _i(0xA9D1795CD5043663, p0); } // 0xa9d1795cd50436630x7a03cc8eB323 - inline float Atan2(float p0, float p1) { return _i(0x8927CBF9D22261A4, p0, p1); } // 0x8927cbf9d22261a40x2508ac81B323 - // Returns the distance between two three-dimensional points, optionally ignoring the Z values. - // If useZ is false, only the 2D plane (X-Y) will be considered for calculating the distance. - // - // Consider using this faster native instead: SYSTEM::Vdist - DVIST always takes in consideration the 3D coordinates. - inline float GetDistanceBetweenCoords(float x1, float y1, float z1, float x2, float y2, float z2, BOOL useZ) { return _i(0xF1B760881820C952, x1, y1, z1, x2, y2, z2, useZ); } // 0xf1b760881820c9520xf698765eB323 - inline float GetAngleBetween2dVectors(float x1, float y1, float x2, float y2) { return _i(0x186FC4BE848E1C92, x1, y1, x2, y2); } // 0x186fc4be848e1c920xdbf75e58B323 - // dx = x1 - x2 - // dy = y1 - y2 - inline float GetHeadingFromVector2d(float dx, float dy) { return _i(0x2FFB6B224F4B2926, dx, dy); } // 0x2ffb6b224f4b29260xd209d52bB323 - // returns a float between 0.0 and 1.0, clamp: sets whether the product should be clamped between the given coordinates - inline float GetRatioOfClosestPointOnLine(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, BOOL clamp) { return _i(0x7F8F6405F4777AF6, x1, y1, z1, x2, y2, z2, x3, y3, z3, clamp); } // 0x7f8f6405f4777af60x89459f0aB323 - // clamp: sets whether the product should be clamped between the given coordinates - inline Vector3 GetClosestPointOnLine(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, BOOL clamp) { return _i(0x21C235BC64831E5A, x1, y1, z1, x2, y2, z2, x3, y3, z3, clamp); } // 0x21c235bc64831e5a0xcaecf37eB323 - inline BOOL GetLinePlaneIntersection(float p0, float p1, float p2, float p3, float p4, float p5, float p6, float p7, float p8, float p9, float p10, float p11, float* p12) { return _i(0xF56DFB7B61BE7276, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } // 0xf56dfb7b61be72760xc6cc812cB323 - inline BOOL GetPointAreaOverlap(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9, Any p10, Any p11, Any p12, Any p13) { return _i(0xA0AD167E4B39D9A2, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); } // 0xa0ad167e4b39d9a2B2189 - // This sets bit [offset] of [address] to on. - // - // The offsets used are different bits to be toggled on and off, typically there is only one address used in a script. - // - // Example: - // MISC::SetBit(&bitAddress, 1); - // - // To check if this bit has been enabled: - // MISC::IS_BIT_SET(bitAddress, 1); // will return 1 afterwards - // - // Please note, this method may assign a value to [address] when used. - inline Void SetBit(int* address, int offset) { return _i(0x933D6A9EEC1BACD0, address, offset); } // 0x933d6a9eec1bacd00x4efe7e6bB323 - // This sets bit [offset] of [address] to off. - // - // Example: - // MISC::ClearBit(&bitAddress, 1); - // - // To check if this bit has been enabled: - // MISC::IS_BIT_SET(bitAddress, 1); // will return 0 afterwards - inline Void ClearBit(int* address, int offset) { return _i(0xE80492A9AC099A93, address, offset); } // 0xe80492a9ac099a930x8bc9e618B323 - // This native converts its past string to hash. It is hashed using jenkins one at a time method. - inline Hash GetHashKey(String string) { return _i(0xD24D37CC275948CC, string); } // 0xd24d37cc275948cc0x98eff6f1B323 - // This native always come right before SetEntityQuaternion where its final 4 parameters are SlerpNearQuaternion p9 to p12 - inline Void SlerpNearQuaternion(float t, float x, float y, float z, float w, float x1, float y1, float z1, float w1, float* outX, float* outY, float* outZ, float* outW) { return _i(0xF2F6A2FA49278625, t, x, y, z, w, x1, y1, z1, w1, outX, outY, outZ, outW); } // 0xf2f6a2fa492786250x87b92190B323 - inline BOOL IsAreaOccupied(float p0, float p1, float p2, float p3, float p4, float p5, BOOL p6, BOOL p7, BOOL p8, BOOL p9, BOOL p10, Any p11, BOOL p12) { return _i(0xA61B4DF533DCB56E, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } // 0xa61b4df533dcb56e0xc013972fB323 - inline BOOL IsAreaOccupiedSlow(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9, Any p10, Any p11, Any p12) { return _i(0x39455BF4F4F55186, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } // 0x39455bf4f4f55186B1868 - // `range`: The range, seems to not be very accurate during testing. - // `p4`: Unknown, when set to true it seems to always return true no matter what I try. - // `checkVehicle`: Check for any vehicles in that area. - // `checkPeds`: Check for any peds in that area. - // `ignoreEntity`: This entity will be ignored if it's in the area. Set to 0 if you don't want to exclude any entities. - // The BOOL parameters that are documented have not been confirmed. They are just documented from what I've found during testing. They may not work as expected in all cases. - // - // Returns true if there is anything in that location matching the provided parameters. - inline BOOL IsPositionOccupied(float x, float y, float z, float range, BOOL p4, BOOL checkVehicles, BOOL checkPeds, BOOL p7, BOOL p8, Entity ignoreEntity, BOOL p10) { return _i(0xADCDE75E1C60F32D, x, y, z, range, p4, checkVehicles, checkPeds, p7, p8, ignoreEntity, p10); } // 0xadcde75e1c60f32d0x452e8d9eB323 - inline BOOL IsPointObscuredByAMissionEntity(float p0, float p1, float p2, float p3, float p4, float p5, Any p6) { return _i(0xE54E209C35FFA18D, p0, p1, p2, p3, p4, p5, p6); } // 0xe54e209c35ffa18d0xc161558dB323 - // Example: ClearArea(0, 0, 0, 30, true, false, false, false); - inline Void ClearArea(float X, float Y, float Z, float radius, BOOL p4, BOOL ignoreCopCars, BOOL ignoreObjects, BOOL p7) { return _i(0xA56F01F3765B93A0, X, Y, Z, radius, p4, ignoreCopCars, ignoreObjects, p7); } // 0xa56f01f3765b93a00x854e9ab8B323 - // MISC::ClearAreaLeaveVehicleHealth(x, y, z, radius, false, false, false, false); seem to make all objects go away, peds, vehicles etc. All booleans set to true doesn't seem to change anything. - inline Void ClearAreaLeaveVehicleHealth(float x, float y, float z, float radius, BOOL p4, BOOL p5, BOOL p6, BOOL p7) { return _i(0x957838AAF91BD12D, x, y, z, radius, p4, p5, p6, p7); } // 0x957838aaf91bd12d0x20e4ffd9B323 - // Example: - // ClearAreaOfVehicles(0.0f, 0.0f, 0.0f, 10000.0f, false, false, false, false, false, false); - inline Void ClearAreaOfVehicles(float x, float y, float z, float radius, BOOL p4, BOOL p5, BOOL p6, BOOL p7, BOOL p8, BOOL p9, Any p10) { return _i(0x01C7B9B38428AEB6, x, y, z, radius, p4, p5, p6, p7, p8, p9, p10); } // 0x01c7b9b38428aeb60x63320f3cB323 - inline Void ClearAngledAreaOfVehicles(float x1, float y1, float z1, float x2, float y2, float z2, float width, BOOL p7, BOOL p8, BOOL p9, BOOL p10, BOOL p11, Any p12, Any p13) { return _i(0x11DB3500F042A8AA, x1, y1, z1, x2, y2, z2, width, p7, p8, p9, p10, p11, p12, p13); } // 0x11db3500f042a8aa0xf11a3018B323 - // I looked through the PC scripts that this site provides you with a link to find. It shows the last param mainly uses, (0, 2, 6, 16, and 17) so I am going to assume it is a type of flag. - inline Void ClearAreaOfObjects(float x, float y, float z, float radius, int flags) { return _i(0xDD9B9B385AAC7F5B, x, y, z, radius, flags); } // 0xdd9b9b385aac7f5b0xbb720fe7B323 - // Example: ClearAreaOfPeds(0, 0, 0, 10000, 1); - inline Void ClearAreaOfPeds(float x, float y, float z, float radius, int flags) { return _i(0xBE31FD6CE464AC59, x, y, z, radius, flags); } // 0xbe31fd6ce464ac590x25be7fa8B323 - // flags appears to always be 0 - inline Void ClearAreaOfCops(float x, float y, float z, float radius, int flags) { return _i(0x04F8FC8FCF58F88D, x, y, z, radius, flags); } // 0x04f8fc8fcf58f88d0x95c53824B323 - // flags is usually 0 in the scripts. - inline Void ClearAreaOfProjectiles(float x, float y, float z, float radius, int flags) { return _i(0x0A1CB9094635D1A6, x, y, z, radius, flags); } // 0x0a1cb9094635d1a60x18db5434B323 - // Possibly used to clear scenario points. - inline Void ClearScenarioSpawnHistory() { return _i(0x7EC6F9A478A6A512); } // 0x7ec6f9a478a6a512B323 - // ignoreVehicle - bypasses vehicle check of the local player (it will not open if you are in a vehicle and this is set to false) - inline Void SetSaveMenuActive(BOOL ignoreVehicle) { return _i(0xC9BF75D28165FF77, ignoreVehicle); } // 0xc9bf75d28165ff770xf5ccf164B323 - inline int GetStatusOfManualSave() { return _i(0x397BAA01068BAA96); } // 0x397baa01068baa960x39771f21B323 - inline Void SetCreditsActive(BOOL toggle) { return _i(0xB938B7E6D3C0620C, toggle); } // 0xb938b7e6d3c0620c0xec2a0ecfB323 - inline Void SetCreditsFadeOutWithScreen(BOOL toggle) { return _i(0xB51B9AB9EF81868C, toggle); } // 0xb51b9ab9ef81868c0x75b06b5aB323 - inline BOOL HaveCreditsReachedEnd() { return _i(0x075F1D57402C93BA); } // 0x075f1d57402c93ba0x2569c9a7B323 - inline BOOL AreCreditsRunning() { return _i(0xD19C0826DC20CF1C); } // 0xd19c0826dc20cf1cB2802 - inline Void TerminateAllScriptsWithThisName(String scriptName) { return _i(0x9DC711BC69C548DF, scriptName); } // 0x9dc711bc69c548df0x9f861fd4B323 - inline Void NetworkSetScriptIsSafeForNetworkGame() { return _i(0x9243BAC96D64C050); } // 0x9243bac96d64c0500x878486ceB323 - // Returns the index of the newly created hospital spawn point. - // - // p3 might be radius? - inline int AddHospitalRestart(float x, float y, float z, float p3, Any p4) { return _i(0x1F464EF988465A81, x, y, z, p3, p4); } // 0x1f464ef988465a810x4f3e3104B323 - // The game by default has 5 hospital respawn points. Disabling them all will cause the player to respawn at the last position they were. - inline Void DisableHospitalRestart(int hospitalIndex, BOOL toggle) { return _i(0xC8535819C450EBA8, hospitalIndex, toggle); } // 0xc8535819c450eba80x09f49c72B323 - inline int AddPoliceRestart(float p0, float p1, float p2, float p3, Any p4) { return _i(0x452736765B31FC4B, p0, p1, p2, p3, p4); } // 0x452736765b31fc4b0xe96c29feB323 - // Disables the spawn point at the police house on the specified index. - // - // policeIndex: The police house index. - // toggle: true to enable the spawn point, false to disable. - // - // - Nacorpio - inline Void DisablePoliceRestart(int policeIndex, BOOL toggle) { return _i(0x23285DED6EBD7EA3, policeIndex, toggle); } // 0x23285ded6ebd7ea30x0a280324B323 - inline Void SetRestartCoordOverride(float x, float y, float z, float heading) { return _i(0x706B5EDCAA7FA663, x, y, z, heading); } // 0x706b5edcaa7fa663B323 - inline Void ClearRestartCoordOverride() { return _i(0xA2716D40842EAF79); } // 0xa2716d40842eaf79B323 - inline Void PauseDeathArrestRestart(BOOL toggle) { return _i(0x2C2B3493FBF51C71, toggle); } // 0x2c2b3493fbf51c710x296574aeB323 - inline Void IgnoreNextRestart(BOOL toggle) { return _i(0x21FFB63D8C615361, toggle); } // 0x21ffb63d8c6153610xda13a4b6B323 - // Sets whether the game should fade out after the player dies. - inline Void SetFadeOutAfterDeath(BOOL toggle) { return _i(0x4A18E01DF2C87B86, toggle); } // 0x4a18e01df2c87b860xc9f6f0bcB323 - // Sets whether the game should fade out after the player is arrested. - inline Void SetFadeOutAfterArrest(BOOL toggle) { return _i(0x1E0B4DC0D990A4E7, toggle); } // 0x1e0b4dc0d990a4e70xcb074b9dB323 - // Sets whether the game should fade in after the player dies or is arrested. - inline Void SetFadeInAfterDeathArrest(BOOL toggle) { return _i(0xDA66D2796BA33F12, toggle); } // 0xda66d2796ba33f120xacde6985B323 - inline Void SetFadeInAfterLoad(BOOL toggle) { return _i(0xF3D78F59DFE18D79, toggle); } // 0xf3d78f59dfe18d790x6e00eb0bB323 - // returns savehouseHandle - inline int RegisterSaveHouse(float x, float y, float z, float p3, String p4, Any p5, Any p6) { return _i(0xC0714D0A7EEECA54, x, y, z, p3, p4, p5, p6); } // 0xc0714d0a7eeeca540x39c1849aB323 - inline Void SetSaveHouse(int savehouseHandle, BOOL p1, BOOL p2) { return _i(0x4F548CABEAE553BC, savehouseHandle, p1, p2); } // 0x4f548cabeae553bc0xc3240bb4B323 - inline BOOL OverrideSaveHouse(BOOL p0, float p1, float p2, float p3, float p4, BOOL p5, float p6, float p7) { return _i(0x1162EA8AE9D24EEA, p0, p1, p2, p3, p4, p5, p6, p7); } // 0x1162ea8ae9d24eea0x47436c12B323 - inline BOOL GetSaveHouseDetailsAfterSuccessfulLoad(Vector3* p0, float* p1, BOOL* fadeInAfterLoad, BOOL* p3) { return _i(0xA4A0065E39C9F25C, p0, p1, fadeInAfterLoad, p3); } // 0xa4a0065e39c9f25c0xc4d71ab4B323 - inline Void DoAutoSave() { return _i(0x50EEAAD86232EE55); } // 0x50eeaad86232ee550x54c44b1aB323 - // Returns true if profile setting 208 is equal to 0. - inline BOOL GetIsAutoSaveOff() { return _i(0x6E04F06094C87047); } // 0x6e04f06094c870470xa8546914B323 - inline BOOL IsAutoSaveInProgress() { return _i(0x69240733738C19A0); } // 0x69240733738c19a00x36f75399B323 - inline BOOL HasCodeRequestedAutosave() { return _i(0x2107A3773771186D); } // 0x2107a3773771186d0x78350773B323 - inline Void ClearCodeRequestedAutosave() { return _i(0x06462A961E94B67C); } // 0x06462a961e94b67c0x5a45b11aB323 - inline Void BeginReplayStats(Any p0, Any p1) { return _i(0xE0E500246FF73D66, p0, p1); } // 0xe0e500246ff73d660x17f4f44dB323 - inline Void AddReplayStatValue(Any value) { return _i(0x69FE6DC87BD2A5E9, value); } // 0x69fe6dc87bd2a5e90x81216ee0B323 - inline Void EndReplayStats() { return _i(0xA23E821FBDF8A5F2); } // 0xa23e821fbdf8a5f20xcb570185B323 - inline BOOL HaveReplayStatsBeenStored() { return _i(0xD642319C54AADEB6); } // 0xd642319c54aadeb60xc58250f1B323 - inline int GetReplayStatMissionId() { return _i(0x5B1F2E327B6B6FE1); } // 0x5b1f2e327b6b6fe10x50c39926B323 - inline int GetReplayStatMissionType() { return _i(0x2B626A0150E4D449); } // 0x2b626a0150e4d4490x710e5d1eB323 - inline int GetReplayStatCount() { return _i(0xDC9274A7EF6B2867); } // 0xdc9274a7ef6b28670xc7bd1af0B323 - inline int GetReplayStatAtIndex(int index) { return _i(0x8098C8D6597AAE18, index); } // 0x8098c8d6597aae180x22be2423B323 - inline Void ClearReplayStats() { return _i(0x1B1AB132A16FDA55); } // 0x1b1ab132a16fda550xc47dff02B323 - inline BOOL QueueMissionRepeatLoad() { return _i(0x72DE52178C291CB5); } // 0x72de52178c291cb50xf62b3c48B323 - // Shows the screen which is visible before you redo a mission? The game will make a restoration point where you will cameback when the mission is over. - // Returns 1 if the message isn't currently on screen - inline BOOL QueueMissionRepeatSave() { return _i(0x44A0BDC559B35F6E); } // 0x44a0bdc559b35f6e0x3589452bB323 - inline BOOL QueueMissionRepeatSaveForBenchmarkTest() { return _i(0xEB2104E905C6F2E9); } // 0xeb2104e905c6f2e9B323 - inline int GetStatusOfMissionRepeatSave() { return _i(0x2B5E102E4A42F2BF); } // 0x2b5e102e4a42f2bf0x144aaf22B323 - inline BOOL IsMemoryCardInUse() { return _i(0x8A75CE2956274ADD); } // 0x8a75ce2956274add0x40ce4dfdB323 - inline Void ShootSingleBulletBetweenCoords(float x1, float y1, float z1, float x2, float y2, float z2, int damage, BOOL p7, Hash weaponHash, Ped ownerPed, BOOL isAudible, BOOL isInvisible, float speed) { return _i(0x867654CBC7606F2C, x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed); } // 0x867654cbc7606f2c0xcb7415acB323 - // entity - entity to ignore - inline Void ShootSingleBulletBetweenCoordsIgnoreEntity(float x1, float y1, float z1, float x2, float y2, float z2, int damage, BOOL p7, Hash weaponHash, Ped ownerPed, BOOL isAudible, BOOL isInvisible, float speed, Entity entity, Any p14) { return _i(0xE3A7742E0B7A2F8B, x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity, p14); } // 0xe3a7742e0b7a2f8b0x52accb7bB323 - // entity - entity to ignore - // targetEntity - entity to home in on, if the weapon hash provided supports homing - inline Void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, BOOL p7, Hash weaponHash, Ped ownerPed, BOOL isAudible, BOOL isInvisible, float speed, Entity entity, BOOL p14, BOOL p15, Entity targetEntity, BOOL p17, Any p18, Any p19, Any p20) { return _i(0xBFE5756E7407064A, x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity, p14, p15, targetEntity, p17, p18, p19, p20); } // 0xbfe5756e7407064a0xccdc33ccB323 - // Gets the dimensions of a model. - // - // Calculate (maximum - minimum) to get the size, in which case, Y will be how long the model is. - // - // Example from the scripts: MISC::GetModelDimensions(ENTITY::GetEntityModel(PLAYER::PlayerPedId()), &v_1A, &v_17); - inline Void GetModelDimensions(Hash modelHash, Vector3* minimum, Vector3* maximum) { return _i(0x03E8D3D5F549087A, modelHash, minimum, maximum); } // 0x03e8d3d5f549087a0x91abb8e0B323 - // Sets a visually fake wanted level on the user interface. Used by Rockstar's scripts to "override" regular wanted levels and make custom ones while the real wanted level and multipliers are still in effect. - // - // Max is 6, anything above this makes it just 6. Also the mini-map gets the red & blue flashing effect. - inline Void SetFakeWantedLevel(int fakeWantedLevel) { return _i(0x1454F2448DE30163, fakeWantedLevel); } // 0x1454f2448de301630x85b1c9faB323 - inline int GetFakeWantedLevel() { return _i(0x4C9296CBCD1B971E); } // 0x4c9296cbcd1b971e0x0022a430B323 - inline Void UsingMissionCreator(BOOL toggle) { return _i(0xF14878FC50BEC6EE, toggle); } // 0xf14878fc50bec6ee0x20ab0b6bB323 - inline Void AllowMissionCreatorWarp(BOOL toggle) { return _i(0xDEA36202FC3382DF, toggle); } // 0xdea36202fc3382df0x082ba6f2B323 - inline Void SetMinigameInProgress(BOOL toggle) { return _i(0x19E00D7322C6F85B, toggle); } // 0x19e00d7322c6f85b0x348b9046B323 - inline BOOL IsMinigameInProgress() { return _i(0x2B4A15E44DE0F478); } // 0x2b4a15e44de0f4780x53a95e13B323 - inline BOOL IsThisAMinigameScript() { return _i(0x7B30F65D7B710098); } // 0x7b30f65d7b7100980x7605ef6fB323 - // This function is hard-coded to always return 0. - inline BOOL IsSniperInverted() { return _i(0x61A23B7EDA9BDA24); } // 0x61a23b7eda9bda240x5c3bf51bB323 - // Returns true if the game is using the metric measurement system (profile setting 227), false if imperial is used. - inline BOOL ShouldUseMetricMeasurements() { return _i(0xD3D15555431AB793); } // 0xd3d15555431ab7930xbaf17315B323 - inline int GetProfileSetting(int profileSetting) { return _i(0xC488FF2356EA7791, profileSetting); } // 0xc488ff2356ea77910xd374bebcB323 - inline BOOL AreStringsEqual(String string1, String string2) { return _i(0x0C515FAB3FF9EA92, string1, string2); } // 0x0c515fab3ff9ea920x877c0bc5B323 - // Compares two strings up to a specified number of characters. - // - // Parameters: - // str1 - String to be compared. - // str2 - String to be compared. - // matchCase - Comparison will be case-sensitive. - // maxLength - Maximum number of characters to compare. A value of -1 indicates an infinite length. - // - // Returns: - // A value indicating the relationship between the strings: - // <0 - The first non-matching character in 'str1' is less than the one in 'str2'. (e.g. 'A' < 'B', so result = -1) - // 0 - The contents of both strings are equal. - // >0 - The first non-matching character in 'str1' is less than the one in 'str2'. (e.g. 'B' > 'A', so result = 1) - // - // Examples: - // MISC::CompareStrings("STRING", "string", false, -1); // 0; equal - // MISC::CompareStrings("TESTING", "test", false, 4); // 0; equal - // MISC::CompareStrings("R2D2", "R2xx", false, 2); // 0; equal - // MISC::CompareStrings("foo", "bar", false, -1); // 4; 'f' > 'b' - // MISC::CompareStrings("A", "A", true, 1); // 0; equal - // - // When comparing case-sensitive strings, lower-case characters are greater than upper-case characters: - // MISC::CompareStrings("A", "a", true, 1); // -1; 'A' < 'a' - // MISC::CompareStrings("a", "A", true, 1); // 1; 'a' > 'A' - inline int CompareStrings(String str1, String str2, BOOL matchCase, int maxLength) { return _i(0x1E34710ECD4AB0EB, str1, str2, matchCase, maxLength); } // 0x1e34710ecd4ab0eb0xfe25a58fB323 - inline int Absi(int value) { return _i(0xF0D31AD191A74F87, value); } // 0xf0d31ad191a74f870xb44677c5B323 - inline float Absf(float value) { return _i(0x73D57CFFDD12C355, value); } // 0x73d57cffdd12c3550xaf6f6e0bB323 - // Determines whether there is a sniper bullet within the specified coordinates. The coordinates form an axis-aligned bounding box. - inline BOOL IsSniperBulletInArea(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0xFEFCF11B01287125, x1, y1, z1, x2, y2, z2); } // 0xfefcf11b012871250x0483715cB323 - // Determines whether there is a projectile within the specified coordinates. The coordinates form a rectangle. - // - // - Nacorpio - // - // - // ownedByPlayer = only projectiles fired by the player will be detected. - inline BOOL IsProjectileInArea(float x1, float y1, float z1, float x2, float y2, float z2, BOOL ownedByPlayer) { return _i(0x5270A8FBC098C3F8, x1, y1, z1, x2, y2, z2, ownedByPlayer); } // 0x5270a8fbc098c3f80x78e1a557B323 - // Determines whether there is a projectile of a specific type within the specified coordinates. The coordinates form a axis-aligned bounding box. - inline BOOL IsProjectileTypeInArea(float x1, float y1, float z1, float x2, float y2, float z2, int type, BOOL ownedByPlayer) { return _i(0x2E0DC353342C4A6D, x1, y1, z1, x2, y2, z2, type, ownedByPlayer); } // 0x2e0dc353342c4a6d0x2b73bcf6B323 - // See IsPointInAngledArea for the definition of an angled area. - inline BOOL IsProjectileTypeInAngledArea(float x1, float y1, float z1, float x2, float y2, float z2, float width, Any p7, BOOL ownedByPlayer) { return _i(0xF0BC12401061DEA0, x1, y1, z1, x2, y2, z2, width, p7, ownedByPlayer); } // 0xf0bc12401061dea00xd1ae2681B323 - inline BOOL IsProjectileTypeWithinDistance(float x, float y, float z, Hash projectileHash, float radius, BOOL ownedByPlayer) { return _i(0x34318593248C8FB2, x, y, z, projectileHash, radius, ownedByPlayer); } // 0x34318593248c8fb20xbe81f1e2B323 - inline BOOL GetCoordsOfProjectileTypeInArea(float x1, float y1, float z1, float x2, float y2, float z2, Hash projectileHash, Vector3* projectilePos, BOOL ownedByPlayer) { return _i(0x8D7A43EC6A5FEA45, x1, y1, z1, x2, y2, z2, projectileHash, projectilePos, ownedByPlayer); } // 0x8d7a43ec6a5fea450x1a40454bB323 - inline BOOL GetCoordsOfProjectileTypeInAngledArea(float vecAngledAreaPoint1X, float vecAngledAreaPoint1Y, float vecAngledAreaPoint1Z, float vecAngledAreaPoint2X, float vecAngledAreaPoint2Y, float vecAngledAreaPoint2Z, float distanceOfOppositeFace, Hash weaponType, Vector3* positionOut, BOOL bIsPlayer) { return _i(0x3DA8C28346B62CED, vecAngledAreaPoint1X, vecAngledAreaPoint1Y, vecAngledAreaPoint1Z, vecAngledAreaPoint2X, vecAngledAreaPoint2Y, vecAngledAreaPoint2Z, distanceOfOppositeFace, weaponType, positionOut, bIsPlayer); } // 0x3da8c28346b62cedB2802 - inline BOOL GetCoordsOfProjectileTypeWithinDistance(Ped ped, Hash weaponHash, float distance, Vector3* outCoords, BOOL p4) { return _i(0xDFB4138EEFED7B81, ped, weaponHash, distance, outCoords, p4); } // 0xdfb4138eefed7b810x6bde5ce4B323 - inline BOOL GetProjectileOfProjectileTypeWithinDistance(Ped ped, Hash weaponHash, float distance, Vector3* outCoords, Object* outProjectile, BOOL p5) { return _i(0x82FDE6A57EE4EE44, ped, weaponHash, distance, outCoords, outProjectile, p5); } // 0x82fde6a57ee4ee440x507bc6f7B323 - // For projectiles, see: IsProjectileTypeInAngledArea - // See IsPointInAngledArea for the definition of an angled area. - // Returns True if a bullet, as maintained by a pool within CWeaponManager, has been fired into the defined angled area. - inline BOOL IsBulletInAngledArea(float x1, float y1, float z1, float x2, float y2, float z2, float width, BOOL ownedByPlayer) { return _i(0x1A8B5F3C01E2B477, x1, y1, z1, x2, y2, z2, width, ownedByPlayer); } // 0x1a8b5f3c01e2b4770xe2db58f7B323 - inline BOOL IsBulletInArea(float x, float y, float z, float radius, BOOL ownedByPlayer) { return _i(0x3F2023999AD51C1F, x, y, z, radius, ownedByPlayer); } // 0x3f2023999ad51c1f0xb54f46caB323 - inline BOOL IsBulletInBox(float x1, float y1, float z1, float x2, float y2, float z2, BOOL ownedByPlayer) { return _i(0xDE0F6D7450D37351, x1, y1, z1, x2, y2, z2, ownedByPlayer); } // 0xde0f6d7450d373510xab73ed26B323 - // p3 - possibly radius? - inline BOOL HasBulletImpactedInArea(float x, float y, float z, float p3, BOOL p4, BOOL p5) { return _i(0x9870ACFB89A90995, x, y, z, p3, p4, p5); } // 0x9870acfb89a909950x902bc7d9B323 - inline BOOL HasBulletImpactedInBox(float p0, float p1, float p2, float p3, float p4, float p5, BOOL p6, BOOL p7) { return _i(0xDC8C5D7CFEAB8394, p0, p1, p2, p3, p4, p5, p6, p7); } // 0xdc8c5d7cfeab83940x2c2618ccB323 - // PS4 - inline BOOL IsOrbisVersion() { return _i(0xA72BC0B675B1519E); } // 0xa72bc0b675b1519e0x40282018B323 - // XBOX ONE - inline BOOL IsDurangoVersion() { return _i(0x4D982ADB1978442D); } // 0x4d982adb1978442d0x46fb06a5B323 - inline BOOL IsXbox360Version() { return _i(0xF6201B4DAF662A9D); } // 0xf6201b4daf662a9d0x24005cc8B323 - inline BOOL IsPs3Version() { return _i(0xCCA1072C29D096C2); } // 0xcca1072c29d096c20x4c0d5303B323 - inline BOOL IsPcVersion() { return _i(0x48AF36444B965238); } // 0x48af36444b9652380x4d5d9ee3B323 - inline BOOL IsSteamVersion() { return _i(0x0A27B2B6282F7169); } // 0x0a27b2b6282f7169B2545 - // Used to block some of the prostitute stuff due to laws in Australia. - inline BOOL IsAussieVersion() { return _i(0x9F1935CA1F724008); } // 0x9f1935ca1f7240080x944ba1dcB323 - inline BOOL IsJapaneseVersion() { return _i(0xB8C0BB75D8A77DB3); } // 0xb8c0bb75d8a77db3B2545 - inline BOOL IsXboxPlatform() { return _i(0x138679CA01E21F53); } // 0x138679ca01e21f53B2612 - // Xbox Series (Scarlett) version... - inline BOOL IsScarlettVersion() { return _i(0xC545AB1CF97ABB34); } // 0xc545ab1cf97abb34B2612 - inline BOOL IsScePlatform() { return _i(0xF911E695C1EB8518); } // 0xf911e695c1eb8518B2612 - // PS5 (Prospero) version... - inline BOOL IsProsperoVersion() { return _i(0x807ABE1AB65C24D2); } // 0x807abe1ab65c24d2B2612 - inline BOOL IsStringNull(String string) { return _i(0xF22B6C47C6EAB066, string); } // 0xf22b6c47c6eab0660x8e71e00fB323 - inline BOOL IsStringNullOrEmpty(String string) { return _i(0xCA042B6957743895, string); } // 0xca042b69577438950x42e9f2caB323 - // Returns false if it's a null or empty string or if the string is too long. outInteger will be set to -999 in that case. - // - // If all checks have passed successfully, the return value will be set to whatever strtol(string, 0i64, 10); returns. - inline BOOL StringToInt(String string, int* outInteger) { return _i(0x5A5F40FE637EB584, string, outInteger); } // 0x5a5f40fe637eb5840x590a8160B323 - inline Void SetBitsInRange(int* var, int rangeStart, int rangeEnd, int p3) { return _i(0x8EF07E15701D61ED, var, rangeStart, rangeEnd, p3); } // 0x8ef07e15701d61ed0x32094719B323 - inline int GetBitsInRange(int var, int rangeStart, int rangeEnd) { return _i(0x53158863FCC0893A, var, rangeStart, rangeEnd); } // 0x53158863fcc0893a0xca03a1e5B323 - // See description of `AddStuntJumpAngled` for detailed info. The only difference really is this one does not have the radius (or angle, not sure) floats parameters for entry and landing zones. - inline int AddStuntJump(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4, float camX, float camY, float camZ, int p15, int p16, int p17) { return _i(0x1A992DA297A4630C, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, camX, camY, camZ, p15, p16, p17); } // 0x1a992da297a4630c0xb630e5ffB323 - // Creates a new stunt jump. - // - // The radius1 and radius2 might actually not be a radius at all, but that's what it seems to me testing them in-game. But they may be 'angle' floats instead, considering this native is named ADD_STUNT_JUMP_**ANGLED**. - // - // Info about the specific 'parameter sections': - // - // - // **x1, y1, z1, x2, y2, z2 and radius1:** - // - // First coordinates are for the jump entry area, and the radius that will be checked around that area. So if you're not exactly within the coordinates, but you are within the outter radius limit then it will still register as entering the stunt jump. Note as mentioned above, the radius is just a guess, I'm not really sure about it's exact purpose. - // - // - // **x3, y3, z3, x4, y4, z4 and radius2:** - // - // Next part is the landing area, again starting with the left bottom (nearest to the stunt jump entry zone) coordinate, and the second one being the top right furthest away part of the landing area. Followed by another (most likely) radius float, this is usually slightly larger than the entry zone 'radius' float value, just because you have quite a lot of places where you can land (I'm guessing). - // - // - // **camX, camY and camZ:** - // - // The final coordinate in this native is the Camera position. Rotation and zoom/FOV is managed by the game itself, you just need to provide the camera location. - // - // - // **unk1, unk2 and unk3:** - // - // Not sure what these are for, but they're always `150, 0, 0` in decompiled scripts. - // - // Here is a list of almost all of the stunt jumps from GTA V (taken from decompiled scripts): https://pastebin.com/EW1jBPkY - inline int AddStuntJumpAngled(float x1, float y1, float z1, float x2, float y2, float z2, float radius1, float x3, float y3, float z3, float x4, float y4, float z4, float radius2, float camX, float camY, float camZ, int p17, int p18, int p19) { return _i(0xBBE5D803A5360CBF, x1, y1, z1, x2, y2, z2, radius1, x3, y3, z3, x4, y4, z4, radius2, camX, camY, camZ, p17, p18, p19); } // 0xbbe5d803a5360cbf0xb9b7e777B323 - // Toggles some stunt jump stuff. - inline Void ToggleShowOptionalStuntJumpCamera(BOOL toggle) { return _i(0xFB80AB299D2EE1BD, toggle); } // 0xfb80ab299d2ee1bdB757 - inline Void DeleteStuntJump(int p0) { return _i(0xDC518000E39DAE1F, p0); } // 0xdc518000e39dae1f0x840cb5daB323 - inline Void EnableStuntJumpSet(int p0) { return _i(0xE369A5783B866016, p0); } // 0xe369a5783b8660160x9d1e7785B323 - inline Void DisableStuntJumpSet(int p0) { return _i(0xA5272EBEDD4747F6, p0); } // 0xa5272ebedd4747f60x644c9fa4B323 - inline Void SetStuntJumpsCanTrigger(BOOL toggle) { return _i(0xD79185689F8FD5DF, toggle); } // 0xd79185689f8fd5df0x3c806a2dB323 - inline BOOL IsStuntJumpInProgress() { return _i(0x7A3F19700A4D0525); } // 0x7a3f19700a4d05250xf477d0b1B323 - inline BOOL IsStuntJumpMessageShowing() { return _i(0x2272B0A1343129F4); } // 0x2272b0a1343129f40x021636eeB323 - inline int GetNumSuccessfulStuntJumps() { return _i(0x996DD1E1E02F1008); } // 0x996dd1e1e02f10080x006f9ba2B323 - inline int GetTotalSuccessfulStuntJumps() { return _i(0x6856EC3D35C81EA4); } // 0x6856ec3d35c81ea40x495be324B323 - inline Void CancelStuntJump() { return _i(0xE6B7B0ACD4E4B75E); } // 0xe6b7b0acd4e4b75e0xf43d9821B323 - // Make sure to call this from the correct thread if you're using multiple threads because all other threads except the one which is calling SetGamePaused will be paused which means you will lose control and the game remains in paused mode until you exit GTA5.exe - inline Void SetGamePaused(BOOL toggle) { return _i(0x577D1284D6873711, toggle); } // 0x577d1284d68737110x8230ff6cB323 - inline Void SetThisScriptCanBePaused(BOOL toggle) { return _i(0xAA391C728106F7AF, toggle); } // 0xaa391c728106f7af0xa0c3ce29B323 - inline Void SetThisScriptCanRemoveBlipsCreatedByAnyScript(BOOL toggle) { return _i(0xB98236CAAECEF897, toggle); } // 0xb98236caaecef8970xd06f1720B323 - // This native appears on the cheat_controller script and tracks a combination of buttons, which may be used to toggle cheats in-game. Credits to ThreeSocks for the info. The hash contains the combination, while the "amount" represents the amount of buttons used in a combination. The following page can be used to make a button combination: gta5offset.com/ts/hash/ - // - // INT_SCORES_SCORTED was a hash collision - inline BOOL HasCheatWithHashBeenActivated(Hash hash, int amount) { return _i(0x071E2A839DE82D90, hash, amount); } // 0x071e2a839de82d900xff6191e1B323 - // Get inputted "Cheat code", for example: - // - // while (TRUE) - // { - // if (MISC::HasPcCheatWithHashBeenActivated(${fugitive})) - // { - // // Do something. - // } - // SYSTEM::Wait(0); - // } - // - // Calling this will also set the last saved string hash to zero. - // - inline BOOL HasPcCheatWithHashBeenActivated(Hash hash) { return _i(0x557E43C447E700A8, hash); } // 0x557e43c447e700a8B323 - inline Void OverrideFreezeFlags(BOOL p0) { return _i(0xFA3FFB0EEBC288A3, p0); } // 0xfa3ffb0eebc288a3B2060 - // Formerly known as _LOWER_MAP_PROP_DENSITY and wrongly due to idiots as _ENABLE_MP_DLC_MAPS. - // Sets the maximum prop density and changes a loading screen flag from 'loading story mode' to 'loading GTA Online'. Does not touch DLC map data at all. - // - // In fact, I doubt this changes the flag whatsoever, that's the OTHER native idiots use together with this that does so, this one only causes a loading screen to show as it reloads map data. - inline Void SetInstancePriorityMode(int p0) { return _i(0x9BAE5AD2508DF078, p0); } // 0x9bae5ad2508df0780x721b2492B323 - // Sets an unknown flag used by CScene in determining which entities from CMapData scene nodes to draw, similar to SetInstancePriorityMode. - inline Void SetInstancePriorityHint(int flag) { return _i(0xC5F0A8EBD3F361CE, flag); } // 0xc5f0a8ebd3f361ce0xe202879dB323 - // This function is hard-coded to always return 0. - inline BOOL IsFrontendFading() { return _i(0x7EA2B6AF97ECA6ED); } // 0x7ea2b6af97eca6ed0x8ff6232cB323 - // spawns a few distant/out-of-sight peds, vehicles, animals etc each time it is called - inline Void PopulateNow() { return _i(0x7472BB270D7B4F3E); } // 0x7472bb270d7b4f3e0x72c20700B323 - inline int GetIndexOfCurrentLevel() { return _i(0xCBAD6729F7B1F4FC); } // 0xcbad6729f7b1f4fc0x6f203c6eB323 - // level can be from 0 to 3 - // 0: 9.8 - normal - // 1: 2.4 - low - // 2: 0.1 - very low - // 3: 0.0 - off - inline Void SetGravityLevel(int level) { return _i(0x740E14FAD5842351, level); } // 0x740e14fad58423510x2d833f4aB323 - inline Void StartSaveData(Any* p0, Any p1, BOOL p2) { return _i(0xA9575F812C6A7997, p0, p1, p2); } // 0xa9575f812c6a79970x881a694dB323 - inline Void StopSaveData() { return _i(0x74E20C9145FB66FD); } // 0x74e20c9145fb66fd0x3b1c07c8B323 - inline int GetSizeOfSaveData(BOOL p0) { return _i(0xA09F896CE912481F, p0); } // 0xa09f896ce912481f0x9ef0bc64B323 - inline Void RegisterIntToSave(Any* p0, String name) { return _i(0x34C9EE5986258415, p0, name); } // 0x34c9ee59862584150xb930956fB323 - inline Void RegisterInt64ToSave(Any* p0, String name) { return _i(0xA735353C77334EA0, p0, name); } // 0xa735353c77334ea0B323 - inline Void RegisterEnumToSave(Any* p0, String name) { return _i(0x10C2FA78D0E128A1, p0, name); } // 0x10c2fa78d0e128a10x9b38374aB323 - inline Void RegisterFloatToSave(Any* p0, String name) { return _i(0x7CAEC29ECB5DFEBB, p0, name); } // 0x7caec29ecb5dfebb0xdb06f7adB323 - inline Void RegisterBoolToSave(Any* p0, String name) { return _i(0xC8F4131414C835A1, p0, name); } // 0xc8f4131414c835a10x5417e0e0B323 - inline Void RegisterTextLabelToSave(Any* p0, String name) { return _i(0xEDB1232C5BEAE62F, p0, name); } // 0xedb1232c5beae62f0x284352c4B323 - // MISC::RegisterTextLabel15ToSave(&a_0._f1, "tlPlateText"); - // MISC::RegisterTextLabel15ToSave(&a_0._f1C, "tlPlateText_pending"); - // MISC::RegisterTextLabel15ToSave(&a_0._f10B, "tlCarAppPlateText"); - inline Void RegisterTextLabel15ToSave(Any* p0, String name) { return _i(0x6F7794F28C6B2535, p0, name); } // 0x6f7794f28c6b25350xe2089749B323 - // Only found 3 times in decompiled scripts. - // - // MISC::RegisterTextLabel23ToSave(a_0, "Movie_Name_For_This_Player"); - // MISC::RegisterTextLabel23ToSave(&a_0._fB, "Ringtone_For_This_Player"); - // MISC::RegisterTextLabel23ToSave(&a_0._f1EC4._f12[v_A/*6*/], &v_13); // where v_13 is "MPATMLOGSCRS0" thru "MPATMLOGSCRS15" - inline Void RegisterTextLabel23ToSave(Any* p0, String name) { return _i(0x48F069265A0E4BEC, p0, name); } // 0x48f069265a0e4bec0xf91b8c33B323 - // Only found 2 times in decompiled scripts. - // - // MISC::RegisterTextLabel31ToSave(&a_0._f1F5A._f6[0/*8*/], "TEMPSTAT_LABEL"); // gets saved in a struct called "g_SaveData_STRING_ScriptSaves" - // MISC::RegisterTextLabel31ToSave(&a_0._f4B4[v_1A/*8*/], &v_5); // where v_5 is "Name0" thru "Name9", gets saved in a struct called "OUTFIT_Name" - inline Void RegisterTextLabel31ToSave(Any* p0, String name) { return _i(0x8269816F6CFD40F8, p0, name); } // 0x8269816f6cfd40f80x74e8fad9B323 - // MISC::RegisterTextLabel63ToSave(a_0, "Thumb_label"); - // MISC::RegisterTextLabel63ToSave(&a_0._f10, "Photo_label"); - // MISC::RegisterTextLabel63ToSave(a_0, "GXTlabel"); - // MISC::RegisterTextLabel63ToSave(&a_0._f21, "StringComp"); - // MISC::RegisterTextLabel63ToSave(&a_0._f43, "SecondStringComp"); - // MISC::RegisterTextLabel63ToSave(&a_0._f53, "ThirdStringComp"); - // MISC::RegisterTextLabel63ToSave(&a_0._f32, "SenderStringComp"); - // MISC::RegisterTextLabel63ToSave(&a_0._f726[v_1A/*16*/], &v_20); // where v_20 is "LastJobTL_0_1" thru "LastJobTL_2_1", gets saved in a struct called "LAST_JobGamer_TL" - // MISC::RegisterTextLabel63ToSave(&a_0._f4B, "PAID_PLAYER"); - // MISC::RegisterTextLabel63ToSave(&a_0._f5B, "RADIO_STATION"); - inline Void RegisterTextLabel63ToSave(Any* p0, String name) { return _i(0xFAA457EF263E8763, p0, name); } // 0xfaa457ef263e87630x6b4335ddB323 - inline Void StartSaveStructWithSize(Any* p0, int size, String structName) { return _i(0xBF737600CDDBEADD, p0, size, structName); } // 0xbf737600cddbeadd0xfb45728eB323 - inline Void StopSaveStruct() { return _i(0xEB1774DF12BB9F12); } // 0xeb1774df12bb9f120xc2624a28B323 - inline Void StartSaveArrayWithSize(Any* p0, int size, String arrayName) { return _i(0x60FE567DF1B1AF9D, p0, size, arrayName); } // 0x60fe567df1b1af9d0x893a342cB323 - inline Void StopSaveArray() { return _i(0x04456F95153C6BE4); } // 0x04456f95153c6be40x0cad8217B323 - inline Void CopyScriptStruct(Any* dst, Any* src, int size) { return _i(0x213AEB2B90CBA7AC, dst, src, size); } // 0x213aeb2b90cba7acB877 - // https://alloc8or.re/gta5/doc/enums/DispatchType.txt - inline Void EnableDispatchService(int dispatchService, BOOL toggle) { return _i(0xDC0F817884CDD856, dispatchService, toggle); } // 0xdc0f817884cdd8560x0b710a51B323 - inline Void BlockDispatchServiceResourceCreation(int dispatchService, BOOL toggle) { return _i(0x9B2BD3773123EA2F, dispatchService, toggle); } // 0x9b2bd3773123ea2f0xe0f0684fB323 - inline int GetNumberResourcesAllocatedToWantedLevel(int dispatchService) { return _i(0xEB4A0C2D56441717, dispatchService); } // 0xeb4a0c2d564417170x3ce5bf6bB323 - // As for the 'police' incident, it will call police cars to you, but unlike PedsInCavalcades & Merryweather they won't start shooting at you unless you shoot first or shoot at them. The top 2 however seem to cancel theirselves if there is noone dead around you or a fire. I only figured them out as I found out the 3rd param is definately the amountOfPeople and they called incident 3 in scripts with 4 people (which the firetruck has) and incident 5 with 2 people (which the ambulence has). The 4 param I cant say is radius, but for the pedsInCavalcades and Merryweather R* uses 0.0f and for the top 3 (Emergency Services) they use 3.0f. - // - // Side Note: It seems calling the pedsInCavalcades or Merryweather then removing it seems to break you from calling the EmergencyEvents and I also believe pedsInCavalcades. (The V cavalcades of course not IV). - // - // Side Note 2: I say it breaks as if you call this proper, - // if(CreateIncident) etc it will return false if you do as I said above. - // ===================================================== - inline BOOL CreateIncident(int dispatchService, float x, float y, float z, int numUnits, float radius, int* outIncidentID, Any p7, Any p8) { return _i(0x3F892CAF67444AE7, dispatchService, x, y, z, numUnits, radius, outIncidentID, p7, p8); } // 0x3f892caf67444ae70xfc5ff7b3B323 - // As for the 'police' incident, it will call police cars to you, but unlike PedsInCavalcades & Merryweather they won't start shooting at you unless you shoot first or shoot at them. The top 2 however seem to cancel theirselves if there is noone dead around you or a fire. I only figured them out as I found out the 3rd param is definately the amountOfPeople and they called incident 3 in scripts with 4 people (which the firetruck has) and incident 5 with 2 people (which the ambulence has). The 4 param I cant say is radius, but for the pedsInCavalcades and Merryweather R* uses 0.0f and for the top 3 (Emergency Services) they use 3.0f. - // - // Side Note: It seems calling the pedsInCavalcades or Merryweather then removing it seems to break you from calling the EmergencyEvents and I also believe pedsInCavalcades. (The V cavalcades of course not IV). - // - // Side Note 2: I say it breaks as if you call this proper, - // if(CreateIncident) etc it will return false if you do as I said above. - // ===================================================== - inline BOOL CreateIncidentWithEntity(int dispatchService, Ped ped, int numUnits, float radius, int* outIncidentID, Any p5, Any p6) { return _i(0x05983472F0494E60, dispatchService, ped, numUnits, radius, outIncidentID, p5, p6); } // 0x05983472f0494e600xbbc35b03B323 - // Delete an incident with a given id. - // - // ======================================================= - // Correction, I have change this to int, instead of int* - // as it doesn't use a pointer to the createdIncident. - // If you try it you will crash (or) freeze. - // ======================================================= - inline Void DeleteIncident(int incidentId) { return _i(0x556C1AA270D5A207, incidentId); } // 0x556c1aa270d5a2070x212bd0dcB323 - // ======================================================= - // Correction, I have change this to int, instead of int* - // as it doesn't use a pointer to the createdIncident. - // If you try it you will crash (or) freeze. - // ======================================================= - inline BOOL IsIncidentValid(int incidentId) { return _i(0xC8BC6461E629BEAA, incidentId); } // 0xc8bc6461e629beaa0x31fd0ba4B323 - inline Void SetIncidentRequestedUnits(int incidentId, int dispatchService, int numUnits) { return _i(0xB08B85D860E7BA3C, incidentId, dispatchService, numUnits); } // 0xb08b85d860e7ba3c0x0242d88eB323 - inline Void SetIdealSpawnDistanceForIncident(int incidentId, float p1) { return _i(0xD261BA3E7E998072, incidentId, p1); } // 0xd261ba3e7e9980720x1f38102eB323 - // Finds a position ahead of the player by predicting the players next actions. - // The positions match path finding node positions. - // When roads diverge, the position may rapidly change between two or more positions. This is due to the engine not being certain of which path the player will take. - inline BOOL FindSpawnPointInDirection(float posX, float posY, float posZ, float fwdVecX, float fwdVecY, float fwdVecZ, float distance, Vector3* spawnPoint) { return _i(0x6874E2190B0C1972, posX, posY, posZ, fwdVecX, fwdVecY, fwdVecZ, distance, spawnPoint); } // 0x6874e2190b0c19720x71aefd77B323 - inline int AddPopMultiplierArea(float x1, float y1, float z1, float x2, float y2, float z2, float p6, float p7, BOOL p8, BOOL p9) { return _i(0x67F6413D3220E18D, x1, y1, z1, x2, y2, z2, p6, p7, p8, p9); } // 0x67f6413d3220e18d0x42bf09b3B323 - inline BOOL DoesPopMultiplierAreaExist(int id) { return _i(0x1327E2FE9746BAEE, id); } // 0x1327e2fe9746baee0xe933b34aB323 - inline Void RemovePopMultiplierArea(int id, BOOL p1) { return _i(0xB129E447A2EDA4BF, id, p1); } // 0xb129e447a2eda4bf0xfbdbe374B323 - inline BOOL IsPopMultiplierAreaNetworked(int id) { return _i(0x1312F4B242609CE3, id); } // 0x1312f4b242609ce3B1290 - // This native is adding a zone, where you can change density settings. For example, you can add a zone on 0.0, 0.0, 0.0 with radius 900.0 and vehicleMultiplier 0.0, and you will not see any new population vehicle spawned in a radius of 900.0 from 0.0, 0.0, 0.0. Returns the id. You can have only 15 zones at the same time. You can remove zone using RemovePopMultiplierSphere - inline int AddPopMultiplierSphere(float x, float y, float z, float radius, float pedMultiplier, float vehicleMultiplier, BOOL p6, BOOL p7) { return _i(0x32C7A7E8C43A1F80, x, y, z, radius, pedMultiplier, vehicleMultiplier, p6, p7); } // 0x32c7a7e8c43a1f800xce4a3d20B323 - inline BOOL DoesPopMultiplierSphereExist(int id) { return _i(0x171BAFB3C60389F4, id); } // 0x171bafb3c60389f40xd2b7a5a0B791 - // Removes population multiplier sphere - inline Void RemovePopMultiplierSphere(int id, BOOL p1) { return _i(0xE6869BECDD8F2403, id, p1); } // 0xe6869becdd8f24030x92e7e4ebB323 - // Makes the ped jump around like they're in a tennis match - inline Void EnableTennisMode(Ped ped, BOOL toggle, BOOL p2) { return _i(0x28A04B411933F8A6, ped, toggle, p2); } // 0x28a04b411933f8a60x0bd3f9ecB323 - inline BOOL IsTennisMode(Ped ped) { return _i(0x5D5479D115290C3F, ped); } // 0x5d5479d115290c3f0x04a947baB323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline Void PlayTennisSwingAnim(Ped ped, String animDict, String animName, float p3, float p4, BOOL p5) { return _i(0xE266ED23311F24D4, ped, animDict, animName, p3, p4, p5); } // 0xe266ed23311f24d40xc20a7d2bB323 - inline BOOL GetTennisSwingAnimComplete(Ped ped) { return _i(0x17DF68D720AA77F8, ped); } // 0x17df68d720aa77f80x8501e727B323 - inline BOOL GetTennisSwingAnimCanBeInterrupted(Ped ped) { return _i(0x19BFED045C647C49, ped); } // 0x19bfed045c647c490x1a332d2dB323 - inline BOOL GetTennisSwingAnimSwung(Ped ped) { return _i(0xE95B0C7D5BA3B96B, ped); } // 0xe95b0c7d5ba3b96bB323 - inline Void PlayTennisDiveAnim(Ped ped, int p1, float p2, float p3, float p4, BOOL p5) { return _i(0x8FA9C42FC5D7C64B, ped, p1, p2, p3, p4, p5); } // 0x8fa9c42fc5d7c64b0x0c8865dfB323 - // From the scripts: - // - // MISC::SetTennisMoveNetworkSignalFloat(sub_aa49(a_0), "ForcedStopDirection", v_E); - // - // Related to tennis mode. - inline Void SetTennisMoveNetworkSignalFloat(Ped ped, String p1, float p2) { return _i(0x54F157E0336A3822, ped, p1, p2); } // 0x54f157e0336a38220x49f977a9B323 - inline Void ResetDispatchSpawnLocation() { return _i(0x5896F2BD5683A4E1); } // 0x5896f2bd5683a4e1B1868 - inline Void SetDispatchSpawnLocation(float x, float y, float z) { return _i(0xD10F442036302D50, x, y, z); } // 0xd10f442036302d500x6f009e33B323 - inline Void ResetDispatchIdealSpawnDistance() { return _i(0x77A84429DD9F0A15); } // 0x77a84429dd9f0a150xda65ecaaB323 - inline Void SetDispatchIdealSpawnDistance(float distance) { return _i(0x6FE601A64180D423, distance); } // 0x6fe601a64180d4230x6283be32B323 - inline Void ResetDispatchTimeBetweenSpawnAttempts(Any p0) { return _i(0xEB2DB0CAD13154B3, p0); } // 0xeb2db0cad13154b30x1479e85aB323 - inline Void SetDispatchTimeBetweenSpawnAttempts(Any p0, float p1) { return _i(0x44F7CBC1BEB3327D, p0, p1); } // 0x44f7cbc1beb3327d0xabadb709B323 - inline Void SetDispatchTimeBetweenSpawnAttemptsMultiplier(Any p0, float p1) { return _i(0x48838ED9937A15D1, p0, p1); } // 0x48838ed9937a15d10x1c996bcdB323 - // To remove, see: RemoveDispatchSpawnBlockingArea - // See IsPointInAngledArea for the definition of an angled area. - inline int AddDispatchSpawnAngledBlockingArea(float x1, float y1, float z1, float x2, float y2, float z2, float width) { return _i(0x918C7B2D2FF3928B, x1, y1, z1, x2, y2, z2, width); } // 0x918c7b2d2ff3928b0xf557baf9B323 - inline int AddDispatchSpawnSphereBlockingArea(float x1, float y1, float x2, float y2) { return _i(0x2D4259F1FEB81DA9, x1, y1, x2, y2); } // 0x2d4259f1feb81da9B323 - inline Void RemoveDispatchSpawnBlockingArea(int p0) { return _i(0x264AC28B01B353A5, p0); } // 0x264ac28b01b353a50xa8d2fb92B323 - inline Void ResetDispatchSpawnBlockingAreas() { return _i(0xAC7BFD5C1D83EA75); } // 0xac7bfd5c1d83ea750x9a17f835B323 - inline Void ResetWantedResponseNumPedsToSpawn() { return _i(0xD9F692D349249528); } // 0xd9f692d3492495280xe0c9307eB323 - inline Void SetWantedResponseNumPedsToSpawn(int p0, int p1) { return _i(0xE532EC1A63231B4F, p0, p1); } // 0xe532ec1a63231b4f0xa0d8c749B323 - inline Void AddTacticalNavMeshPoint(float x, float y, float z) { return _i(0xB8721407EE9C3FF6, x, y, z); } // 0xb8721407ee9c3ff60x24a4e0b2B323 - inline Void ClearTacticalNavMeshPoints() { return _i(0xB3CD58CCA6CDA852); } // 0xb3cd58cca6cda8520x66c3c59cB323 - // Activates (usused?) riot mode. All NPCs are being hostile to each other (including player). Also the game will give weapons (pistols, smgs) to random NPCs. - inline Void SetRiotModeEnabled(BOOL toggle) { return _i(0x2587A48BC88DFADF, toggle); } // 0x2587a48bc88dfadf0xd9660339B323 - inline Void DisplayOnscreenKeyboardWithLongerInitialString(int p0, String windowTitle, Any* p2, String defaultText, String defaultConcat1, String defaultConcat2, String defaultConcat3, String defaultConcat4, String defaultConcat5, String defaultConcat6, String defaultConcat7, int maxInputLength) { return _i(0xCA78CFA0366592FE, p0, windowTitle, p2, defaultText, defaultConcat1, defaultConcat2, defaultConcat3, defaultConcat4, defaultConcat5, defaultConcat6, defaultConcat7, maxInputLength); } // 0xca78cfa0366592fe0xd2688412B323 - // sfink: note, p0 is set to 6 for PC platform in at least 1 script, or to `unk::_get_ui_language_id() == 0` otherwise. - // - // NOTE: windowTitle uses text labels, and an invalid value will display nothing. - // - // www.gtaforums.com/topic/788343-vrel-script-hook-v/?p=1067380474 - // - // windowTitle's - // ----------------- - // CELL_EMAIL_BOD = "Enter your Eyefind message" - // CELL_EMAIL_BODE = "Message too long. Try again" - // CELL_EMAIL_BODF = "Forbidden message. Try again" - // CELL_EMAIL_SOD = "Enter your Eyefind subject" - // CELL_EMAIL_SODE = "Subject too long. Try again" - // CELL_EMAIL_SODF = "Forbidden text. Try again" - // CELL_EMASH_BOD = "Enter your Eyefind message" - // CELL_EMASH_BODE = "Message too long. Try again" - // CELL_EMASH_BODF = "Forbidden message. Try again" - // CELL_EMASH_SOD = "Enter your Eyefind subject" - // CELL_EMASH_SODE = "Subject too long. Try again" - // CELL_EMASH_SODF = "Forbidden Text. Try again" - // FMMC_KEY_TIP10 = "Enter Synopsis" - // FMMC_KEY_TIP12 = "Enter Custom Team Name" - // FMMC_KEY_TIP12F = "Forbidden Text. Try again" - // FMMC_KEY_TIP12N = "Custom Team Name" - // FMMC_KEY_TIP8 = "Enter Message" - // FMMC_KEY_TIP8F = "Forbidden Text. Try again" - // FMMC_KEY_TIP8FS = "Invalid Message. Try again" - // FMMC_KEY_TIP8S = "Enter Message" - // FMMC_KEY_TIP9 = "Enter Outfit Name" - // FMMC_KEY_TIP9F = "Invalid Outfit Name. Try again" - // FMMC_KEY_TIP9N = "Outfit Name" - // PM_NAME_CHALL = "Enter Challenge Name" - inline Void DisplayOnscreenKeyboard(int p0, String windowTitle, String p2, String defaultText, String defaultConcat1, String defaultConcat2, String defaultConcat3, int maxInputLength) { return _i(0x00DC833F2568DBF6, p0, windowTitle, p2, defaultText, defaultConcat1, defaultConcat2, defaultConcat3, maxInputLength); } // 0x00dc833f2568dbf60xad99f2ceB323 - // Returns the current status of the onscreen keyboard, and updates the output. - // - // Status Codes: - // - // -1: Keyboard isn't active - // 0: User still editing - // 1: User has finished editing - // 2: User has canceled editing - inline int UpdateOnscreenKeyboard() { return _i(0x0CF2B696BBF945AE); } // 0x0cf2b696bbf945ae0x23d0a1ceB323 - // Returns NULL unless UpdateOnscreenKeyboard() returns 1 in the same tick. - inline String GET_ONSCREEN_KEYBOARD_RESULT() { return _i(0x8362B09B91893647); } // 0x8362B09B91893647 0x44828FB3 b323 - // DO NOT use this as it doesn't clean up the text input box properly and your script will get stuck in the UpdateOnscreenKeyboard() loop. - // Use ForceCloseTextInputBox instead. - inline Void CancelOnscreenKeyboard() { return _i(0x58A39BE597CE99CD); } // 0x58a39be597ce99cdB757 - // p0 was always 2 in R* scripts. - // Called before calling DisplayOnscreenKeyboard if the input needs to be saved. - inline Void NextOnscreenKeyboardResultWillDisplayUsingTheseFonts(int p0) { return _i(0x3ED1438C1F5C6612, p0); } // 0x3ed1438c1f5c66120x3301ea47B323 - // Appears to remove stealth kill action from memory - inline Void ActionManagerEnableAction(Hash hash, BOOL enable) { return _i(0xA6A12939F16D85BE, hash, enable); } // 0xa6a12939f16d85be0x42b484edB323 - // GetGameTimer() / 1000 - inline int GetRealWorldTime() { return _i(0x3F60413F5DF65748); } // 0x3f60413f5df65748B2612 - inline Void SupressRandomEventThisFrame(int eventType, BOOL suppress) { return _i(0x1EAE0A6E978894A2, eventType, suppress); } // 0x1eae0a6e978894a20x8f60366eB323 - inline Void SetExplosiveAmmoThisFrame(Player player) { return _i(0xA66C71C98D5F2CFB, player); } // 0xa66c71c98d5f2cfb0x2eafa1d1B323 - inline Void SetFireAmmoThisFrame(Player player) { return _i(0x11879CDD803D30F4, player); } // 0x11879cdd803d30f40x7c18fc8aB323 - inline Void SetExplosiveMeleeThisFrame(Player player) { return _i(0xFF1BED81BFDC0FE0, player); } // 0xff1bed81bfdc0fe00x96663d56B323 - inline Void SetSuperJumpThisFrame(Player player) { return _i(0x57FFF03E423A4C0B, player); } // 0x57fff03e423a4c0b0x86745ef3B323 - inline Void SetBeastJumpThisFrame(Player player) { return _i(0x438822C279B73B93, player); } // 0x438822c279b73b93B573 - inline Void SetForcedJumpThisFrame(Player player) { return _i(0xA1183BCFEE0F93D1, player); } // 0xa1183bcfee0f93d1B1180 - inline BOOL HasGameInstalledThisSession() { return _i(0x6FDDF453C0C756EC); } // 0x6fddf453c0c756ec0xc3c10fccB323 - inline Void SetTickerJohnmarstonIsDone() { return _i(0xFB00CA71DA386228); } // 0xfb00ca71da3862280x054ec103B323 - inline BOOL AreProfileSettingsValid() { return _i(0x5AA3BEFA29F03AD4); } // 0x5aa3befa29f03ad40x46b5a15cB323 - inline Void PreventArrestStateThisFrame() { return _i(0xE3D969D2785FFB5E); } // 0xe3d969d2785ffb5eB323 - // Sets the localplayer playerinfo state back to playing (State 0) - // - // States are: - // -1: "Invalid" - // 0: "Playing" - // 1: "Died" - // 2: "Arrested" - // 3: "Failed Mission" - // 4: "Left Game" - // 5: "Respawn" - // 6: "In MP Cutscene" - inline Void ForceGameStatePlaying() { return _i(0xC0AA53F866B3134D); } // 0xc0aa53f866b3134d0x5d209f25B323 - inline Void ScriptRaceInit(int p0, int p1, Any p2, Any p3) { return _i(0x0A60017F841A54F2, p0, p1, p2, p3); } // 0x0a60017f841a54f20x2d33f15aB323 - inline Void ScriptRaceShutdown() { return _i(0x1FF6BF9A63E5757F); } // 0x1ff6bf9a63e5757f0xdf99925cB323 - inline Void ScriptRacePlayerHitCheckpoint(Player player, Any p1, Any p2, Any p3) { return _i(0x1BB299305C3E8C13, player, p1, p2, p3); } // 0x1bb299305c3e8c130xa27f4472B323 - inline BOOL ScriptRaceGetPlayerSplitTime(Player player, int* p1, int* p2) { return _i(0x8EF5573A1F801A5C, player, p1, p2); } // 0x8ef5573a1f801a5c0x07ff553fB323 - inline Void StartEndUserBenchmark() { return _i(0x92790862E36C2ADA); } // 0x92790862e36c2adaB323 - inline Void StopEndUserBenchmark() { return _i(0xC7DB36C24634F52B); } // 0xc7db36c24634f52bB323 - inline Void ResetEndUserBenchmark() { return _i(0x437138B6A830166A); } // 0x437138b6a830166aB323 - // Saves the benchmark recording to %USERPROFILE%\Documents\Rockstar Games\GTA V\Benchmarks and submits some metrics. - inline Void SaveEndUserBenchmark() { return _i(0x37DEB0AA183FB6D8); } // 0x37deb0aa183fb6d8B323 - // Returns true if the current frontend menu is FE_MENU_VERSION_SP_PAUSE - inline BOOL UiStartedEndUserBenchmark() { return _i(0xEA2F2061875EED90); } // 0xea2f2061875eed90B323 - // Returns true if the current frontend menu is FE_MENU_VERSION_LANDING_MENU - inline BOOL LandingScreenStartedEndUserBenchmark() { return _i(0x3BBBD13E5041A79E); } // 0x3bbbd13e5041a79eB323 - // Returns true if command line option '-benchmark' is set. - inline BOOL IsCommandlineEndUserBenchmark() { return _i(0xA049A5BE0F04F2F8); } // 0xa049a5be0f04f2f8B323 - // Returns value of the '-benchmarkIterations' command line option. - inline int GetBenchmarkIterations() { return _i(0x4750FC27570311EC); } // 0x4750fc27570311ecB323 - // Returns value of the '-benchmarkPass' command line option. - inline int GetBenchmarkPass() { return _i(0x1B2366C3F2A5C8DF); } // 0x1b2366c3f2a5c8dfB323 - // In singleplayer it does exactly what the name implies. In FiveM / GTA:Online it shows `Disconnecting from GTA Online` HUD and then quits the game. - inline Void RestartGame() { return _i(0xE574A662ACAEFBB1); } // 0xe574a662acaefbb1B372 - // Exits the game and downloads a fresh social club update on next restart. - inline Void QuitGame() { return _i(0xEB6891F03362FB12); } // 0xeb6891f03362fb12B323 - // Hardcoded to always return true. - inline BOOL HasAsyncInstallFinished() { return _i(0x14832BF2ABA53FC5); } // 0x14832bf2aba53fc5B323 - inline Void CleanupAsyncInstall() { return _i(0xC79AE21974B01FB2); } // 0xc79ae21974b01fb2B323 - // aka "constrained" - inline BOOL PlmIsInConstrainedMode() { return _i(0x684A41975F077262); } // 0x684a41975f077262B323 - // Returns duration of how long the game has been in power-saving mode (aka "constrained") in milliseconds. - inline int PlmGetConstrainedDurationMs() { return _i(0xABB2FA71C83A1B72); } // 0xabb2fa71c83a1b72B323 - // If toggle is true, the ped's head is shown in the pause menu - // If toggle is false, the ped's head is not shown in the pause menu - inline Void SetPlayerIsInAnimalForm(BOOL toggle) { return _i(0x4EBB7E87AA0DBED4, toggle); } // 0x4ebb7e87aa0dbed4B323 - // Although we don't have a jenkins hash for this one, the name is 100% confirmed. - inline BOOL GetIsPlayerInAnimalForm() { return _i(0x9689123E3F213AA5); } // 0x9689123e3f213aa5B323 - inline Void SetPlayerIsRepeatingAMission(BOOL toggle) { return _i(0x9D8D44ADBBA61EF2, toggle); } // 0x9d8d44adbba61ef2B323 - // Does nothing (it's a nullsub). - inline Void DisableScreenDimmingThisFrame() { return _i(0x23227DF0B2115469); } // 0x23227df0b2115469B323 - inline float GetCityDensity() { return _i(0xD10282B6E3751BA0); } // 0xd10282b6e3751ba0B323 - inline Void UseActiveCameraForTimeslicingCentre() { return _i(0x693478ACBD7F18E7); } // 0x693478acbd7f18e7B1103 - inline Void SetContentIdIndex(Hash contentId, int index) { return _i(0x4B82FA6F2D624634, contentId, index); } // 0x4b82fa6f2d624634B2612 - inline int GetContentIdIndex(Hash contentId) { return _i(0xECF041186C5A94DC, contentId); } // 0xecf041186c5a94dcB2612 + inline int GetAllocatedStackSize() { return _i(0x8B3CA62B1EF19B62); } // 0x8b3ca62b1ef19b620x4e9ca30aB323 + inline int GetNumberOfFreeStacksOfThisSize(int stackSize) { return _i(0xFEAD16FC8F9DFC0F, stackSize); } // 0xfead16fc8f9dfc0f0x11a178b8B323 + inline Void SetRandomSeed(int seed) { return _i(0x444D98F98C11F3EC, seed); } // 0x444d98f98c11f3ec0xdb3feb5cB323 + // Maximum value is 1. + // At a value of 0 the game will still run at a minimum time scale. + // + // Slow Motion 1: 0.6 + // Slow Motion 2: 0.4 + // Slow Motion 3: 0.2 + inline Void SetTimeScale(float timeScale) { return _i(0x1D408577D440E81E, timeScale); } // 0x1d408577d440e81e0xa7f84694B323 + // If true, the player can't save the game. + // + // + // If the parameter is true, sets the mission flag to true, if the parameter is false, the function does nothing at all. + // + // ^ also, if the mission flag is already set, the function does nothing at all + inline Void SetMissionFlag(BOOL toggle) { return _i(0xC4301E5121A0ED73, toggle); } // 0xc4301e5121a0ed730x57592d52B323 + inline BOOL GetMissionFlag() { return _i(0xA33CDCCDA663159E); } // 0xa33cdccda663159e0x95115f97B323 + // If the parameter is true, sets the random event flag to true, if the parameter is false, the function does nothing at all. + // Does nothing if the mission flag is set. + inline Void SetRandomEventFlag(BOOL toggle) { return _i(0x971927086CFD2158, toggle); } // 0x971927086cfd21580xa77f31e8B323 + inline BOOL GetRandomEventFlag() { return _i(0xD2D57F1D764117B1); } // 0xd2d57f1d764117b10x794cc92cB323 + // Returns pointer to an empty string. + inline String GetContentToLoad() { return _i(0x24DA7D7667FD7B09); } // 0x24da7d7667fd7b09B323 + // Does nothing (it's a nullsub). Seems to be PS4 specific. + inline Void ActivityFeedCreate(String p0, String p1) { return _i(0x4DCDF92BF64236CD, p0, p1); } // 0x4dcdf92bf64236cdB323 + // Does nothing (it's a nullsub). Seems to be PS4 specific. + inline Void ActivityFeedAddSubstringToCaption(String p0) { return _i(0x31125FD509D9043F, p0); } // 0x31125fd509d9043fB323 + // Does nothing (it's a nullsub). Seems to be PS4 specific. + inline Void ActivityFeedAddLiteralSubstringToCaption(String p0) { return _i(0xEBD3205A207939ED, p0); } // 0xebd3205a207939edB323 + // Does nothing (it's a nullsub). Seems to be PS4 specific. + inline Void ActivityFeedAddIntToCaption(Any p0) { return _i(0x97E7E2C04245115B, p0); } // 0x97e7e2c04245115bB323 + // Does nothing (it's a nullsub). Seems to be PS4 specific. + inline Void ActivityFeedLargeImageUrl(String p0) { return _i(0x916CA67D26FD1E37, p0); } // 0x916ca67d26fd1e37B2060 + // Does nothing (it's a nullsub). Seems to be PS4 specific. + inline Void ActivityFeedActionStartWithCommandLine(String p0, String p1) { return _i(0xEB078CA2B5E82ADD, p0, p1); } // 0xeb078ca2b5e82addB323 + // Does nothing (it's a nullsub). Seems to be PS4 specific. + inline Void ActivityFeedActionStartWithCommandLineAdd(String p0) { return _i(0x703CC7F60CBB2B57, p0); } // 0x703cc7f60cbb2b57B323 + // Does nothing (it's a nullsub). Seems to be PS4 specific. + inline Void ActivityFeedPost() { return _i(0x8951EB9C6906D3C8); } // 0x8951eb9c6906d3c8B323 + // Does nothing (it's a nullsub). Seems to be PS4 specific. + // + // Used only once in the scripts (ingamehud) with p0 = "AF_GAMEMODE" + inline Void ActivityFeedOnlinePlayedWithPost(String p0) { return _i(0xBA4B8D83BDC75551, p0); } // 0xba4b8d83bdc75551B323 + // Hardcoded to return false. + inline BOOL HasResumedFromSuspend() { return _i(0xE8B9C0EC9E183F35); } // 0xe8b9c0ec9e183f35B323 + // Sets GtaThread+0x14A + inline Void SetScriptHighPrio(BOOL toggle) { return _i(0x65D2EBB47E1CEC21, toggle); } // 0x65d2ebb47e1cec21B323 + // Sets bit 3 in GtaThread+0x150 + inline Void SetThisIsATriggerScript(BOOL toggle) { return _i(0x6F2135B6129620C1, toggle); } // 0x6f2135b6129620c10x8b2de971B323 + inline Void InformCodeOfContentIdOfCurrentUgcMission(String p0) { return _i(0x8D74E26F54B4E5C3, p0); } // 0x8d74e26f54b4e5c30xe77199f7B323 + inline BOOL GetBaseElementLocationFromMetadataBlock(Any* p0, Any* p1, Any p2, BOOL p3) { return _i(0xB335F761606DB47C, p0, p1, p2, p3); } // 0xb335f761606db47cB323 + // Returns current weather name hash + inline Hash GetPrevWeatherTypeHashName() { return _i(0x564B884A05EC45A3); } // 0x564b884a05ec45a30xa8171e9eB323 + // Returns weather name hash + inline Hash GetNextWeatherTypeHashName() { return _i(0x711327CD09C8F162); } // 0x711327cd09c8f1620x353e8056B323 + inline BOOL IsPrevWeatherType(String weatherType) { return _i(0x44F28F86433B10A9, weatherType); } // 0x44f28f86433b10a90x250ada61B323 + inline BOOL IsNextWeatherType(String weatherType) { return _i(0x2FAA3A30BEC0F25D, weatherType); } // 0x2faa3a30bec0f25d0x99cb167fB323 + // The following weatherTypes are used in the scripts: + // "CLEAR" + // "EXTRASUNNY" + // "CLOUDS" + // "OVERCAST" + // "RAIN" + // "CLEARING" + // "THUNDER" + // "SMOG" + // "FOGGY" + // "XMAS" + // "SNOW" + // "SNOWLIGHT" + // "BLIZZARD" + // "HALLOWEEN" + // "NEUTRAL" + inline Void SetWeatherTypePersist(String weatherType) { return _i(0x704983DF373B198F, weatherType); } // 0x704983df373b198f0xc6c04c75B323 + // The following weatherTypes are used in the scripts: + // "CLEAR" + // "EXTRASUNNY" + // "CLOUDS" + // "OVERCAST" + // "RAIN" + // "CLEARING" + // "THUNDER" + // "SMOG" + // "FOGGY" + // "XMAS" + // "SNOW" + // "SNOWLIGHT" + // "BLIZZARD" + // "HALLOWEEN" + // "NEUTRAL" + inline Void SetWeatherTypeNowPersist(String weatherType) { return _i(0xED712CA327900C8A, weatherType); } // 0xed712ca327900c8a0xc869fe97B323 + // The following weatherTypes are used in the scripts: + // "CLEAR" + // "EXTRASUNNY" + // "CLOUDS" + // "OVERCAST" + // "RAIN" + // "CLEARING" + // "THUNDER" + // "SMOG" + // "FOGGY" + // "XMAS" + // "SNOW" + // "SNOWLIGHT" + // "BLIZZARD" + // "HALLOWEEN" + // "NEUTRAL" + inline Void SetWeatherTypeNow(String weatherType) { return _i(0x29B487C359E19889, weatherType); } // 0x29b487c359e198890x361e9eacB323 + inline Void SetWeatherTypeOvertimePersist(String weatherType, float time) { return _i(0xFB5045B7C42B75BF, weatherType, time); } // 0xfb5045b7c42b75bf0x386f0d25B323 + inline Void SetRandomWeatherType() { return _i(0x8B05F884CF7E8020); } // 0x8b05f884cf7e80200xe7aa1bc9B323 + inline Void ClearWeatherTypePersist() { return _i(0xCCC39339BEF76CF5); } // 0xccc39339bef76cf50x6ab757d8B323 + inline Void ClearWeatherTypeNowPersistNetwork(int milliseconds) { return _i(0x0CF97F497FE7D048, milliseconds); } // 0x0cf97f497fe7d048B1103 + inline Void GetCurrWeatherState(Hash* weatherType1, Hash* weatherType2, float* percentWeather2) { return _i(0xF3BBE884A14BB413, weatherType1, weatherType2, percentWeather2); } // 0xf3bbe884a14bb4130x9a5c1d56B323 + // Mixes two weather types. If percentWeather2 is set to 0.0f, then the weather will be entirely of weatherType1, if it is set to 1.0f it will be entirely of weatherType2. If it's set somewhere in between, there will be a mixture of weather behaviors. To test, try this in the RPH console, and change the float to different values between 0 and 1: + // + // execute "NativeFunction.Natives.x578C752848ECFA0C(Game.GetHashKey(""RAIN""), Game.GetHashKey(""SMOG""), 0.50f); + // + // Note that unlike most of the other weather natives, this native takes the hash of the weather name, not the plain string. These are the weather names and their hashes: + // + // CLEAR 0x36A83D84 + // EXTRASUNNY 0x97AA0A79 + // CLOUDS 0x30FDAF5C + // OVERCAST 0xBB898D2D + // RAIN 0x54A69840 + // CLEARING 0x6DB1A50D + // THUNDER 0xB677829F + // SMOG 0x10DCF4B5 + // FOGGY 0xAE737644 + // XMAS 0xAAC9C895 + // SNOWLIGHT 0x23FB812B + // BLIZZARD 0x27EA2814 + // + // + // + // + // + // /* OLD INVALID INFO BELOW */ + // Not tested. Based purely on disassembly. Instantly sets the weather to sourceWeather, then transitions to targetWeather over the specified transitionTime in seconds. + // + // If an invalid hash is specified for sourceWeather, the current weather type will be used. + // If an invalid hash is specified for targetWeather, the next weather type will be used. + // If an invalid hash is specified for both sourceWeather and targetWeather, the function just changes the transition time of the current transition. + inline Void SetCurrWeatherState(Hash weatherType1, Hash weatherType2, float percentWeather2) { return _i(0x578C752848ECFA0C, weatherType1, weatherType2, percentWeather2); } // 0x578c752848ecfa0c0x5ca74040B323 + // Appears to have an optional BOOL parameter that is unused in the scripts. + // + // If you pass true, something will be set to zero. + inline Void SetOverrideWeather(String weatherType) { return _i(0xA43D5C6FE51ADBEF, weatherType); } // 0xa43d5c6fe51adbef0xd9082bb5B323 + // Identical to SetOverrideWeather but has an additional BOOL param that sets some weather var to 0 if true + inline Void SetOverrideWeatherex(String weatherType, BOOL p1) { return _i(0x1178E104409FE58C, weatherType, p1); } // 0x1178e104409fe58cB2189 + inline Void ClearOverrideWeather() { return _i(0x338D2E3477711050); } // 0x338d2e34777110500x7740ea4eB323 + inline Void WaterOverrideSetShorewaveamplitude(float amplitude) { return _i(0xB8F87EAD7533B176, amplitude); } // 0xb8f87ead7533b1760x625181dcB323 + inline Void WaterOverrideSetShorewaveminamplitude(float minAmplitude) { return _i(0xC3EAD29AB273ECE8, minAmplitude); } // 0xc3ead29ab273ece80xbebbfdc8B323 + inline Void WaterOverrideSetShorewavemaxamplitude(float maxAmplitude) { return _i(0xA7A1127490312C36, maxAmplitude); } // 0xa7a1127490312c360x6926ab03B323 + inline Void WaterOverrideSetOceannoiseminamplitude(float minAmplitude) { return _i(0x31727907B2C43C55, minAmplitude); } // 0x31727907b2c43c550xd447439dB323 + inline Void WaterOverrideSetOceanwaveamplitude(float amplitude) { return _i(0x405591EC8FD9096D, amplitude); } // 0x405591ec8fd9096d0x584e9c59B323 + inline Void WaterOverrideSetOceanwaveminamplitude(float minAmplitude) { return _i(0xF751B16FB32ABC1D, minAmplitude); } // 0xf751b16fb32abc1d0x5656d578B323 + inline Void WaterOverrideSetOceanwavemaxamplitude(float maxAmplitude) { return _i(0xB3E6360DDE733E82, maxAmplitude); } // 0xb3e6360dde733e820x0de40c28B323 + inline Void WaterOverrideSetRipplebumpiness(float bumpiness) { return _i(0x7C9C0B1EEB1F9072, bumpiness); } // 0x7c9c0b1eeb1f90720x98c9138bB323 + inline Void WaterOverrideSetRippleminbumpiness(float minBumpiness) { return _i(0x6216B116083A7CB4, minBumpiness); } // 0x6216b116083a7cb40xfb1a9cdeB323 + inline Void WaterOverrideSetRipplemaxbumpiness(float maxBumpiness) { return _i(0x9F5E6BB6B34540DA, maxBumpiness); } // 0x9f5e6bb6b34540da0x1c0cae89B323 + inline Void WaterOverrideSetRippledisturb(float disturb) { return _i(0xB9854DFDE0D833D6, disturb); } // 0xb9854dfde0d833d60x4671ac2eB323 + // This seems to edit the water wave, intensity around your current location. + // + // 0.0f = Normal + // 1.0f = So Calm and Smooth, a boat will stay still. + // 3.0f = Really Intense. + inline Void WaterOverrideSetStrength(float strength) { return _i(0xC54A08C85AE4D410, strength); } // 0xc54a08c85ae4d4100xda02f415B323 + inline Void WaterOverrideFadeIn(float p0) { return _i(0xA8434F1DFF41D6E7, p0); } // 0xa8434f1dff41d6e70x5f3ddec0B323 + inline Void WaterOverrideFadeOut(float p0) { return _i(0xC3C221ADDDE31A11, p0); } // 0xc3c221addde31a110x63a89684B323 + // Sets the the normalized wind speed value. The wind speed clamps always at 12.0, SetWind sets the wind in a percentage, 0.0 is 0 and 1.0 is 12.0. Setting this value to a negative number resumes the random wind speed changes provided by the game. + inline Void SetWind(float speed) { return _i(0xAC3A74E8384A9919, speed); } // 0xac3a74e8384a99190xc6294698B323 + // Using this native will set the absolute wind speed value. The wind speed clamps to a range of 0.0- 12.0. Setting this value to a negative number resumes the random wind speed changes provided by the game. + inline Void SetWindSpeed(float speed) { return _i(0xEE09ECEDBABE47FC, speed); } // 0xee09ecedbabe47fc0x45705f94B323 + inline float GetWindSpeed() { return _i(0xA8CF1CC0AFCD3F12); } // 0xa8cf1cc0afcd3f120x098f0f3cB323 + // The wind direction in radians + // 180 degrees (PI), wind will blow from the south. Setting this value to a negative number resumes the random wind direction changes provided by the game. + inline Void SetWindDirection(float direction) { return _i(0xEB0F4468467B4528, direction); } // 0xeb0f4468467b45280x381aeee9B323 + inline Vector3 GetWindDirection() { return _i(0x1F400FEF721170DA); } // 0x1f400fef721170da0x89499a0dB323 + // With an `intensity` higher than `0.5f`, only the creation of puddles gets faster, rain and rain sound won't increase after that. + // With an `intensity` of `0.0f` rain and rain sounds are disabled and there won't be any new puddles. + // To use the rain intensity of the current weather, call this native with `-1f` as `intensity`. + inline Void SetRain(float intensity) { return _i(0x643E26EA6E024D92, intensity); } // 0x643e26ea6e024d92B323 + inline float GetRainLevel() { return _i(0x96695E368AD855F3); } // 0x96695e368ad855f30xc9f67f28B323 + inline Void SetSnow(float level) { return _i(0x7F06937B0CDCBC1A, level); } // 0x7f06937b0cdcbc1aB1868 + inline float GetSnowLevel() { return _i(0xC5868A966E5BE3AE); } // 0xc5868a966e5be3ae0x1b09184fB323 + // creates single lightning+thunder at random position + inline Void ForceLightningFlash() { return _i(0xF6062E089251C898); } // 0xf6062e089251c8980xdf38165eB323 + inline Void SetCloudSettingsOverride(String p0) { return _i(0x02DEAAC8F8EA7FE7, p0); } // 0x02deaac8f8ea7fe7B323 + inline Void PreloadCloudHat(String name) { return _i(0x11B56FBBF7224868, name); } // 0x11b56fbbf72248680x8727a4c5B323 + // The following cloudhats are useable: + // altostratus + // Cirrus + // cirrocumulus + // Clear 01 + // Cloudy 01 + // Contrails + // Horizon + // horizonband1 + // horizonband2 + // horizonband3 + // horsey + // Nimbus + // Puffs + // RAIN + // Snowy 01 + // Stormy 01 + // stratoscumulus + // Stripey + // shower + // Wispy + // + inline Void LoadCloudHat(String name, float transitionTime) { return _i(0xFC4842A34657BFCB, name, transitionTime); } // 0xfc4842a34657bfcb0xed88fc61B323 + inline Void UnloadCloudHat(String name, float p1) { return _i(0xA74802FB8D0B7814, name, p1); } // 0xa74802fb8d0b78140xc9fa6e07B323 + inline Void UnloadAllCloudHats() { return _i(0x957E790EA1727B64); } // 0x957e790ea1727b640x2d7787bcB323 + inline Void SetCloudsAlpha(float opacity) { return _i(0xF36199225D6D8C86, opacity); } // 0xf36199225d6d8c86B323 + inline float GetCloudsAlpha() { return _i(0x20AC25E781AE4A84); } // 0x20ac25e781ae4a84B323 + inline int GetGameTimer() { return _i(0x9CD27B0045628463); } // 0x9cd27b00456284630xa4ea0691B323 + inline float GetFrameTime() { return _i(0x15C40837039FFAF7); } // 0x15c40837039ffaf70x96374262B323 + inline float GetSystemTimeStep() { return _i(0xE599A503B3837E1B); } // 0xe599a503b3837e1bB323 + inline int GetFrameCount() { return _i(0xFC8202EFC642E6F2); } // 0xfc8202efc642e6f20xb477a015B323 + inline float GetRandomFloatInRange(float startRange, float endRange) { return _i(0x313CE5879CEB6FCD, startRange, endRange); } // 0x313ce5879ceb6fcd0x0562c4d0B323 + inline int GetRandomIntInRange(int startRange, int endRange) { return _i(0xD53343AA4FB7DD28, startRange, endRange); } // 0xd53343aa4fb7dd280x4051115bB323 + inline int GetRandomMwcIntInRange(int startRange, int endRange) { return _i(0xF2D49816A804D134, startRange, endRange); } // 0xf2d49816a804d134B1734 + // Gets the ground elevation at the specified position. Note that if the specified position is below ground level, the function will output zero! + // + // x: Position on the X-axis to get ground elevation at. + // y: Position on the Y-axis to get ground elevation at. + // z: Position on the Z-axis to get ground elevation at. + // groundZ: The ground elevation at the specified position. + // ignoreWater: Nearly always 0, very rarely 1 in the scripts: https://gfycat.com/NiftyTatteredCricket + // + // Bear in mind this native can only calculate the elevation when the coordinates are within the client's render distance. + inline BOOL GetGroundZFor3dCoord(float x, float y, float z, float* groundZ, BOOL ignoreWater, BOOL p5) { return _i(0xC906A7DAB05C8D2B, x, y, z, groundZ, ignoreWater, p5); } // 0xc906a7dab05c8d2b0xa1bfd5e0B323 + inline BOOL GetGroundZAndNormalFor3dCoord(float x, float y, float z, float* groundZ, Vector3* normal) { return _i(0x8BDC7BFC57A81E76, x, y, z, groundZ, normal); } // 0x8bdc7bfc57a81e760x64d91cedB323 + inline BOOL GetGroundZExcludingObjectsFor3dCoord(float x, float y, float z, float* groundZ, BOOL p4, BOOL p5) { return _i(0x9E82F0F362881B29, x, y, z, groundZ, p4, p5); } // 0x9e82f0f362881b29B505 + inline float Asin(float p0) { return _i(0xC843060B5765DCE7, p0); } // 0xc843060b5765dce70x998e5cadB323 + inline float Acos(float p0) { return _i(0x1D08B970013C34B6, p0); } // 0x1d08b970013c34b60xf4038776B323 + inline float Tan(float p0) { return _i(0x632106CC96E82E91, p0); } // 0x632106cc96e82e910xd320ce5eB323 + inline float Atan(float p0) { return _i(0xA9D1795CD5043663, p0); } // 0xa9d1795cd50436630x7a03cc8eB323 + inline float Atan2(float p0, float p1) { return _i(0x8927CBF9D22261A4, p0, p1); } // 0x8927cbf9d22261a40x2508ac81B323 + // Returns the distance between two three-dimensional points, optionally ignoring the Z values. + // If useZ is false, only the 2D plane (X-Y) will be considered for calculating the distance. + // + // Consider using this faster native instead: SYSTEM::Vdist - DVIST always takes in consideration the 3D coordinates. + inline float GetDistanceBetweenCoords(float x1, float y1, float z1, float x2, float y2, float z2, BOOL useZ) { return _i(0xF1B760881820C952, x1, y1, z1, x2, y2, z2, useZ); } // 0xf1b760881820c9520xf698765eB323 + inline float GetAngleBetween2dVectors(float x1, float y1, float x2, float y2) { return _i(0x186FC4BE848E1C92, x1, y1, x2, y2); } // 0x186fc4be848e1c920xdbf75e58B323 + // dx = x1 - x2 + // dy = y1 - y2 + inline float GetHeadingFromVector2d(float dx, float dy) { return _i(0x2FFB6B224F4B2926, dx, dy); } // 0x2ffb6b224f4b29260xd209d52bB323 + // returns a float between 0.0 and 1.0, clamp: sets whether the product should be clamped between the given coordinates + inline float GetRatioOfClosestPointOnLine(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, BOOL clamp) { return _i(0x7F8F6405F4777AF6, x1, y1, z1, x2, y2, z2, x3, y3, z3, clamp); } // 0x7f8f6405f4777af60x89459f0aB323 + // clamp: sets whether the product should be clamped between the given coordinates + inline Vector3 GetClosestPointOnLine(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, BOOL clamp) { return _i(0x21C235BC64831E5A, x1, y1, z1, x2, y2, z2, x3, y3, z3, clamp); } // 0x21c235bc64831e5a0xcaecf37eB323 + inline BOOL GetLinePlaneIntersection(float p0, float p1, float p2, float p3, float p4, float p5, float p6, float p7, float p8, float p9, float p10, float p11, float* p12) { return _i(0xF56DFB7B61BE7276, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } // 0xf56dfb7b61be72760xc6cc812cB323 + inline BOOL GetPointAreaOverlap(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9, Any p10, Any p11, Any p12, Any p13) { return _i(0xA0AD167E4B39D9A2, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); } // 0xa0ad167e4b39d9a2B2189 + // This sets bit [offset] of [address] to on. + // + // The offsets used are different bits to be toggled on and off, typically there is only one address used in a script. + // + // Example: + // MISC::SetBit(&bitAddress, 1); + // + // To check if this bit has been enabled: + // MISC::IS_BIT_SET(bitAddress, 1); // will return 1 afterwards + // + // Please note, this method may assign a value to [address] when used. + inline Void SetBit(int* address, int offset) { return _i(0x933D6A9EEC1BACD0, address, offset); } // 0x933d6a9eec1bacd00x4efe7e6bB323 + // This sets bit [offset] of [address] to off. + // + // Example: + // MISC::ClearBit(&bitAddress, 1); + // + // To check if this bit has been enabled: + // MISC::IS_BIT_SET(bitAddress, 1); // will return 0 afterwards + inline Void ClearBit(int* address, int offset) { return _i(0xE80492A9AC099A93, address, offset); } // 0xe80492a9ac099a930x8bc9e618B323 + // This native converts its past string to hash. It is hashed using jenkins one at a time method. + inline Hash GetHashKey(String string) { return _i(0xD24D37CC275948CC, string); } // 0xd24d37cc275948cc0x98eff6f1B323 + // This native always come right before SetEntityQuaternion where its final 4 parameters are SlerpNearQuaternion p9 to p12 + inline Void SlerpNearQuaternion(float t, float x, float y, float z, float w, float x1, float y1, float z1, float w1, float* outX, float* outY, float* outZ, float* outW) { return _i(0xF2F6A2FA49278625, t, x, y, z, w, x1, y1, z1, w1, outX, outY, outZ, outW); } // 0xf2f6a2fa492786250x87b92190B323 + inline BOOL IsAreaOccupied(float p0, float p1, float p2, float p3, float p4, float p5, BOOL p6, BOOL p7, BOOL p8, BOOL p9, BOOL p10, Any p11, BOOL p12) { return _i(0xA61B4DF533DCB56E, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } // 0xa61b4df533dcb56e0xc013972fB323 + inline BOOL IsAreaOccupiedSlow(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9, Any p10, Any p11, Any p12) { return _i(0x39455BF4F4F55186, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } // 0x39455bf4f4f55186B1868 + // `range`: The range, seems to not be very accurate during testing. + // `p4`: Unknown, when set to true it seems to always return true no matter what I try. + // `checkVehicle`: Check for any vehicles in that area. + // `checkPeds`: Check for any peds in that area. + // `ignoreEntity`: This entity will be ignored if it's in the area. Set to 0 if you don't want to exclude any entities. + // The BOOL parameters that are documented have not been confirmed. They are just documented from what I've found during testing. They may not work as expected in all cases. + // + // Returns true if there is anything in that location matching the provided parameters. + inline BOOL IsPositionOccupied(float x, float y, float z, float range, BOOL p4, BOOL checkVehicles, BOOL checkPeds, BOOL p7, BOOL p8, Entity ignoreEntity, BOOL p10) { return _i(0xADCDE75E1C60F32D, x, y, z, range, p4, checkVehicles, checkPeds, p7, p8, ignoreEntity, p10); } // 0xadcde75e1c60f32d0x452e8d9eB323 + inline BOOL IsPointObscuredByAMissionEntity(float p0, float p1, float p2, float p3, float p4, float p5, Any p6) { return _i(0xE54E209C35FFA18D, p0, p1, p2, p3, p4, p5, p6); } // 0xe54e209c35ffa18d0xc161558dB323 + // Example: ClearArea(0, 0, 0, 30, true, false, false, false); + inline Void ClearArea(float X, float Y, float Z, float radius, BOOL p4, BOOL ignoreCopCars, BOOL ignoreObjects, BOOL p7) { return _i(0xA56F01F3765B93A0, X, Y, Z, radius, p4, ignoreCopCars, ignoreObjects, p7); } // 0xa56f01f3765b93a00x854e9ab8B323 + // MISC::ClearAreaLeaveVehicleHealth(x, y, z, radius, false, false, false, false); seem to make all objects go away, peds, vehicles etc. All booleans set to true doesn't seem to change anything. + inline Void ClearAreaLeaveVehicleHealth(float x, float y, float z, float radius, BOOL p4, BOOL p5, BOOL p6, BOOL p7) { return _i(0x957838AAF91BD12D, x, y, z, radius, p4, p5, p6, p7); } // 0x957838aaf91bd12d0x20e4ffd9B323 + // Example: + // ClearAreaOfVehicles(0.0f, 0.0f, 0.0f, 10000.0f, false, false, false, false, false, false); + inline Void ClearAreaOfVehicles(float x, float y, float z, float radius, BOOL p4, BOOL p5, BOOL p6, BOOL p7, BOOL p8, BOOL p9, Any p10) { return _i(0x01C7B9B38428AEB6, x, y, z, radius, p4, p5, p6, p7, p8, p9, p10); } // 0x01c7b9b38428aeb60x63320f3cB323 + inline Void ClearAngledAreaOfVehicles(float x1, float y1, float z1, float x2, float y2, float z2, float width, BOOL p7, BOOL p8, BOOL p9, BOOL p10, BOOL p11, Any p12, Any p13) { return _i(0x11DB3500F042A8AA, x1, y1, z1, x2, y2, z2, width, p7, p8, p9, p10, p11, p12, p13); } // 0x11db3500f042a8aa0xf11a3018B323 + // I looked through the PC scripts that this site provides you with a link to find. It shows the last param mainly uses, (0, 2, 6, 16, and 17) so I am going to assume it is a type of flag. + inline Void ClearAreaOfObjects(float x, float y, float z, float radius, int flags) { return _i(0xDD9B9B385AAC7F5B, x, y, z, radius, flags); } // 0xdd9b9b385aac7f5b0xbb720fe7B323 + // Example: ClearAreaOfPeds(0, 0, 0, 10000, 1); + inline Void ClearAreaOfPeds(float x, float y, float z, float radius, int flags) { return _i(0xBE31FD6CE464AC59, x, y, z, radius, flags); } // 0xbe31fd6ce464ac590x25be7fa8B323 + // flags appears to always be 0 + inline Void ClearAreaOfCops(float x, float y, float z, float radius, int flags) { return _i(0x04F8FC8FCF58F88D, x, y, z, radius, flags); } // 0x04f8fc8fcf58f88d0x95c53824B323 + // flags is usually 0 in the scripts. + inline Void ClearAreaOfProjectiles(float x, float y, float z, float radius, int flags) { return _i(0x0A1CB9094635D1A6, x, y, z, radius, flags); } // 0x0a1cb9094635d1a60x18db5434B323 + // Possibly used to clear scenario points. + inline Void ClearScenarioSpawnHistory() { return _i(0x7EC6F9A478A6A512); } // 0x7ec6f9a478a6a512B323 + // ignoreVehicle - bypasses vehicle check of the local player (it will not open if you are in a vehicle and this is set to false) + inline Void SetSaveMenuActive(BOOL ignoreVehicle) { return _i(0xC9BF75D28165FF77, ignoreVehicle); } // 0xc9bf75d28165ff770xf5ccf164B323 + inline int GetStatusOfManualSave() { return _i(0x397BAA01068BAA96); } // 0x397baa01068baa960x39771f21B323 + inline Void SetCreditsActive(BOOL toggle) { return _i(0xB938B7E6D3C0620C, toggle); } // 0xb938b7e6d3c0620c0xec2a0ecfB323 + inline Void SetCreditsFadeOutWithScreen(BOOL toggle) { return _i(0xB51B9AB9EF81868C, toggle); } // 0xb51b9ab9ef81868c0x75b06b5aB323 + inline BOOL HaveCreditsReachedEnd() { return _i(0x075F1D57402C93BA); } // 0x075f1d57402c93ba0x2569c9a7B323 + inline BOOL AreCreditsRunning() { return _i(0xD19C0826DC20CF1C); } // 0xd19c0826dc20cf1cB2802 + inline Void TerminateAllScriptsWithThisName(String scriptName) { return _i(0x9DC711BC69C548DF, scriptName); } // 0x9dc711bc69c548df0x9f861fd4B323 + inline Void NetworkSetScriptIsSafeForNetworkGame() { return _i(0x9243BAC96D64C050); } // 0x9243bac96d64c0500x878486ceB323 + // Returns the index of the newly created hospital spawn point. + // + // p3 might be radius? + inline int AddHospitalRestart(float x, float y, float z, float p3, Any p4) { return _i(0x1F464EF988465A81, x, y, z, p3, p4); } // 0x1f464ef988465a810x4f3e3104B323 + // The game by default has 5 hospital respawn points. Disabling them all will cause the player to respawn at the last position they were. + inline Void DisableHospitalRestart(int hospitalIndex, BOOL toggle) { return _i(0xC8535819C450EBA8, hospitalIndex, toggle); } // 0xc8535819c450eba80x09f49c72B323 + inline int AddPoliceRestart(float p0, float p1, float p2, float p3, Any p4) { return _i(0x452736765B31FC4B, p0, p1, p2, p3, p4); } // 0x452736765b31fc4b0xe96c29feB323 + // Disables the spawn point at the police house on the specified index. + // + // policeIndex: The police house index. + // toggle: true to enable the spawn point, false to disable. + // + // - Nacorpio + inline Void DisablePoliceRestart(int policeIndex, BOOL toggle) { return _i(0x23285DED6EBD7EA3, policeIndex, toggle); } // 0x23285ded6ebd7ea30x0a280324B323 + inline Void SetRestartCoordOverride(float x, float y, float z, float heading) { return _i(0x706B5EDCAA7FA663, x, y, z, heading); } // 0x706b5edcaa7fa663B323 + inline Void ClearRestartCoordOverride() { return _i(0xA2716D40842EAF79); } // 0xa2716d40842eaf79B323 + inline Void PauseDeathArrestRestart(BOOL toggle) { return _i(0x2C2B3493FBF51C71, toggle); } // 0x2c2b3493fbf51c710x296574aeB323 + inline Void IgnoreNextRestart(BOOL toggle) { return _i(0x21FFB63D8C615361, toggle); } // 0x21ffb63d8c6153610xda13a4b6B323 + // Sets whether the game should fade out after the player dies. + inline Void SetFadeOutAfterDeath(BOOL toggle) { return _i(0x4A18E01DF2C87B86, toggle); } // 0x4a18e01df2c87b860xc9f6f0bcB323 + // Sets whether the game should fade out after the player is arrested. + inline Void SetFadeOutAfterArrest(BOOL toggle) { return _i(0x1E0B4DC0D990A4E7, toggle); } // 0x1e0b4dc0d990a4e70xcb074b9dB323 + // Sets whether the game should fade in after the player dies or is arrested. + inline Void SetFadeInAfterDeathArrest(BOOL toggle) { return _i(0xDA66D2796BA33F12, toggle); } // 0xda66d2796ba33f120xacde6985B323 + inline Void SetFadeInAfterLoad(BOOL toggle) { return _i(0xF3D78F59DFE18D79, toggle); } // 0xf3d78f59dfe18d790x6e00eb0bB323 + // returns savehouseHandle + inline int RegisterSaveHouse(float x, float y, float z, float p3, String p4, Any p5, Any p6) { return _i(0xC0714D0A7EEECA54, x, y, z, p3, p4, p5, p6); } // 0xc0714d0a7eeeca540x39c1849aB323 + inline Void SetSaveHouse(int savehouseHandle, BOOL p1, BOOL p2) { return _i(0x4F548CABEAE553BC, savehouseHandle, p1, p2); } // 0x4f548cabeae553bc0xc3240bb4B323 + inline BOOL OverrideSaveHouse(BOOL p0, float p1, float p2, float p3, float p4, BOOL p5, float p6, float p7) { return _i(0x1162EA8AE9D24EEA, p0, p1, p2, p3, p4, p5, p6, p7); } // 0x1162ea8ae9d24eea0x47436c12B323 + inline BOOL GetSaveHouseDetailsAfterSuccessfulLoad(Vector3* p0, float* p1, BOOL* fadeInAfterLoad, BOOL* p3) { return _i(0xA4A0065E39C9F25C, p0, p1, fadeInAfterLoad, p3); } // 0xa4a0065e39c9f25c0xc4d71ab4B323 + inline Void DoAutoSave() { return _i(0x50EEAAD86232EE55); } // 0x50eeaad86232ee550x54c44b1aB323 + // Returns true if profile setting 208 is equal to 0. + inline BOOL GetIsAutoSaveOff() { return _i(0x6E04F06094C87047); } // 0x6e04f06094c870470xa8546914B323 + inline BOOL IsAutoSaveInProgress() { return _i(0x69240733738C19A0); } // 0x69240733738c19a00x36f75399B323 + inline BOOL HasCodeRequestedAutosave() { return _i(0x2107A3773771186D); } // 0x2107a3773771186d0x78350773B323 + inline Void ClearCodeRequestedAutosave() { return _i(0x06462A961E94B67C); } // 0x06462a961e94b67c0x5a45b11aB323 + inline Void BeginReplayStats(Any p0, Any p1) { return _i(0xE0E500246FF73D66, p0, p1); } // 0xe0e500246ff73d660x17f4f44dB323 + inline Void AddReplayStatValue(Any value) { return _i(0x69FE6DC87BD2A5E9, value); } // 0x69fe6dc87bd2a5e90x81216ee0B323 + inline Void EndReplayStats() { return _i(0xA23E821FBDF8A5F2); } // 0xa23e821fbdf8a5f20xcb570185B323 + inline BOOL HaveReplayStatsBeenStored() { return _i(0xD642319C54AADEB6); } // 0xd642319c54aadeb60xc58250f1B323 + inline int GetReplayStatMissionId() { return _i(0x5B1F2E327B6B6FE1); } // 0x5b1f2e327b6b6fe10x50c39926B323 + inline int GetReplayStatMissionType() { return _i(0x2B626A0150E4D449); } // 0x2b626a0150e4d4490x710e5d1eB323 + inline int GetReplayStatCount() { return _i(0xDC9274A7EF6B2867); } // 0xdc9274a7ef6b28670xc7bd1af0B323 + inline int GetReplayStatAtIndex(int index) { return _i(0x8098C8D6597AAE18, index); } // 0x8098c8d6597aae180x22be2423B323 + inline Void ClearReplayStats() { return _i(0x1B1AB132A16FDA55); } // 0x1b1ab132a16fda550xc47dff02B323 + inline BOOL QueueMissionRepeatLoad() { return _i(0x72DE52178C291CB5); } // 0x72de52178c291cb50xf62b3c48B323 + // Shows the screen which is visible before you redo a mission? The game will make a restoration point where you will cameback when the mission is over. + // Returns 1 if the message isn't currently on screen + inline BOOL QueueMissionRepeatSave() { return _i(0x44A0BDC559B35F6E); } // 0x44a0bdc559b35f6e0x3589452bB323 + inline BOOL QueueMissionRepeatSaveForBenchmarkTest() { return _i(0xEB2104E905C6F2E9); } // 0xeb2104e905c6f2e9B323 + inline int GetStatusOfMissionRepeatSave() { return _i(0x2B5E102E4A42F2BF); } // 0x2b5e102e4a42f2bf0x144aaf22B323 + inline BOOL IsMemoryCardInUse() { return _i(0x8A75CE2956274ADD); } // 0x8a75ce2956274add0x40ce4dfdB323 + inline Void ShootSingleBulletBetweenCoords(float x1, float y1, float z1, float x2, float y2, float z2, int damage, BOOL p7, Hash weaponHash, Ped ownerPed, BOOL isAudible, BOOL isInvisible, float speed) { return _i(0x867654CBC7606F2C, x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed); } // 0x867654cbc7606f2c0xcb7415acB323 + // entity - entity to ignore + inline Void ShootSingleBulletBetweenCoordsIgnoreEntity(float x1, float y1, float z1, float x2, float y2, float z2, int damage, BOOL p7, Hash weaponHash, Ped ownerPed, BOOL isAudible, BOOL isInvisible, float speed, Entity entity, Any p14) { return _i(0xE3A7742E0B7A2F8B, x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity, p14); } // 0xe3a7742e0b7a2f8b0x52accb7bB323 + // entity - entity to ignore + // targetEntity - entity to home in on, if the weapon hash provided supports homing + inline Void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, BOOL p7, Hash weaponHash, Ped ownerPed, BOOL isAudible, BOOL isInvisible, float speed, Entity entity, BOOL p14, BOOL p15, Entity targetEntity, BOOL p17, Any p18, Any p19, Any p20) { return _i(0xBFE5756E7407064A, x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity, p14, p15, targetEntity, p17, p18, p19, p20); } // 0xbfe5756e7407064a0xccdc33ccB323 + // Gets the dimensions of a model. + // + // Calculate (maximum - minimum) to get the size, in which case, Y will be how long the model is. + // + // Example from the scripts: MISC::GetModelDimensions(ENTITY::GetEntityModel(PLAYER::PlayerPedId()), &v_1A, &v_17); + inline Void GetModelDimensions(Hash modelHash, Vector3* minimum, Vector3* maximum) { return _i(0x03E8D3D5F549087A, modelHash, minimum, maximum); } // 0x03e8d3d5f549087a0x91abb8e0B323 + // Sets a visually fake wanted level on the user interface. Used by Rockstar's scripts to "override" regular wanted levels and make custom ones while the real wanted level and multipliers are still in effect. + // + // Max is 6, anything above this makes it just 6. Also the mini-map gets the red & blue flashing effect. + inline Void SetFakeWantedLevel(int fakeWantedLevel) { return _i(0x1454F2448DE30163, fakeWantedLevel); } // 0x1454f2448de301630x85b1c9faB323 + inline int GetFakeWantedLevel() { return _i(0x4C9296CBCD1B971E); } // 0x4c9296cbcd1b971e0x0022a430B323 + inline Void UsingMissionCreator(BOOL toggle) { return _i(0xF14878FC50BEC6EE, toggle); } // 0xf14878fc50bec6ee0x20ab0b6bB323 + inline Void AllowMissionCreatorWarp(BOOL toggle) { return _i(0xDEA36202FC3382DF, toggle); } // 0xdea36202fc3382df0x082ba6f2B323 + inline Void SetMinigameInProgress(BOOL toggle) { return _i(0x19E00D7322C6F85B, toggle); } // 0x19e00d7322c6f85b0x348b9046B323 + inline BOOL IsMinigameInProgress() { return _i(0x2B4A15E44DE0F478); } // 0x2b4a15e44de0f4780x53a95e13B323 + inline BOOL IsThisAMinigameScript() { return _i(0x7B30F65D7B710098); } // 0x7b30f65d7b7100980x7605ef6fB323 + // This function is hard-coded to always return 0. + inline BOOL IsSniperInverted() { return _i(0x61A23B7EDA9BDA24); } // 0x61a23b7eda9bda240x5c3bf51bB323 + // Returns true if the game is using the metric measurement system (profile setting 227), false if imperial is used. + inline BOOL ShouldUseMetricMeasurements() { return _i(0xD3D15555431AB793); } // 0xd3d15555431ab7930xbaf17315B323 + inline int GetProfileSetting(int profileSetting) { return _i(0xC488FF2356EA7791, profileSetting); } // 0xc488ff2356ea77910xd374bebcB323 + inline BOOL AreStringsEqual(String string1, String string2) { return _i(0x0C515FAB3FF9EA92, string1, string2); } // 0x0c515fab3ff9ea920x877c0bc5B323 + // Compares two strings up to a specified number of characters. + // + // Parameters: + // str1 - String to be compared. + // str2 - String to be compared. + // matchCase - Comparison will be case-sensitive. + // maxLength - Maximum number of characters to compare. A value of -1 indicates an infinite length. + // + // Returns: + // A value indicating the relationship between the strings: + // <0 - The first non-matching character in 'str1' is less than the one in 'str2'. (e.g. 'A' < 'B', so result = -1) + // 0 - The contents of both strings are equal. + // >0 - The first non-matching character in 'str1' is less than the one in 'str2'. (e.g. 'B' > 'A', so result = 1) + // + // Examples: + // MISC::CompareStrings("STRING", "string", false, -1); // 0; equal + // MISC::CompareStrings("TESTING", "test", false, 4); // 0; equal + // MISC::CompareStrings("R2D2", "R2xx", false, 2); // 0; equal + // MISC::CompareStrings("foo", "bar", false, -1); // 4; 'f' > 'b' + // MISC::CompareStrings("A", "A", true, 1); // 0; equal + // + // When comparing case-sensitive strings, lower-case characters are greater than upper-case characters: + // MISC::CompareStrings("A", "a", true, 1); // -1; 'A' < 'a' + // MISC::CompareStrings("a", "A", true, 1); // 1; 'a' > 'A' + inline int CompareStrings(String str1, String str2, BOOL matchCase, int maxLength) { return _i(0x1E34710ECD4AB0EB, str1, str2, matchCase, maxLength); } // 0x1e34710ecd4ab0eb0xfe25a58fB323 + inline int Absi(int value) { return _i(0xF0D31AD191A74F87, value); } // 0xf0d31ad191a74f870xb44677c5B323 + inline float Absf(float value) { return _i(0x73D57CFFDD12C355, value); } // 0x73d57cffdd12c3550xaf6f6e0bB323 + // Determines whether there is a sniper bullet within the specified coordinates. The coordinates form an axis-aligned bounding box. + inline BOOL IsSniperBulletInArea(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0xFEFCF11B01287125, x1, y1, z1, x2, y2, z2); } // 0xfefcf11b012871250x0483715cB323 + // Determines whether there is a projectile within the specified coordinates. The coordinates form a rectangle. + // + // - Nacorpio + // + // + // ownedByPlayer = only projectiles fired by the player will be detected. + inline BOOL IsProjectileInArea(float x1, float y1, float z1, float x2, float y2, float z2, BOOL ownedByPlayer) { return _i(0x5270A8FBC098C3F8, x1, y1, z1, x2, y2, z2, ownedByPlayer); } // 0x5270a8fbc098c3f80x78e1a557B323 + // Determines whether there is a projectile of a specific type within the specified coordinates. The coordinates form a axis-aligned bounding box. + inline BOOL IsProjectileTypeInArea(float x1, float y1, float z1, float x2, float y2, float z2, int type, BOOL ownedByPlayer) { return _i(0x2E0DC353342C4A6D, x1, y1, z1, x2, y2, z2, type, ownedByPlayer); } // 0x2e0dc353342c4a6d0x2b73bcf6B323 + // See IsPointInAngledArea for the definition of an angled area. + inline BOOL IsProjectileTypeInAngledArea(float x1, float y1, float z1, float x2, float y2, float z2, float width, Any p7, BOOL ownedByPlayer) { return _i(0xF0BC12401061DEA0, x1, y1, z1, x2, y2, z2, width, p7, ownedByPlayer); } // 0xf0bc12401061dea00xd1ae2681B323 + inline BOOL IsProjectileTypeWithinDistance(float x, float y, float z, Hash projectileHash, float radius, BOOL ownedByPlayer) { return _i(0x34318593248C8FB2, x, y, z, projectileHash, radius, ownedByPlayer); } // 0x34318593248c8fb20xbe81f1e2B323 + inline BOOL GetCoordsOfProjectileTypeInArea(float x1, float y1, float z1, float x2, float y2, float z2, Hash projectileHash, Vector3* projectilePos, BOOL ownedByPlayer) { return _i(0x8D7A43EC6A5FEA45, x1, y1, z1, x2, y2, z2, projectileHash, projectilePos, ownedByPlayer); } // 0x8d7a43ec6a5fea450x1a40454bB323 + inline BOOL GetCoordsOfProjectileTypeInAngledArea(float vecAngledAreaPoint1X, float vecAngledAreaPoint1Y, float vecAngledAreaPoint1Z, float vecAngledAreaPoint2X, float vecAngledAreaPoint2Y, float vecAngledAreaPoint2Z, float distanceOfOppositeFace, Hash weaponType, Vector3* positionOut, BOOL bIsPlayer) { return _i(0x3DA8C28346B62CED, vecAngledAreaPoint1X, vecAngledAreaPoint1Y, vecAngledAreaPoint1Z, vecAngledAreaPoint2X, vecAngledAreaPoint2Y, vecAngledAreaPoint2Z, distanceOfOppositeFace, weaponType, positionOut, bIsPlayer); } // 0x3da8c28346b62cedB2802 + inline BOOL GetCoordsOfProjectileTypeWithinDistance(Ped ped, Hash weaponHash, float distance, Vector3* outCoords, BOOL p4) { return _i(0xDFB4138EEFED7B81, ped, weaponHash, distance, outCoords, p4); } // 0xdfb4138eefed7b810x6bde5ce4B323 + inline BOOL GetProjectileOfProjectileTypeWithinDistance(Ped ped, Hash weaponHash, float distance, Vector3* outCoords, Object* outProjectile, BOOL p5) { return _i(0x82FDE6A57EE4EE44, ped, weaponHash, distance, outCoords, outProjectile, p5); } // 0x82fde6a57ee4ee440x507bc6f7B323 + // For projectiles, see: IsProjectileTypeInAngledArea + // See IsPointInAngledArea for the definition of an angled area. + // Returns True if a bullet, as maintained by a pool within CWeaponManager, has been fired into the defined angled area. + inline BOOL IsBulletInAngledArea(float x1, float y1, float z1, float x2, float y2, float z2, float width, BOOL ownedByPlayer) { return _i(0x1A8B5F3C01E2B477, x1, y1, z1, x2, y2, z2, width, ownedByPlayer); } // 0x1a8b5f3c01e2b4770xe2db58f7B323 + inline BOOL IsBulletInArea(float x, float y, float z, float radius, BOOL ownedByPlayer) { return _i(0x3F2023999AD51C1F, x, y, z, radius, ownedByPlayer); } // 0x3f2023999ad51c1f0xb54f46caB323 + inline BOOL IsBulletInBox(float x1, float y1, float z1, float x2, float y2, float z2, BOOL ownedByPlayer) { return _i(0xDE0F6D7450D37351, x1, y1, z1, x2, y2, z2, ownedByPlayer); } // 0xde0f6d7450d373510xab73ed26B323 + // p3 - possibly radius? + inline BOOL HasBulletImpactedInArea(float x, float y, float z, float p3, BOOL p4, BOOL p5) { return _i(0x9870ACFB89A90995, x, y, z, p3, p4, p5); } // 0x9870acfb89a909950x902bc7d9B323 + inline BOOL HasBulletImpactedInBox(float p0, float p1, float p2, float p3, float p4, float p5, BOOL p6, BOOL p7) { return _i(0xDC8C5D7CFEAB8394, p0, p1, p2, p3, p4, p5, p6, p7); } // 0xdc8c5d7cfeab83940x2c2618ccB323 + // PS4 + inline BOOL IsOrbisVersion() { return _i(0xA72BC0B675B1519E); } // 0xa72bc0b675b1519e0x40282018B323 + // XBOX ONE + inline BOOL IsDurangoVersion() { return _i(0x4D982ADB1978442D); } // 0x4d982adb1978442d0x46fb06a5B323 + inline BOOL IsXbox360Version() { return _i(0xF6201B4DAF662A9D); } // 0xf6201b4daf662a9d0x24005cc8B323 + inline BOOL IsPs3Version() { return _i(0xCCA1072C29D096C2); } // 0xcca1072c29d096c20x4c0d5303B323 + inline BOOL IsPcVersion() { return _i(0x48AF36444B965238); } // 0x48af36444b9652380x4d5d9ee3B323 + inline BOOL IsSteamVersion() { return _i(0x0A27B2B6282F7169); } // 0x0a27b2b6282f7169B2545 + // Used to block some of the prostitute stuff due to laws in Australia. + inline BOOL IsAussieVersion() { return _i(0x9F1935CA1F724008); } // 0x9f1935ca1f7240080x944ba1dcB323 + inline BOOL IsJapaneseVersion() { return _i(0xB8C0BB75D8A77DB3); } // 0xb8c0bb75d8a77db3B2545 + inline BOOL IsXboxPlatform() { return _i(0x138679CA01E21F53); } // 0x138679ca01e21f53B2612 + // Xbox Series (Scarlett) version... + inline BOOL IsScarlettVersion() { return _i(0xC545AB1CF97ABB34); } // 0xc545ab1cf97abb34B2612 + inline BOOL IsScePlatform() { return _i(0xF911E695C1EB8518); } // 0xf911e695c1eb8518B2612 + // PS5 (Prospero) version... + inline BOOL IsProsperoVersion() { return _i(0x807ABE1AB65C24D2); } // 0x807abe1ab65c24d2B2612 + inline BOOL IsStringNull(String string) { return _i(0xF22B6C47C6EAB066, string); } // 0xf22b6c47c6eab0660x8e71e00fB323 + inline BOOL IsStringNullOrEmpty(String string) { return _i(0xCA042B6957743895, string); } // 0xca042b69577438950x42e9f2caB323 + // Returns false if it's a null or empty string or if the string is too long. outInteger will be set to -999 in that case. + // + // If all checks have passed successfully, the return value will be set to whatever strtol(string, 0i64, 10); returns. + inline BOOL StringToInt(String string, int* outInteger) { return _i(0x5A5F40FE637EB584, string, outInteger); } // 0x5a5f40fe637eb5840x590a8160B323 + inline Void SetBitsInRange(int* var, int rangeStart, int rangeEnd, int p3) { return _i(0x8EF07E15701D61ED, var, rangeStart, rangeEnd, p3); } // 0x8ef07e15701d61ed0x32094719B323 + inline int GetBitsInRange(int var, int rangeStart, int rangeEnd) { return _i(0x53158863FCC0893A, var, rangeStart, rangeEnd); } // 0x53158863fcc0893a0xca03a1e5B323 + // See description of `AddStuntJumpAngled` for detailed info. The only difference really is this one does not have the radius (or angle, not sure) floats parameters for entry and landing zones. + inline int AddStuntJump(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4, float camX, float camY, float camZ, int p15, int p16, int p17) { return _i(0x1A992DA297A4630C, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, camX, camY, camZ, p15, p16, p17); } // 0x1a992da297a4630c0xb630e5ffB323 + // Creates a new stunt jump. + // + // The radius1 and radius2 might actually not be a radius at all, but that's what it seems to me testing them in-game. But they may be 'angle' floats instead, considering this native is named ADD_STUNT_JUMP_**ANGLED**. + // + // Info about the specific 'parameter sections': + // + // + // **x1, y1, z1, x2, y2, z2 and radius1:** + // + // First coordinates are for the jump entry area, and the radius that will be checked around that area. So if you're not exactly within the coordinates, but you are within the outter radius limit then it will still register as entering the stunt jump. Note as mentioned above, the radius is just a guess, I'm not really sure about it's exact purpose. + // + // + // **x3, y3, z3, x4, y4, z4 and radius2:** + // + // Next part is the landing area, again starting with the left bottom (nearest to the stunt jump entry zone) coordinate, and the second one being the top right furthest away part of the landing area. Followed by another (most likely) radius float, this is usually slightly larger than the entry zone 'radius' float value, just because you have quite a lot of places where you can land (I'm guessing). + // + // + // **camX, camY and camZ:** + // + // The final coordinate in this native is the Camera position. Rotation and zoom/FOV is managed by the game itself, you just need to provide the camera location. + // + // + // **unk1, unk2 and unk3:** + // + // Not sure what these are for, but they're always `150, 0, 0` in decompiled scripts. + // + // Here is a list of almost all of the stunt jumps from GTA V (taken from decompiled scripts): https://pastebin.com/EW1jBPkY + inline int AddStuntJumpAngled(float x1, float y1, float z1, float x2, float y2, float z2, float radius1, float x3, float y3, float z3, float x4, float y4, float z4, float radius2, float camX, float camY, float camZ, int p17, int p18, int p19) { return _i(0xBBE5D803A5360CBF, x1, y1, z1, x2, y2, z2, radius1, x3, y3, z3, x4, y4, z4, radius2, camX, camY, camZ, p17, p18, p19); } // 0xbbe5d803a5360cbf0xb9b7e777B323 + // Toggles some stunt jump stuff. + inline Void ToggleShowOptionalStuntJumpCamera(BOOL toggle) { return _i(0xFB80AB299D2EE1BD, toggle); } // 0xfb80ab299d2ee1bdB757 + inline Void DeleteStuntJump(int p0) { return _i(0xDC518000E39DAE1F, p0); } // 0xdc518000e39dae1f0x840cb5daB323 + inline Void EnableStuntJumpSet(int p0) { return _i(0xE369A5783B866016, p0); } // 0xe369a5783b8660160x9d1e7785B323 + inline Void DisableStuntJumpSet(int p0) { return _i(0xA5272EBEDD4747F6, p0); } // 0xa5272ebedd4747f60x644c9fa4B323 + inline Void SetStuntJumpsCanTrigger(BOOL toggle) { return _i(0xD79185689F8FD5DF, toggle); } // 0xd79185689f8fd5df0x3c806a2dB323 + inline BOOL IsStuntJumpInProgress() { return _i(0x7A3F19700A4D0525); } // 0x7a3f19700a4d05250xf477d0b1B323 + inline BOOL IsStuntJumpMessageShowing() { return _i(0x2272B0A1343129F4); } // 0x2272b0a1343129f40x021636eeB323 + inline int GetNumSuccessfulStuntJumps() { return _i(0x996DD1E1E02F1008); } // 0x996dd1e1e02f10080x006f9ba2B323 + inline int GetTotalSuccessfulStuntJumps() { return _i(0x6856EC3D35C81EA4); } // 0x6856ec3d35c81ea40x495be324B323 + inline Void CancelStuntJump() { return _i(0xE6B7B0ACD4E4B75E); } // 0xe6b7b0acd4e4b75e0xf43d9821B323 + // Make sure to call this from the correct thread if you're using multiple threads because all other threads except the one which is calling SetGamePaused will be paused which means you will lose control and the game remains in paused mode until you exit GTA5.exe + inline Void SetGamePaused(BOOL toggle) { return _i(0x577D1284D6873711, toggle); } // 0x577d1284d68737110x8230ff6cB323 + inline Void SetThisScriptCanBePaused(BOOL toggle) { return _i(0xAA391C728106F7AF, toggle); } // 0xaa391c728106f7af0xa0c3ce29B323 + inline Void SetThisScriptCanRemoveBlipsCreatedByAnyScript(BOOL toggle) { return _i(0xB98236CAAECEF897, toggle); } // 0xb98236caaecef8970xd06f1720B323 + // This native appears on the cheat_controller script and tracks a combination of buttons, which may be used to toggle cheats in-game. Credits to ThreeSocks for the info. The hash contains the combination, while the "amount" represents the amount of buttons used in a combination. The following page can be used to make a button combination: gta5offset.com/ts/hash/ + // + // INT_SCORES_SCORTED was a hash collision + inline BOOL HasCheatWithHashBeenActivated(Hash hash, int amount) { return _i(0x071E2A839DE82D90, hash, amount); } // 0x071e2a839de82d900xff6191e1B323 + // Get inputted "Cheat code", for example: + // + // while (TRUE) + // { + // if (MISC::HasPcCheatWithHashBeenActivated(${fugitive})) + // { + // // Do something. + // } + // SYSTEM::Wait(0); + // } + // + // Calling this will also set the last saved string hash to zero. + // + inline BOOL HasPcCheatWithHashBeenActivated(Hash hash) { return _i(0x557E43C447E700A8, hash); } // 0x557e43c447e700a8B323 + inline Void OverrideFreezeFlags(BOOL p0) { return _i(0xFA3FFB0EEBC288A3, p0); } // 0xfa3ffb0eebc288a3B2060 + // Formerly known as _LOWER_MAP_PROP_DENSITY and wrongly due to idiots as _ENABLE_MP_DLC_MAPS. + // Sets the maximum prop density and changes a loading screen flag from 'loading story mode' to 'loading GTA Online'. Does not touch DLC map data at all. + // + // In fact, I doubt this changes the flag whatsoever, that's the OTHER native idiots use together with this that does so, this one only causes a loading screen to show as it reloads map data. + inline Void SetInstancePriorityMode(int p0) { return _i(0x9BAE5AD2508DF078, p0); } // 0x9bae5ad2508df0780x721b2492B323 + // Sets an unknown flag used by CScene in determining which entities from CMapData scene nodes to draw, similar to SetInstancePriorityMode. + inline Void SetInstancePriorityHint(int flag) { return _i(0xC5F0A8EBD3F361CE, flag); } // 0xc5f0a8ebd3f361ce0xe202879dB323 + // This function is hard-coded to always return 0. + inline BOOL IsFrontendFading() { return _i(0x7EA2B6AF97ECA6ED); } // 0x7ea2b6af97eca6ed0x8ff6232cB323 + // spawns a few distant/out-of-sight peds, vehicles, animals etc each time it is called + inline Void PopulateNow() { return _i(0x7472BB270D7B4F3E); } // 0x7472bb270d7b4f3e0x72c20700B323 + inline int GetIndexOfCurrentLevel() { return _i(0xCBAD6729F7B1F4FC); } // 0xcbad6729f7b1f4fc0x6f203c6eB323 + // level can be from 0 to 3 + // 0: 9.8 - normal + // 1: 2.4 - low + // 2: 0.1 - very low + // 3: 0.0 - off + inline Void SetGravityLevel(int level) { return _i(0x740E14FAD5842351, level); } // 0x740e14fad58423510x2d833f4aB323 + inline Void StartSaveData(Any* p0, Any p1, BOOL p2) { return _i(0xA9575F812C6A7997, p0, p1, p2); } // 0xa9575f812c6a79970x881a694dB323 + inline Void StopSaveData() { return _i(0x74E20C9145FB66FD); } // 0x74e20c9145fb66fd0x3b1c07c8B323 + inline int GetSizeOfSaveData(BOOL p0) { return _i(0xA09F896CE912481F, p0); } // 0xa09f896ce912481f0x9ef0bc64B323 + inline Void RegisterIntToSave(Any* p0, String name) { return _i(0x34C9EE5986258415, p0, name); } // 0x34c9ee59862584150xb930956fB323 + inline Void RegisterInt64ToSave(Any* p0, String name) { return _i(0xA735353C77334EA0, p0, name); } // 0xa735353c77334ea0B323 + inline Void RegisterEnumToSave(Any* p0, String name) { return _i(0x10C2FA78D0E128A1, p0, name); } // 0x10c2fa78d0e128a10x9b38374aB323 + inline Void RegisterFloatToSave(Any* p0, String name) { return _i(0x7CAEC29ECB5DFEBB, p0, name); } // 0x7caec29ecb5dfebb0xdb06f7adB323 + inline Void RegisterBoolToSave(Any* p0, String name) { return _i(0xC8F4131414C835A1, p0, name); } // 0xc8f4131414c835a10x5417e0e0B323 + inline Void RegisterTextLabelToSave(Any* p0, String name) { return _i(0xEDB1232C5BEAE62F, p0, name); } // 0xedb1232c5beae62f0x284352c4B323 + // MISC::RegisterTextLabel15ToSave(&a_0._f1, "tlPlateText"); + // MISC::RegisterTextLabel15ToSave(&a_0._f1C, "tlPlateText_pending"); + // MISC::RegisterTextLabel15ToSave(&a_0._f10B, "tlCarAppPlateText"); + inline Void RegisterTextLabel15ToSave(Any* p0, String name) { return _i(0x6F7794F28C6B2535, p0, name); } // 0x6f7794f28c6b25350xe2089749B323 + // Only found 3 times in decompiled scripts. + // + // MISC::RegisterTextLabel23ToSave(a_0, "Movie_Name_For_This_Player"); + // MISC::RegisterTextLabel23ToSave(&a_0._fB, "Ringtone_For_This_Player"); + // MISC::RegisterTextLabel23ToSave(&a_0._f1EC4._f12[v_A/*6*/], &v_13); // where v_13 is "MPATMLOGSCRS0" thru "MPATMLOGSCRS15" + inline Void RegisterTextLabel23ToSave(Any* p0, String name) { return _i(0x48F069265A0E4BEC, p0, name); } // 0x48f069265a0e4bec0xf91b8c33B323 + // Only found 2 times in decompiled scripts. + // + // MISC::RegisterTextLabel31ToSave(&a_0._f1F5A._f6[0/*8*/], "TEMPSTAT_LABEL"); // gets saved in a struct called "g_SaveData_STRING_ScriptSaves" + // MISC::RegisterTextLabel31ToSave(&a_0._f4B4[v_1A/*8*/], &v_5); // where v_5 is "Name0" thru "Name9", gets saved in a struct called "OUTFIT_Name" + inline Void RegisterTextLabel31ToSave(Any* p0, String name) { return _i(0x8269816F6CFD40F8, p0, name); } // 0x8269816f6cfd40f80x74e8fad9B323 + // MISC::RegisterTextLabel63ToSave(a_0, "Thumb_label"); + // MISC::RegisterTextLabel63ToSave(&a_0._f10, "Photo_label"); + // MISC::RegisterTextLabel63ToSave(a_0, "GXTlabel"); + // MISC::RegisterTextLabel63ToSave(&a_0._f21, "StringComp"); + // MISC::RegisterTextLabel63ToSave(&a_0._f43, "SecondStringComp"); + // MISC::RegisterTextLabel63ToSave(&a_0._f53, "ThirdStringComp"); + // MISC::RegisterTextLabel63ToSave(&a_0._f32, "SenderStringComp"); + // MISC::RegisterTextLabel63ToSave(&a_0._f726[v_1A/*16*/], &v_20); // where v_20 is "LastJobTL_0_1" thru "LastJobTL_2_1", gets saved in a struct called "LAST_JobGamer_TL" + // MISC::RegisterTextLabel63ToSave(&a_0._f4B, "PAID_PLAYER"); + // MISC::RegisterTextLabel63ToSave(&a_0._f5B, "RADIO_STATION"); + inline Void RegisterTextLabel63ToSave(Any* p0, String name) { return _i(0xFAA457EF263E8763, p0, name); } // 0xfaa457ef263e87630x6b4335ddB323 + inline Void StartSaveStructWithSize(Any* p0, int size, String structName) { return _i(0xBF737600CDDBEADD, p0, size, structName); } // 0xbf737600cddbeadd0xfb45728eB323 + inline Void StopSaveStruct() { return _i(0xEB1774DF12BB9F12); } // 0xeb1774df12bb9f120xc2624a28B323 + inline Void StartSaveArrayWithSize(Any* p0, int size, String arrayName) { return _i(0x60FE567DF1B1AF9D, p0, size, arrayName); } // 0x60fe567df1b1af9d0x893a342cB323 + inline Void StopSaveArray() { return _i(0x04456F95153C6BE4); } // 0x04456f95153c6be40x0cad8217B323 + inline Void CopyScriptStruct(Any* dst, Any* src, int size) { return _i(0x213AEB2B90CBA7AC, dst, src, size); } // 0x213aeb2b90cba7acB877 + // https://alloc8or.re/gta5/doc/enums/DispatchType.txt + inline Void EnableDispatchService(int dispatchService, BOOL toggle) { return _i(0xDC0F817884CDD856, dispatchService, toggle); } // 0xdc0f817884cdd8560x0b710a51B323 + inline Void BlockDispatchServiceResourceCreation(int dispatchService, BOOL toggle) { return _i(0x9B2BD3773123EA2F, dispatchService, toggle); } // 0x9b2bd3773123ea2f0xe0f0684fB323 + inline int GetNumberResourcesAllocatedToWantedLevel(int dispatchService) { return _i(0xEB4A0C2D56441717, dispatchService); } // 0xeb4a0c2d564417170x3ce5bf6bB323 + // As for the 'police' incident, it will call police cars to you, but unlike PedsInCavalcades & Merryweather they won't start shooting at you unless you shoot first or shoot at them. The top 2 however seem to cancel theirselves if there is noone dead around you or a fire. I only figured them out as I found out the 3rd param is definately the amountOfPeople and they called incident 3 in scripts with 4 people (which the firetruck has) and incident 5 with 2 people (which the ambulence has). The 4 param I cant say is radius, but for the pedsInCavalcades and Merryweather R* uses 0.0f and for the top 3 (Emergency Services) they use 3.0f. + // + // Side Note: It seems calling the pedsInCavalcades or Merryweather then removing it seems to break you from calling the EmergencyEvents and I also believe pedsInCavalcades. (The V cavalcades of course not IV). + // + // Side Note 2: I say it breaks as if you call this proper, + // if(CreateIncident) etc it will return false if you do as I said above. + // ===================================================== + inline BOOL CreateIncident(int dispatchService, float x, float y, float z, int numUnits, float radius, int* outIncidentID, Any p7, Any p8) { return _i(0x3F892CAF67444AE7, dispatchService, x, y, z, numUnits, radius, outIncidentID, p7, p8); } // 0x3f892caf67444ae70xfc5ff7b3B323 + // As for the 'police' incident, it will call police cars to you, but unlike PedsInCavalcades & Merryweather they won't start shooting at you unless you shoot first or shoot at them. The top 2 however seem to cancel theirselves if there is noone dead around you or a fire. I only figured them out as I found out the 3rd param is definately the amountOfPeople and they called incident 3 in scripts with 4 people (which the firetruck has) and incident 5 with 2 people (which the ambulence has). The 4 param I cant say is radius, but for the pedsInCavalcades and Merryweather R* uses 0.0f and for the top 3 (Emergency Services) they use 3.0f. + // + // Side Note: It seems calling the pedsInCavalcades or Merryweather then removing it seems to break you from calling the EmergencyEvents and I also believe pedsInCavalcades. (The V cavalcades of course not IV). + // + // Side Note 2: I say it breaks as if you call this proper, + // if(CreateIncident) etc it will return false if you do as I said above. + // ===================================================== + inline BOOL CreateIncidentWithEntity(int dispatchService, Ped ped, int numUnits, float radius, int* outIncidentID, Any p5, Any p6) { return _i(0x05983472F0494E60, dispatchService, ped, numUnits, radius, outIncidentID, p5, p6); } // 0x05983472f0494e600xbbc35b03B323 + // Delete an incident with a given id. + // + // ======================================================= + // Correction, I have change this to int, instead of int* + // as it doesn't use a pointer to the createdIncident. + // If you try it you will crash (or) freeze. + // ======================================================= + inline Void DeleteIncident(int incidentId) { return _i(0x556C1AA270D5A207, incidentId); } // 0x556c1aa270d5a2070x212bd0dcB323 + // ======================================================= + // Correction, I have change this to int, instead of int* + // as it doesn't use a pointer to the createdIncident. + // If you try it you will crash (or) freeze. + // ======================================================= + inline BOOL IsIncidentValid(int incidentId) { return _i(0xC8BC6461E629BEAA, incidentId); } // 0xc8bc6461e629beaa0x31fd0ba4B323 + inline Void SetIncidentRequestedUnits(int incidentId, int dispatchService, int numUnits) { return _i(0xB08B85D860E7BA3C, incidentId, dispatchService, numUnits); } // 0xb08b85d860e7ba3c0x0242d88eB323 + inline Void SetIdealSpawnDistanceForIncident(int incidentId, float p1) { return _i(0xD261BA3E7E998072, incidentId, p1); } // 0xd261ba3e7e9980720x1f38102eB323 + // Finds a position ahead of the player by predicting the players next actions. + // The positions match path finding node positions. + // When roads diverge, the position may rapidly change between two or more positions. This is due to the engine not being certain of which path the player will take. + inline BOOL FindSpawnPointInDirection(float posX, float posY, float posZ, float fwdVecX, float fwdVecY, float fwdVecZ, float distance, Vector3* spawnPoint) { return _i(0x6874E2190B0C1972, posX, posY, posZ, fwdVecX, fwdVecY, fwdVecZ, distance, spawnPoint); } // 0x6874e2190b0c19720x71aefd77B323 + inline int AddPopMultiplierArea(float x1, float y1, float z1, float x2, float y2, float z2, float p6, float p7, BOOL p8, BOOL p9) { return _i(0x67F6413D3220E18D, x1, y1, z1, x2, y2, z2, p6, p7, p8, p9); } // 0x67f6413d3220e18d0x42bf09b3B323 + inline BOOL DoesPopMultiplierAreaExist(int id) { return _i(0x1327E2FE9746BAEE, id); } // 0x1327e2fe9746baee0xe933b34aB323 + inline Void RemovePopMultiplierArea(int id, BOOL p1) { return _i(0xB129E447A2EDA4BF, id, p1); } // 0xb129e447a2eda4bf0xfbdbe374B323 + inline BOOL IsPopMultiplierAreaNetworked(int id) { return _i(0x1312F4B242609CE3, id); } // 0x1312f4b242609ce3B1290 + // This native is adding a zone, where you can change density settings. For example, you can add a zone on 0.0, 0.0, 0.0 with radius 900.0 and vehicleMultiplier 0.0, and you will not see any new population vehicle spawned in a radius of 900.0 from 0.0, 0.0, 0.0. Returns the id. You can have only 15 zones at the same time. You can remove zone using RemovePopMultiplierSphere + inline int AddPopMultiplierSphere(float x, float y, float z, float radius, float pedMultiplier, float vehicleMultiplier, BOOL p6, BOOL p7) { return _i(0x32C7A7E8C43A1F80, x, y, z, radius, pedMultiplier, vehicleMultiplier, p6, p7); } // 0x32c7a7e8c43a1f800xce4a3d20B323 + inline BOOL DoesPopMultiplierSphereExist(int id) { return _i(0x171BAFB3C60389F4, id); } // 0x171bafb3c60389f40xd2b7a5a0B791 + // Removes population multiplier sphere + inline Void RemovePopMultiplierSphere(int id, BOOL p1) { return _i(0xE6869BECDD8F2403, id, p1); } // 0xe6869becdd8f24030x92e7e4ebB323 + // Makes the ped jump around like they're in a tennis match + inline Void EnableTennisMode(Ped ped, BOOL toggle, BOOL p2) { return _i(0x28A04B411933F8A6, ped, toggle, p2); } // 0x28a04b411933f8a60x0bd3f9ecB323 + inline BOOL IsTennisMode(Ped ped) { return _i(0x5D5479D115290C3F, ped); } // 0x5d5479d115290c3f0x04a947baB323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline Void PlayTennisSwingAnim(Ped ped, String animDict, String animName, float p3, float p4, BOOL p5) { return _i(0xE266ED23311F24D4, ped, animDict, animName, p3, p4, p5); } // 0xe266ed23311f24d40xc20a7d2bB323 + inline BOOL GetTennisSwingAnimComplete(Ped ped) { return _i(0x17DF68D720AA77F8, ped); } // 0x17df68d720aa77f80x8501e727B323 + inline BOOL GetTennisSwingAnimCanBeInterrupted(Ped ped) { return _i(0x19BFED045C647C49, ped); } // 0x19bfed045c647c490x1a332d2dB323 + inline BOOL GetTennisSwingAnimSwung(Ped ped) { return _i(0xE95B0C7D5BA3B96B, ped); } // 0xe95b0c7d5ba3b96bB323 + inline Void PlayTennisDiveAnim(Ped ped, int p1, float p2, float p3, float p4, BOOL p5) { return _i(0x8FA9C42FC5D7C64B, ped, p1, p2, p3, p4, p5); } // 0x8fa9c42fc5d7c64b0x0c8865dfB323 + // From the scripts: + // + // MISC::SetTennisMoveNetworkSignalFloat(sub_aa49(a_0), "ForcedStopDirection", v_E); + // + // Related to tennis mode. + inline Void SetTennisMoveNetworkSignalFloat(Ped ped, String p1, float p2) { return _i(0x54F157E0336A3822, ped, p1, p2); } // 0x54f157e0336a38220x49f977a9B323 + inline Void ResetDispatchSpawnLocation() { return _i(0x5896F2BD5683A4E1); } // 0x5896f2bd5683a4e1B1868 + inline Void SetDispatchSpawnLocation(float x, float y, float z) { return _i(0xD10F442036302D50, x, y, z); } // 0xd10f442036302d500x6f009e33B323 + inline Void ResetDispatchIdealSpawnDistance() { return _i(0x77A84429DD9F0A15); } // 0x77a84429dd9f0a150xda65ecaaB323 + inline Void SetDispatchIdealSpawnDistance(float distance) { return _i(0x6FE601A64180D423, distance); } // 0x6fe601a64180d4230x6283be32B323 + inline Void ResetDispatchTimeBetweenSpawnAttempts(Any p0) { return _i(0xEB2DB0CAD13154B3, p0); } // 0xeb2db0cad13154b30x1479e85aB323 + inline Void SetDispatchTimeBetweenSpawnAttempts(Any p0, float p1) { return _i(0x44F7CBC1BEB3327D, p0, p1); } // 0x44f7cbc1beb3327d0xabadb709B323 + inline Void SetDispatchTimeBetweenSpawnAttemptsMultiplier(Any p0, float p1) { return _i(0x48838ED9937A15D1, p0, p1); } // 0x48838ed9937a15d10x1c996bcdB323 + // To remove, see: RemoveDispatchSpawnBlockingArea + // See IsPointInAngledArea for the definition of an angled area. + inline int AddDispatchSpawnAngledBlockingArea(float x1, float y1, float z1, float x2, float y2, float z2, float width) { return _i(0x918C7B2D2FF3928B, x1, y1, z1, x2, y2, z2, width); } // 0x918c7b2d2ff3928b0xf557baf9B323 + inline int AddDispatchSpawnSphereBlockingArea(float x1, float y1, float x2, float y2) { return _i(0x2D4259F1FEB81DA9, x1, y1, x2, y2); } // 0x2d4259f1feb81da9B323 + inline Void RemoveDispatchSpawnBlockingArea(int p0) { return _i(0x264AC28B01B353A5, p0); } // 0x264ac28b01b353a50xa8d2fb92B323 + inline Void ResetDispatchSpawnBlockingAreas() { return _i(0xAC7BFD5C1D83EA75); } // 0xac7bfd5c1d83ea750x9a17f835B323 + inline Void ResetWantedResponseNumPedsToSpawn() { return _i(0xD9F692D349249528); } // 0xd9f692d3492495280xe0c9307eB323 + inline Void SetWantedResponseNumPedsToSpawn(int p0, int p1) { return _i(0xE532EC1A63231B4F, p0, p1); } // 0xe532ec1a63231b4f0xa0d8c749B323 + inline Void AddTacticalNavMeshPoint(float x, float y, float z) { return _i(0xB8721407EE9C3FF6, x, y, z); } // 0xb8721407ee9c3ff60x24a4e0b2B323 + inline Void ClearTacticalNavMeshPoints() { return _i(0xB3CD58CCA6CDA852); } // 0xb3cd58cca6cda8520x66c3c59cB323 + // Activates (usused?) riot mode. All NPCs are being hostile to each other (including player). Also the game will give weapons (pistols, smgs) to random NPCs. + inline Void SetRiotModeEnabled(BOOL toggle) { return _i(0x2587A48BC88DFADF, toggle); } // 0x2587a48bc88dfadf0xd9660339B323 + inline Void DisplayOnscreenKeyboardWithLongerInitialString(int p0, String windowTitle, Any* p2, String defaultText, String defaultConcat1, String defaultConcat2, String defaultConcat3, String defaultConcat4, String defaultConcat5, String defaultConcat6, String defaultConcat7, int maxInputLength) { return _i(0xCA78CFA0366592FE, p0, windowTitle, p2, defaultText, defaultConcat1, defaultConcat2, defaultConcat3, defaultConcat4, defaultConcat5, defaultConcat6, defaultConcat7, maxInputLength); } // 0xca78cfa0366592fe0xd2688412B323 + // sfink: note, p0 is set to 6 for PC platform in at least 1 script, or to `unk::_get_ui_language_id() == 0` otherwise. + // + // NOTE: windowTitle uses text labels, and an invalid value will display nothing. + // + // www.gtaforums.com/topic/788343-vrel-script-hook-v/?p=1067380474 + // + // windowTitle's + // ----------------- + // CELL_EMAIL_BOD = "Enter your Eyefind message" + // CELL_EMAIL_BODE = "Message too long. Try again" + // CELL_EMAIL_BODF = "Forbidden message. Try again" + // CELL_EMAIL_SOD = "Enter your Eyefind subject" + // CELL_EMAIL_SODE = "Subject too long. Try again" + // CELL_EMAIL_SODF = "Forbidden text. Try again" + // CELL_EMASH_BOD = "Enter your Eyefind message" + // CELL_EMASH_BODE = "Message too long. Try again" + // CELL_EMASH_BODF = "Forbidden message. Try again" + // CELL_EMASH_SOD = "Enter your Eyefind subject" + // CELL_EMASH_SODE = "Subject too long. Try again" + // CELL_EMASH_SODF = "Forbidden Text. Try again" + // FMMC_KEY_TIP10 = "Enter Synopsis" + // FMMC_KEY_TIP12 = "Enter Custom Team Name" + // FMMC_KEY_TIP12F = "Forbidden Text. Try again" + // FMMC_KEY_TIP12N = "Custom Team Name" + // FMMC_KEY_TIP8 = "Enter Message" + // FMMC_KEY_TIP8F = "Forbidden Text. Try again" + // FMMC_KEY_TIP8FS = "Invalid Message. Try again" + // FMMC_KEY_TIP8S = "Enter Message" + // FMMC_KEY_TIP9 = "Enter Outfit Name" + // FMMC_KEY_TIP9F = "Invalid Outfit Name. Try again" + // FMMC_KEY_TIP9N = "Outfit Name" + // PM_NAME_CHALL = "Enter Challenge Name" + inline Void DisplayOnscreenKeyboard(int p0, String windowTitle, String p2, String defaultText, String defaultConcat1, String defaultConcat2, String defaultConcat3, int maxInputLength) { return _i(0x00DC833F2568DBF6, p0, windowTitle, p2, defaultText, defaultConcat1, defaultConcat2, defaultConcat3, maxInputLength); } // 0x00dc833f2568dbf60xad99f2ceB323 + // Returns the current status of the onscreen keyboard, and updates the output. + // + // Status Codes: + // + // -1: Keyboard isn't active + // 0: User still editing + // 1: User has finished editing + // 2: User has canceled editing + inline int UpdateOnscreenKeyboard() { return _i(0x0CF2B696BBF945AE); } // 0x0cf2b696bbf945ae0x23d0a1ceB323 + // Returns NULL unless UpdateOnscreenKeyboard() returns 1 in the same tick. + inline String GetOnscreenKeyboardResult() { return _i(0x8362B09B91893647); } // 0x8362b09b918936470x44828fb3B323 + // DO NOT use this as it doesn't clean up the text input box properly and your script will get stuck in the UpdateOnscreenKeyboard() loop. + // Use ForceCloseTextInputBox instead. + inline Void CancelOnscreenKeyboard() { return _i(0x58A39BE597CE99CD); } // 0x58a39be597ce99cdB757 + // p0 was always 2 in R* scripts. + // Called before calling DisplayOnscreenKeyboard if the input needs to be saved. + inline Void NextOnscreenKeyboardResultWillDisplayUsingTheseFonts(int p0) { return _i(0x3ED1438C1F5C6612, p0); } // 0x3ed1438c1f5c66120x3301ea47B323 + // Appears to remove stealth kill action from memory + inline Void ActionManagerEnableAction(Hash hash, BOOL enable) { return _i(0xA6A12939F16D85BE, hash, enable); } // 0xa6a12939f16d85be0x42b484edB323 + // GetGameTimer() / 1000 + inline int GetRealWorldTime() { return _i(0x3F60413F5DF65748); } // 0x3f60413f5df65748B2612 + inline Void SupressRandomEventThisFrame(int eventType, BOOL suppress) { return _i(0x1EAE0A6E978894A2, eventType, suppress); } // 0x1eae0a6e978894a20x8f60366eB323 + inline Void SetExplosiveAmmoThisFrame(Player player) { return _i(0xA66C71C98D5F2CFB, player); } // 0xa66c71c98d5f2cfb0x2eafa1d1B323 + inline Void SetFireAmmoThisFrame(Player player) { return _i(0x11879CDD803D30F4, player); } // 0x11879cdd803d30f40x7c18fc8aB323 + inline Void SetExplosiveMeleeThisFrame(Player player) { return _i(0xFF1BED81BFDC0FE0, player); } // 0xff1bed81bfdc0fe00x96663d56B323 + inline Void SetSuperJumpThisFrame(Player player) { return _i(0x57FFF03E423A4C0B, player); } // 0x57fff03e423a4c0b0x86745ef3B323 + inline Void SetBeastJumpThisFrame(Player player) { return _i(0x438822C279B73B93, player); } // 0x438822c279b73b93B573 + inline Void SetForcedJumpThisFrame(Player player) { return _i(0xA1183BCFEE0F93D1, player); } // 0xa1183bcfee0f93d1B1180 + inline BOOL HasGameInstalledThisSession() { return _i(0x6FDDF453C0C756EC); } // 0x6fddf453c0c756ec0xc3c10fccB323 + inline Void SetTickerJohnmarstonIsDone() { return _i(0xFB00CA71DA386228); } // 0xfb00ca71da3862280x054ec103B323 + inline BOOL AreProfileSettingsValid() { return _i(0x5AA3BEFA29F03AD4); } // 0x5aa3befa29f03ad40x46b5a15cB323 + inline Void PreventArrestStateThisFrame() { return _i(0xE3D969D2785FFB5E); } // 0xe3d969d2785ffb5eB323 + // Sets the localplayer playerinfo state back to playing (State 0) + // + // States are: + // -1: "Invalid" + // 0: "Playing" + // 1: "Died" + // 2: "Arrested" + // 3: "Failed Mission" + // 4: "Left Game" + // 5: "Respawn" + // 6: "In MP Cutscene" + inline Void ForceGameStatePlaying() { return _i(0xC0AA53F866B3134D); } // 0xc0aa53f866b3134d0x5d209f25B323 + inline Void ScriptRaceInit(int p0, int p1, Any p2, Any p3) { return _i(0x0A60017F841A54F2, p0, p1, p2, p3); } // 0x0a60017f841a54f20x2d33f15aB323 + inline Void ScriptRaceShutdown() { return _i(0x1FF6BF9A63E5757F); } // 0x1ff6bf9a63e5757f0xdf99925cB323 + inline Void ScriptRacePlayerHitCheckpoint(Player player, Any p1, Any p2, Any p3) { return _i(0x1BB299305C3E8C13, player, p1, p2, p3); } // 0x1bb299305c3e8c130xa27f4472B323 + inline BOOL ScriptRaceGetPlayerSplitTime(Player player, int* p1, int* p2) { return _i(0x8EF5573A1F801A5C, player, p1, p2); } // 0x8ef5573a1f801a5c0x07ff553fB323 + inline Void StartEndUserBenchmark() { return _i(0x92790862E36C2ADA); } // 0x92790862e36c2adaB323 + inline Void StopEndUserBenchmark() { return _i(0xC7DB36C24634F52B); } // 0xc7db36c24634f52bB323 + inline Void ResetEndUserBenchmark() { return _i(0x437138B6A830166A); } // 0x437138b6a830166aB323 + // Saves the benchmark recording to %USERPROFILE%\Documents\Rockstar Games\GTA V\Benchmarks and submits some metrics. + inline Void SaveEndUserBenchmark() { return _i(0x37DEB0AA183FB6D8); } // 0x37deb0aa183fb6d8B323 + // Returns true if the current frontend menu is FE_MENU_VERSION_SP_PAUSE + inline BOOL UiStartedEndUserBenchmark() { return _i(0xEA2F2061875EED90); } // 0xea2f2061875eed90B323 + // Returns true if the current frontend menu is FE_MENU_VERSION_LANDING_MENU + inline BOOL LandingScreenStartedEndUserBenchmark() { return _i(0x3BBBD13E5041A79E); } // 0x3bbbd13e5041a79eB323 + // Returns true if command line option '-benchmark' is set. + inline BOOL IsCommandlineEndUserBenchmark() { return _i(0xA049A5BE0F04F2F8); } // 0xa049a5be0f04f2f8B323 + // Returns value of the '-benchmarkIterations' command line option. + inline int GetBenchmarkIterations() { return _i(0x4750FC27570311EC); } // 0x4750fc27570311ecB323 + // Returns value of the '-benchmarkPass' command line option. + inline int GetBenchmarkPass() { return _i(0x1B2366C3F2A5C8DF); } // 0x1b2366c3f2a5c8dfB323 + // In singleplayer it does exactly what the name implies. In FiveM / GTA:Online it shows `Disconnecting from GTA Online` HUD and then quits the game. + inline Void RestartGame() { return _i(0xE574A662ACAEFBB1); } // 0xe574a662acaefbb1B372 + // Exits the game and downloads a fresh social club update on next restart. + inline Void QuitGame() { return _i(0xEB6891F03362FB12); } // 0xeb6891f03362fb12B323 + // Hardcoded to always return true. + inline BOOL HasAsyncInstallFinished() { return _i(0x14832BF2ABA53FC5); } // 0x14832bf2aba53fc5B323 + inline Void CleanupAsyncInstall() { return _i(0xC79AE21974B01FB2); } // 0xc79ae21974b01fb2B323 + // aka "constrained" + inline BOOL PlmIsInConstrainedMode() { return _i(0x684A41975F077262); } // 0x684a41975f077262B323 + // Returns duration of how long the game has been in power-saving mode (aka "constrained") in milliseconds. + inline int PlmGetConstrainedDurationMs() { return _i(0xABB2FA71C83A1B72); } // 0xabb2fa71c83a1b72B323 + // If toggle is true, the ped's head is shown in the pause menu + // If toggle is false, the ped's head is not shown in the pause menu + inline Void SetPlayerIsInAnimalForm(BOOL toggle) { return _i(0x4EBB7E87AA0DBED4, toggle); } // 0x4ebb7e87aa0dbed4B323 + // Although we don't have a jenkins hash for this one, the name is 100% confirmed. + inline BOOL GetIsPlayerInAnimalForm() { return _i(0x9689123E3F213AA5); } // 0x9689123e3f213aa5B323 + inline Void SetPlayerIsRepeatingAMission(BOOL toggle) { return _i(0x9D8D44ADBBA61EF2, toggle); } // 0x9d8d44adbba61ef2B323 + // Does nothing (it's a nullsub). + inline Void DisableScreenDimmingThisFrame() { return _i(0x23227DF0B2115469); } // 0x23227df0b2115469B323 + inline float GetCityDensity() { return _i(0xD10282B6E3751BA0); } // 0xd10282b6e3751ba0B323 + inline Void UseActiveCameraForTimeslicingCentre() { return _i(0x693478ACBD7F18E7); } // 0x693478acbd7f18e7B1103 + inline Void SetContentIdIndex(Hash contentId, int index) { return _i(0x4B82FA6F2D624634, contentId, index); } // 0x4b82fa6f2d624634B2612 + inline int GetContentIdIndex(Hash contentId) { return _i(0xECF041186C5A94DC, contentId); } // 0xecf041186c5a94dcB2612 + inline Void SetContentPropType(Hash model, int type) { return _i(0xBA4583AF4C678A9B, model, type); } // 0xba4583af4c678a9bB3095 + // Returns prop type for given model hash + inline int GetContentPropType(Hash model) { return _i(0x8BAF8AD59F47AAFC, model); } // 0x8baf8ad59f47aafcB3095 } namespace MOBILE { - // Creates a mobile phone of the specified type. - // - // Possible phone types: - // - // 0 - Default phone / Michael's phone - // 1 - Trevor's phone - // 2 - Franklin's phone - // 3 - Unused police phone - // 4 - Prologue phone - // - // Higher values may crash your game. - inline Void CreateMobilePhone(int phoneType) { return _i(0xA4E8E696C532FBC7, phoneType); } // 0xa4e8e696c532fbc70x5bbc5e23B323 - // Destroys the currently active mobile phone. - inline Void DestroyMobilePhone() { return _i(0x3BC861DF703E5097); } // 0x3bc861df703e50970x1a65037bB323 - // The minimum/default is 500.0f. If you plan to make it bigger set it's position as well. Also this seems to need to be called in a loop as when you close the phone the scale is reset. If not in a loop you'd need to call it everytime before you re-open the phone. - inline Void SetMobilePhoneScale(float scale) { return _i(0xCBDD322A73D6D932, scale); } // 0xcbdd322a73d6d9320x09bcf1beB323 - // Last parameter is unknown and always zero. - inline Void SetMobilePhoneRotation(float rotX, float rotY, float rotZ, Any p3) { return _i(0xBB779C0CA917E865, rotX, rotY, rotZ, p3); } // 0xbb779c0ca917e8650x209c28cfB323 - inline Void GetMobilePhoneRotation(Vector3* rotation, Vehicle p1) { return _i(0x1CEFB61F193070AE, rotation, p1); } // 0x1cefb61f193070ae0x17a29f23B323 - inline Void SetMobilePhonePosition(float posX, float posY, float posZ) { return _i(0x693A5C6D6734085B, posX, posY, posZ); } // 0x693a5c6d6734085b0x841800b3B323 - inline Void GetMobilePhonePosition(Vector3* position) { return _i(0x584FDFDA48805B86, position); } // 0x584fdfda48805b860xb2e1e1a0B323 - // If bool Toggle = true so the mobile is hide to screen. - // If bool Toggle = false so the mobile is show to screen. - inline Void ScriptIsMovingMobilePhoneOffscreen(BOOL toggle) { return _i(0xF511F759238A5122, toggle); } // 0xf511f759238a51220x29828690B323 - // This one is weird and seems to return a TRUE state regardless of whether the phone is visible on screen or tucked away. - // - // - // I can confirm the above. This function is hard-coded to always return 1. - inline BOOL CanPhoneBeSeenOnScreen() { return _i(0xC4E2813898C97A4B); } // 0xc4e2813898c97a4b0x5f978584B323 - inline Void SetMobilePhoneDofState(BOOL toggle) { return _i(0x375A706A5C2FD084, toggle); } // 0x375a706a5c2fd084B372 - // For move the finger of player, the value of int goes 1 at 5. - inline Void CellSetInput(int direction) { return _i(0x95C9E72F3D7DEC9B, direction); } // 0x95c9e72f3d7dec9bB323 - // if the bool "Toggle" is "true" so the phone is lean. - // if the bool "Toggle" is "false" so the phone is not lean. - inline Void CellHorizontalModeToggle(BOOL toggle) { return _i(0x44E44169EF70138E, toggle); } // 0x44e44169ef70138eB323 - inline Void CellCamActivate(BOOL p0, BOOL p1) { return _i(0xFDE8F069C542D126, p0, p1); } // 0xfde8f069c542d1260x234c1ae9B323 - inline Void CellCamActivateSelfieMode(BOOL toggle) { return _i(0x015C49A93E3E086E, toggle); } // 0x015c49a93e3e086e0x4479b304B323 - inline Void CellCamActivateShallowDofMode(BOOL toggle) { return _i(0xA2CCBE62CD4C91A4, toggle); } // 0xa2ccbe62cd4c91a40xc273bb4dB323 - inline Void CellCamSetSelfieModeSideOffsetScaling(float p0) { return _i(0x1B0B4AEED5B9B41C, p0); } // 0x1b0b4aeed5b9b41cB323 - inline Void CellCamSetSelfieModeHorzPanOffset(float horizontalPan) { return _i(0x53F4892D18EC90A4, horizontalPan); } // 0x53f4892d18ec90a4B323 - inline Void CellCamSetSelfieModeVertPanOffset(float vertPan) { return _i(0x3117D84EFA60F77B, vertPan); } // 0x3117d84efa60f77bB323 - inline Void CellCamSetSelfieModeRollOffset(float roll) { return _i(0x15E69E2802C24B8D, roll); } // 0x15e69e2802c24b8dB323 - inline Void CellCamSetSelfieModeDistanceScaling(float distanceScaling) { return _i(0xAC2890471901861C, distanceScaling); } // 0xac2890471901861cB323 - inline Void CellCamSetSelfieModeHeadYawOffset(float yaw) { return _i(0xD6ADE981781FCA09, yaw); } // 0xd6ade981781fca09B323 - inline Void CellCamSetSelfieModeHeadRollOffset(float roll) { return _i(0xF1E22DC13F5EEBAD, roll); } // 0xf1e22dc13f5eebadB323 - inline Void CellCamSetSelfieModeHeadPitchOffset(float pitch) { return _i(0x466DA42C89865553, pitch); } // 0x466da42c89865553B323 - inline BOOL CellCamIsCharVisibleNoFaceCheck(Entity entity) { return _i(0x439E9BC95B7E7FBE, entity); } // 0x439e9bc95b7e7fbe0xbea88097B323 - inline Void GetMobilePhoneRenderId(int* renderId) { return _i(0xB4A53E05F68B6FA1, renderId); } // 0xb4a53e05f68b6fa10x88e4feceB323 + // Creates a mobile phone of the specified type. + // + // Possible phone types: + // + // 0 - Default phone / Michael's phone + // 1 - Trevor's phone + // 2 - Franklin's phone + // 3 - Unused police phone + // 4 - Prologue phone + // + // Higher values may crash your game. + inline Void CreateMobilePhone(int phoneType) { return _i(0xA4E8E696C532FBC7, phoneType); } // 0xa4e8e696c532fbc70x5bbc5e23B323 + // Destroys the currently active mobile phone. + inline Void DestroyMobilePhone() { return _i(0x3BC861DF703E5097); } // 0x3bc861df703e50970x1a65037bB323 + // The minimum/default is 500.0f. If you plan to make it bigger set it's position as well. Also this seems to need to be called in a loop as when you close the phone the scale is reset. If not in a loop you'd need to call it everytime before you re-open the phone. + inline Void SetMobilePhoneScale(float scale) { return _i(0xCBDD322A73D6D932, scale); } // 0xcbdd322a73d6d9320x09bcf1beB323 + // Last parameter is unknown and always zero. + inline Void SetMobilePhoneRotation(float rotX, float rotY, float rotZ, Any p3) { return _i(0xBB779C0CA917E865, rotX, rotY, rotZ, p3); } // 0xbb779c0ca917e8650x209c28cfB323 + inline Void GetMobilePhoneRotation(Vector3* rotation, Vehicle p1) { return _i(0x1CEFB61F193070AE, rotation, p1); } // 0x1cefb61f193070ae0x17a29f23B323 + inline Void SetMobilePhonePosition(float posX, float posY, float posZ) { return _i(0x693A5C6D6734085B, posX, posY, posZ); } // 0x693a5c6d6734085b0x841800b3B323 + inline Void GetMobilePhonePosition(Vector3* position) { return _i(0x584FDFDA48805B86, position); } // 0x584fdfda48805b860xb2e1e1a0B323 + // If BOOL Toggle = true so the mobile is hide to screen. + // If BOOL Toggle = false so the mobile is show to screen. + inline Void ScriptIsMovingMobilePhoneOffscreen(BOOL toggle) { return _i(0xF511F759238A5122, toggle); } // 0xf511f759238a51220x29828690B323 + // This one is weird and seems to return a TRUE state regardless of whether the phone is visible on screen or tucked away. + // + // + // I can confirm the above. This function is hard-coded to always return 1. + inline BOOL CanPhoneBeSeenOnScreen() { return _i(0xC4E2813898C97A4B); } // 0xc4e2813898c97a4b0x5f978584B323 + inline Void SetMobilePhoneDofState(BOOL toggle) { return _i(0x375A706A5C2FD084, toggle); } // 0x375a706a5c2fd084B372 + // For move the finger of player, the value of int goes 1 at 5. + inline Void CellSetInput(int direction) { return _i(0x95C9E72F3D7DEC9B, direction); } // 0x95c9e72f3d7dec9bB323 + // if the BOOL "Toggle" is "true" so the phone is lean. + // if the BOOL "Toggle" is "false" so the phone is not lean. + inline Void CellHorizontalModeToggle(BOOL toggle) { return _i(0x44E44169EF70138E, toggle); } // 0x44e44169ef70138eB323 + inline Void CellCamActivate(BOOL p0, BOOL p1) { return _i(0xFDE8F069C542D126, p0, p1); } // 0xfde8f069c542d1260x234c1ae9B323 + inline Void CellCamActivateSelfieMode(BOOL toggle) { return _i(0x015C49A93E3E086E, toggle); } // 0x015c49a93e3e086e0x4479b304B323 + inline Void CellCamActivateShallowDofMode(BOOL toggle) { return _i(0xA2CCBE62CD4C91A4, toggle); } // 0xa2ccbe62cd4c91a40xc273bb4dB323 + inline Void CellCamSetSelfieModeSideOffsetScaling(float p0) { return _i(0x1B0B4AEED5B9B41C, p0); } // 0x1b0b4aeed5b9b41cB323 + inline Void CellCamSetSelfieModeHorzPanOffset(float horizontalPan) { return _i(0x53F4892D18EC90A4, horizontalPan); } // 0x53f4892d18ec90a4B323 + inline Void CellCamSetSelfieModeVertPanOffset(float vertPan) { return _i(0x3117D84EFA60F77B, vertPan); } // 0x3117d84efa60f77bB323 + inline Void CellCamSetSelfieModeRollOffset(float roll) { return _i(0x15E69E2802C24B8D, roll); } // 0x15e69e2802c24b8dB323 + inline Void CellCamSetSelfieModeDistanceScaling(float distanceScaling) { return _i(0xAC2890471901861C, distanceScaling); } // 0xac2890471901861cB323 + inline Void CellCamSetSelfieModeHeadYawOffset(float yaw) { return _i(0xD6ADE981781FCA09, yaw); } // 0xd6ade981781fca09B323 + inline Void CellCamSetSelfieModeHeadRollOffset(float roll) { return _i(0xF1E22DC13F5EEBAD, roll); } // 0xf1e22dc13f5eebadB323 + inline Void CellCamSetSelfieModeHeadPitchOffset(float pitch) { return _i(0x466DA42C89865553, pitch); } // 0x466da42c89865553B323 + inline BOOL CellCamIsCharVisibleNoFaceCheck(Entity entity) { return _i(0x439E9BC95B7E7FBE, entity); } // 0x439e9bc95b7e7fbe0xbea88097B323 + inline Void GetMobilePhoneRenderId(int* renderId) { return _i(0xB4A53E05F68B6FA1, renderId); } // 0xb4a53e05f68b6fa10x88e4feceB323 } namespace MONEY { - inline Void NetworkInitializeCash(int wallet, int bank) { return _i(0x3DA5ECD1A56CBA6D, wallet, bank); } // 0x3da5ecd1a56cba6d0x66da9935B323 - // Note the 2nd parameters are always 1, 0. I have a feeling it deals with your money, wallet, bank. So when you delete the character it of course wipes the wallet cash at that time. So if that was the case, it would be eg, NetworkDeleteCharacter(characterIndex, deleteWalletCash, deleteBankCash); - inline Void NetworkDeleteCharacter(int characterSlot, BOOL p1, BOOL p2) { return _i(0x05A50AF38947EB8D, characterSlot, p1, p2); } // 0x05a50af38947eb8d0xa9f7e9c3B323 - inline Void NetworkManualDeleteCharacter(int characterSlot) { return _i(0x821418C727FCACD7, characterSlot); } // 0x821418c727fcacd7B791 - inline BOOL NetworkGetPlayerIsHighEarner() { return _i(0xFB2456B2040A6A67); } // 0xfb2456b2040a6a670x63f093a6B323 - inline Void NetworkClearCharacterWallet(int characterSlot) { return _i(0xA921DED15FDF28F5, characterSlot); } // 0xa921ded15fdf28f50x19f0c471B323 - inline Void NetworkGivePlayerJobshareCash(int amount, Any* gamerHandle) { return _i(0xFB18DF9CB95E0105, amount, gamerHandle); } // 0xfb18df9cb95e01050xc6047fdbB323 - inline Void NetworkReceivePlayerJobshareCash(int value, Any* gamerHandle) { return _i(0x56A3B51944C50598, value, gamerHandle); } // 0x56a3b51944c505980x4ed71c1aB323 - inline BOOL NetworkCanShareJobCash() { return _i(0x1C2473301B1C66BA); } // 0x1c2473301b1c66ba0xa27b9fe8B323 - // index - // ------- - // See function sub_1005 in am_boat_taxi.ysc - // - // context - // ---------- - // "BACKUP_VAGOS" - // "BACKUP_LOST" - // "BACKUP_FAMILIES" - // "HIRE_MUGGER" - // "HIRE_MERCENARY" - // "BUY_CARDROPOFF" - // "HELI_PICKUP" - // "BOAT_PICKUP" - // "CLEAR_WANTED" - // "HEAD_2_HEAD" - // "CHALLENGE" - // "SHARE_LAST_JOB" - // "DEFAULT" - // - // reason - // --------- - // "NOTREACHTARGET" - // "TARGET_ESCAPE" - // "DELIVERY_FAIL" - // "NOT_USED" - // "TEAM_QUIT" - // "SERVER_ERROR" - // "RECEIVE_LJ_L" - // "CHALLENGE_PLAYER_LEFT" - // "DEFAULT" - // - // unk - // ----- - // Unknown bool value - // - // - inline Void NetworkRefundCash(int index, String context, String reason, BOOL p3) { return _i(0xF9C812CD7C46E817, index, context, reason, p3); } // 0xf9c812cd7c46e8170x07c92f21B323 - inline Void NetworkDeductCash(int amount, String p1, String p2, BOOL p3, BOOL p4, BOOL p5) { return _i(0x18B7AE224B087E26, amount, p1, p2, p3, p4, p5); } // 0x18b7ae224b087e26B323 - inline BOOL NetworkMoneyCanBet(int amount, BOOL p1, BOOL p2) { return _i(0x81404F3DC124FE5B, amount, p1, p2); } // 0x81404f3dc124fe5b0x8474e6f0B323 - inline BOOL NetworkCanBet(int amount) { return _i(0x3A54E33660DED67F, amount); } // 0x3a54e33660ded67f0xe3802533B323 - // GTAO_CASINO_HOUSE - // GTAO_CASINO_INSIDETRACK - // GTAO_CASINO_LUCKYWHEEL - // GTAO_CASINO_BLACKJACK - // GTAO_CASINO_ROULETTE - // GTAO_CASINO_SLOTS - // GTAO_CASINO_PURCHASE_CHIPS - // - // NETWORK_C* - inline BOOL NetworkCasinoCanBet(Hash hash) { return _i(0x158C16F5E4CF41F8, hash); } // 0x158c16f5e4cf41f8B1734 - inline BOOL NetworkCasinoCanBetPvc() { return _i(0x394DCDB9E836B7A9); } // 0x394dcdb9e836b7a9B1734 - inline BOOL NetworkCasinoCanBetAmount(Any p0) { return _i(0xF62F6D9528358FE4, p0); } // 0xf62f6d9528358fe4B1734 - inline BOOL NetworkCasinoCanBuyChipsPvc() { return _i(0x8968D4D8C6C40C11); } // 0x8968d4d8c6c40c11B1734 - inline BOOL NetworkCasinoBuyChips(int p0, int p1) { return _i(0x3BD101471C7F9EEC, p0, p1); } // 0x3bd101471c7f9eecB1734 - inline BOOL NetworkCasinoSellChips(int p0, int p1) { return _i(0xED44897CB336F480, p0, p1); } // 0xed44897cb336f480B1734 - // Does nothing (it's a nullsub). - inline Void NetworkDeferCashTransactionsUntilShopSave() { return _i(0xCD0F5B5D932AE473); } // 0xcd0f5b5d932ae4730xc4cd928dB323 - inline BOOL CanPayAmountToBoss(int p0, int p1, int amount, int* p3) { return _i(0x9777734DAD16992F, p0, p1, amount, p3); } // 0x9777734dad16992fB573 - inline Void NetworkEarnFromPickup(int amount) { return _i(0xED1517D3AF17C698, amount); } // 0xed1517d3af17c6980x70a0ed62B323 - inline Void NetworkEarnFromCashingOut(int amount) { return _i(0x718FBBF67414FA36, amount); } // 0x718fbbf67414fa36B1290 - inline Void NetworkEarnFromGangattackPickup(int amount) { return _i(0xA03D4ACE0A3284CE, amount); } // 0xa03d4ace0a3284ce0x33c20bc4B323 - inline Void NetworkEarnAssassinateTargetKilled(int amount) { return _i(0xFA700D8A9905F78A, amount); } // 0xfa700d8a9905f78aB1604 - // For the money bags that drop a max of $40,000. Often called 40k bags. - // - // Most likely NETWORK_EARN_FROM_ROB*** - inline Void NetworkEarnFromRobArmoredCars(int amount) { return _i(0xF514621E8EA463D0, amount); } // 0xf514621e8ea463d00x30b3ec0aB323 - inline Void NetworkEarnFromCrateDrop(int amount) { return _i(0xB1CC1B9EC3007A2A, amount); } // 0xb1cc1b9ec3007a2a0xeaf04923B323 - inline Void NetworkEarnFromBetting(int amount, String p1) { return _i(0x827A5BA1A44ACA6D, amount, p1); } // 0x827a5ba1a44aca6d0xa0f7f07cB323 - inline Void NetworkEarnFromJob(int amount, String p1) { return _i(0xB2CC4836834E8A98, amount, p1); } // 0xb2cc4836834e8a980x0b6997fcB323 - inline Void NetworkEarnFromJobx2(int amount, String p1) { return _i(0xDEBBF584665411D0, amount, p1); } // 0xdebbf584665411d0B1734 - inline Void NetworkEarnFromPremiumJob(int amount, String p1) { return _i(0xC8407624CEF2354B, amount, p1); } // 0xc8407624cef2354bB791 - inline Void NetworkEarnFromBendJob(int amount, String heistHash) { return _i(0x61326EE6DF15B0CA, amount, heistHash); } // 0x61326ee6df15b0ca0xbb293400B323 - inline Void NetworkEarnFromChallengeWin(Any p0, Any* p1, BOOL p2) { return _i(0x2B171E6B2F64D8DF, p0, p1, p2); } // 0x2b171e6b2f64d8df0x2befb6c4B323 - inline Void NetworkEarnFromBounty(int amount, Any* gamerHandle, Any* p2, Any p3) { return _i(0x131BB5DA15453ACF, amount, gamerHandle, p2, p3); } // 0x131bb5da15453acf0x127f2daeB323 - inline Void NetworkEarnFromImportExport(int amount, Hash modelHash) { return _i(0xF92A014A634442D6, amount, modelHash); } // 0xf92a014a634442d60xf11fc458B323 - inline Void NetworkEarnFromHoldups(int amount) { return _i(0x45B8154E077D9E4D, amount); } // 0x45b8154e077d9e4d0xe6b90e9cB323 - inline Void NetworkEarnFromProperty(int amount, Hash propertyName) { return _i(0x849648349D77F5C5, amount, propertyName); } // 0x849648349d77f5c50x9be4f7e1B323 - // DSPORT - inline Void NetworkEarnFromAiTargetKill(Any p0, Any p1) { return _i(0x515B4A22E4D3C6D7, p0, p1); } // 0x515b4a22e4d3c6d70x866004a8B323 - inline Void NetworkEarnFromNotBadsport(int amount) { return _i(0x4337511FA8221D36, amount); } // 0x4337511fa8221d360xcc068380B323 - inline Void NetworkEarnFromVehicle(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7) { return _i(0xB539BD8A4C1EECF8, p0, p1, p2, p3, p4, p5, p6, p7); } // 0xb539bd8a4c1eecf80xf803589dB323 - inline Void NetworkEarnFromPersonalVehicle(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8) { return _i(0x3F4D00167E41E0AD, p0, p1, p2, p3, p4, p5, p6, p7, p8); } // 0x3f4d00167e41e0ad0x96b8bee8B323 - // type either Monthly,Weekly,Daily - inline Void NetworkEarnFromDailyObjectives(int amount, String type, int characterSlot) { return _i(0x6EA318C91C1A8786, amount, type, characterSlot); } // 0x6ea318c91c1a87860xab6bd72fB323 - // Example for p1: "AM_DISTRACT_COPS" - inline Void NetworkEarnFromAmbientJob(int p0, String p1, Any* p2) { return _i(0xFB6DB092FBAE29E6, p0, p1, p2); } // 0xfb6db092fbae29e60xa14cc95dB323 - inline Void NetworkEarnFromJobBonus(Any p0, Any* p1, Any* p2) { return _i(0x6816FB4416760775, p0, p1, p2); } // 0x6816fb44167607750xbee23713B323 - inline Void NetworkEarnFromCriminalMastermind(Any p0, Any p1, Any p2) { return _i(0xFA009A62990671D4, p0, p1, p2); } // 0xfa009a62990671d4B1290 - inline Void NetworkEarnHeistAward(Any p0, Any p1, Any p2) { return _i(0x9D4FDBB035229669, p0, p1, p2); } // 0x9d4fdbb035229669B1290 - inline Void NetworkEarnFirstTimeBonus(Any p0, Any p1, Any p2) { return _i(0x11B0A20C493F7E36, p0, p1, p2); } // 0x11b0a20c493f7e36B1290 - inline Void NetworkEarnGoon(Any p0, Any p1, Any p2) { return _i(0xCDA1C62BE2777802, p0, p1, p2); } // 0xcda1c62be2777802B573 - inline Void NetworkEarnBoss(Any p0, Any p1, Any p2) { return _i(0x08B0CA7A6AB3AC32, p0, p1, p2); } // 0x08b0ca7a6ab3ac32B573 - inline Void NetworkEarnAgency(Any p0, Any p1, Any p2, Any p3) { return _i(0x0CB1BE0633C024A8, p0, p1, p2, p3); } // 0x0cb1be0633c024a8B573 - inline Void NetworkEarnFromWarehouse(int amount, int id) { return _i(0x3E4ADAFF1830F146, amount, id); } // 0x3e4adaff1830f146B757 - inline Void NetworkEarnFromContraband(int amount, Any p1) { return _i(0xECA658CE2A4E5A72, amount, p1); } // 0xeca658ce2a4e5a72B757 - inline Void NetworkEarnFromDestroyingContraband(Any p0, Any p1, Any p2) { return _i(0x84C0116D012E8FC2, p0, p1, p2); } // 0x84c0116d012e8fc2B757 - inline Void NetworkEarnFromSmugglerWork(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0x6B7E4FB50D5F3D65, p0, p1, p2, p3, p4, p5); } // 0x6b7e4fb50d5f3d65B1180 - inline Void NetworkEarnFromHangarTrade(Any p0, Any p1) { return _i(0x31BA138F6304FB9F, p0, p1); } // 0x31ba138f6304fb9fB1180 - inline Void NetworkEarnPurchaseClubHouse(Any p0, Any p1) { return _i(0x55A1E095DB052FA5, p0, p1); } // 0x55a1e095db052fa5B877 - inline Void NetworkEarnFromBusinessProduct(int amount, Any p1, Any p2, Any p3) { return _i(0x8586789730B10CAF, amount, p1, p2, p3); } // 0x8586789730b10cafB877 - inline Void NetworkEarnFromVehicleExport(int amount, Any p1, Any p2) { return _i(0xEDEAD9A91EC768B3, amount, p1, p2); } // 0xedead9a91ec768b3B944 - inline Void NetworkEarnSmugglerAgency(int amount, Any p1, Any p2, Any p3) { return _i(0xDEE612F2D71B0308, amount, p1, p2, p3); } // 0xdee612f2d71b0308B1180 - inline Void NetworkEarnBountyHunterReward(Any p0) { return _i(0xF6B170F9A02E9E87, p0); } // 0xf6b170f9a02e9e87B1493 - inline Void NetworkEarnFromBusinessBattle(Any p0) { return _i(0x42FCE14F50F27291, p0); } // 0x42fce14f50f27291B1493 - inline Void NetworkEarnFromClubManagementParticipation(Any p0, int p1) { return _i(0xA75EAC69F59E96E7, p0, p1); } // 0xa75eac69f59e96e7B1493 - inline Void NetworkEarnFromFmbbPhonecallMission(Any p0) { return _i(0xC5156361F26E2212, p0); } // 0xc5156361f26e2212B1493 - inline Void NetworkEarnFromBusinessHubSell(Any p0, Any p1, Any p2) { return _i(0x0B39CF0D53F1C883, p0, p1, p2); } // 0x0b39cf0d53f1c883B1493 - inline Void NetworkEarnFromFmbbBossWork(Any p0) { return _i(0x1FDA0AA679C9919B, p0); } // 0x1fda0aa679c9919bB1493 - inline Void NetworkEarnFmbbWageBonus(Any p0) { return _i(0xFFFBA1B1F7C0B6F4, p0); } // 0xfffba1b1f7c0b6f4B1493 - inline BOOL NetworkCanSpendMoney(Any p0, BOOL p1, BOOL p2, BOOL p3, Any p4, Any p5) { return _i(0xAB3CAA6B422164DA, p0, p1, p2, p3, p4, p5); } // 0xab3caa6b422164da0x5aa379d9B323 - inline BOOL NetworkCanSpendMoney2(Any p0, BOOL p1, BOOL p2, BOOL p3, Any* p4, Any p5, Any p6) { return _i(0x7303E27CC6532080, p0, p1, p2, p3, p4, p5, p6); } // 0x7303e27cc6532080B323 - inline Void NetworkBuyItem(int amount, Hash item, Any p2, Any p3, BOOL p4, String item_name, Any p6, Any p7, Any p8, BOOL p9) { return _i(0xF0077C797F66A355, amount, item, p2, p3, p4, item_name, p6, p7, p8, p9); } // 0xf0077c797f66a3550xa07b6368B323 - inline Void NetworkSpentTaxi(int amount, BOOL p1, BOOL p2, Any p3, Any p4) { return _i(0x17C3A7D31EAE39F9, amount, p1, p2, p3, p4); } // 0x17c3a7d31eae39f90x1f3db3e3B323 - inline Void NetworkPayEmployeeWage(Any p0, BOOL p1, BOOL p2) { return _i(0x5FD5ED82CBBE9989, p0, p1, p2); } // 0x5fd5ed82cbbe99890xbe70849bB323 - inline Void NetworkPayMatchEntryFee(int amount, String matchId, BOOL p2, BOOL p3) { return _i(0x9346E14F2AF74D46, amount, matchId, p2, p3); } // 0x9346e14f2af74d460x224a3488B323 - inline Void NetworkSpentBetting(int amount, int p1, String matchId, BOOL p3, BOOL p4) { return _i(0x1C436FD11FFA692F, amount, p1, matchId, p3, p4); } // 0x1c436fd11ffa692f0xf8a07513B323 - inline Void NetworkSpentWager(Any p0, Any p1, int amount) { return _i(0xD99DB210089617FE, p0, p1, amount); } // 0xd99db210089617feB573 - inline Void NetworkSpentInStripclub(Any p0, BOOL p1, Any p2, BOOL p3) { return _i(0xEE99784E4467689C, p0, p1, p2, p3); } // 0xee99784e4467689c0x8957038eB323 - inline Void NetworkBuyHealthcare(int cost, BOOL p1, BOOL p2) { return _i(0xD9B067E55253E3DD, cost, p1, p2); } // 0xd9b067e55253e3dd0x832150e5B323 - // p1 = 0 (always) - // p2 = 1 (always) - inline Void NetworkBuyAirstrike(int cost, BOOL p1, BOOL p2, Any p3) { return _i(0x763B4BD305338F19, cost, p1, p2, p3); } // 0x763b4bd305338f190x40470683B323 - inline Void NetworkBuyBackupGang(int p0, int p1, BOOL p2, BOOL p3, int npcProvider) { return _i(0xA3EDDAA42411D3B9, p0, p1, p2, p3, npcProvider); } // 0xa3eddaa42411d3b90x2ad2ec51B323 - // p1 = 0 (always) - // p2 = 1 (always) - inline Void NetworkBuyHeliStrike(int cost, BOOL p1, BOOL p2, Any p3) { return _i(0x81AA4610E3FD3A69, cost, p1, p2, p3); } // 0x81aa4610e3fd3a690x047547d4B323 - inline Void NetworkSpentAmmoDrop(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0xB162DC95C0A3317B, p0, p1, p2, p3); } // 0xb162dc95c0a3317b0x4b643076B323 - // p1 is just an assumption. p2 was false and p3 was true. - inline Void NetworkBuyBounty(int amount, Player victim, BOOL p2, BOOL p3, Any p4) { return _i(0x7B718E197453F2D9, amount, victim, p2, p3, p4); } // 0x7b718e197453f2d90xcb89cbe0B323 - inline Void NetworkBuyProperty(int cost, Hash propertyName, BOOL p2, BOOL p3) { return _i(0x650A08A280870AF6, cost, propertyName, p2, p3); } // 0x650a08a280870af60x7d479aabB323 - inline Void NetworkBuySmokes(int p0, BOOL p1, BOOL p2) { return _i(0x75AF80E61248EEBD, p0, p1, p2); } // 0x75af80e61248eebd0xc0ab03ebB323 - inline Void NetworkSpentHeliPickup(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0x7BF1D73DB2ECA492, p0, p1, p2, p3); } // 0x7bf1d73db2eca4920x27eebcabB323 - inline Void NetworkSpentBoatPickup(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0x524EE43A37232C00, p0, p1, p2, p3); } // 0x524ee43a37232c000xb241cabdB323 - inline Void NetworkSpentBullShark(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0xA6DD8458CE24012C, p0, p1, p2, p3); } // 0xa6dd8458ce24012c0xde7d398cB323 - inline Void NetworkSpentCashDrop(int amount, BOOL p1, BOOL p2) { return _i(0x289016EC778D60E0, amount, p1, p2); } // 0x289016ec778d60e00x87bd1d11B323 - // Only used once in a script (am_contact_requests) - // p1 = 0 - // p2 = 1 - inline Void NetworkSpentHireMugger(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0xE404BFB981665BF0, p0, p1, p2, p3); } // 0xe404bfb981665bf00xe792c4a5B323 - inline Void NetworkSpentRobbedByMugger(int amount, BOOL p1, BOOL p2, Any p3) { return _i(0x995A65F15F581359, amount, p1, p2, p3); } // 0x995a65f15f5813590xe6aaa0d5B323 - inline Void NetworkSpentHireMercenary(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0xE7B80E2BF9D80BD6, p0, p1, p2, p3); } // 0xe7b80e2bf9d80bd60x99cf02c4B323 - inline Void NetworkSpentBuyWantedlevel(Any p0, Any* p1, BOOL p2, BOOL p3, Any p4) { return _i(0xE1B13771A843C4F6, p0, p1, p2, p3, p4); } // 0xe1b13771a843c4f60xe7cb4f95B323 - inline Void NetworkSpentBuyOfftheradar(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0xA628A745E2275C5D, p0, p1, p2, p3); } // 0xa628a745e2275c5d0x20ddcf2fB323 - inline Void NetworkSpentBuyRevealPlayers(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0x6E176F1B18BC0637, p0, p1, p2, p3); } // 0x6e176f1b18bc06370x2f7836e2B323 - inline Void NetworkSpentCarwash(Any p0, Any p1, Any p2, BOOL p3, BOOL p4) { return _i(0xEC03C719DB2F4306, p0, p1, p2, p3, p4); } // 0xec03c719db2f43060x8283e028B323 - inline Void NetworkSpentCinema(Any p0, Any p1, BOOL p2, BOOL p3) { return _i(0x6B38ECB05A63A685, p0, p1, p2, p3); } // 0x6b38ecb05a63a6850x1100caf5B323 - inline Void NetworkSpentTelescope(Any p0, BOOL p1, BOOL p2) { return _i(0x7FE61782AD94CC09, p0, p1, p2); } // 0x7fe61782ad94cc090xae7ff044B323 - inline Void NetworkSpentHoldups(Any p0, BOOL p1, BOOL p2) { return _i(0xD9B86B9872039763, p0, p1, p2); } // 0xd9b86b98720397630x1b3803b1B323 - inline Void NetworkSpentBuyPassiveMode(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0x6D3A430D1A809179, p0, p1, p2, p3); } // 0x6d3a430d1a8091790x7e97c92cB323 - inline Void NetworkSpentBankInterest(int p0, BOOL p1, BOOL p2) { return _i(0xCA230C9682556CF1, p0, p1, p2); } // 0xca230c9682556cf10xf02e92d7B323 - inline Void NetworkSpentProstitutes(Any p0, BOOL p1, BOOL p2) { return _i(0xB21B89501CFAC79E, p0, p1, p2); } // 0xb21b89501cfac79e0x78436d07B323 - inline Void NetworkSpentArrestBail(Any p0, BOOL p1, BOOL p2) { return _i(0x812F5488B1B2A299, p0, p1, p2); } // 0x812f5488b1b2a2990x5aee2fc1B323 - // According to how I understood this in the freemode script alone, - // The first parameter is determined by a function named, func_5749 within the freemode script which has a list of all the vehicles and a set price to return which some vehicles deals with globals as well. So the first parameter is basically the set in stone insurance cost it's gonna charge you for that specific vehicle model. - // - // The second parameter whoever put it was right, they call GetEntityModel with the vehicle as the paremeter. - // - // The third parameter is the network handle as they call their little struct<13> func or atleast how the script decompiled it to look which in lamens terms just returns the network handle of the previous owner based on DecorGetInt(vehicle, "Previous_Owner"). - // - // The fourth parameter is a bool that returns true/false depending on if your bank balance is greater then 0. - // - // The fifth and last parameter is a bool that returns true/false depending on if you have the money for the car based on the cost returned by func_5749. In the freemode script eg, - // bool hasTheMoney = MONEY::_GET_BANK_BALANCE() < carCost. - inline Void NetworkSpentPayVehicleInsurancePremium(int amount, Hash vehicleModel, Any* gamerHandle, BOOL notBankrupt, BOOL hasTheMoney) { return _i(0x9FF28D88C766E3E8, amount, vehicleModel, gamerHandle, notBankrupt, hasTheMoney); } // 0x9ff28d88c766e3e80x4e665bb2B323 - inline Void NetworkSpentCallPlayer(Any p0, Any* p1, BOOL p2, BOOL p3) { return _i(0xACDE7185B374177C, p0, p1, p2, p3); } // 0xacde7185b374177c0x1a89b5fcB323 - inline Void NetworkSpentBounty(Any p0, BOOL p1, BOOL p2) { return _i(0x29B260B84947DFCC, p0, p1, p2); } // 0x29b260b84947dfcc0x3401fc96B323 - inline Void NetworkSpentFromRockstar(int p0, BOOL p1, BOOL p2) { return _i(0x6A445B64ED7ABEB5, p0, p1, p2); } // 0x6a445b64ed7abeb50x54198922B323 - // Hardcoded to return 0. - inline int NetworkSpendEarnedFromBankAndWallets(int amount) { return _i(0x9B5016A6433A68C5, amount); } // 0x9b5016a6433a68c50xbd64f1b7B323 - // This isn't a hash collision. - inline String PROCESS_CASH_GIFT(int* p0, int* p1, String p2) { return _i(0x20194D48EAEC9A41, p0, p1, p2); } // 0x20194D48EAEC9A41 0xC5D8B1E9 b323 - inline Void NetworkSpentMoveSubmarine(Any p0, Any p1, Any p2) { return _i(0xCD4D66B43B1DD28D, p0, p1, p2); } // 0xcd4d66b43b1dd28dB2189 - inline Void NetworkSpentPlayerHealthcare(int p0, int p1, BOOL p2, BOOL p3) { return _i(0x7C99101F7FCE2EE5, p0, p1, p2, p3); } // 0x7c99101f7fce2ee50x3d96a21cB323 - inline Void NetworkSpentNoCops(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0xD5BB406F4E04019F, p0, p1, p2, p3); } // 0xd5bb406f4e04019f0x2e51c61cB323 - inline Void NetworkSpentCargoSourcing(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0x948705F6F9C50824, p0, p1, p2, p3, p4, p5); } // 0x948705f6f9c50824B2699 - inline Void NetworkSpentRequestJob(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0x8204DA7934DF3155, p0, p1, p2, p3); } // 0x8204da7934df31550xd57a5125B323 - inline Void NetworkSpentRequestHeist(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0x9D26502BB97BFE62, p0, p1, p2, p3); } // 0x9d26502bb97bfe620xf4287778B323 - // The first parameter is the amount spent which is store in a global when this native is called. The global returns 10. Which is the price for both rides. - // - // The last 3 parameters are, - // 2,0,1 in the am_ferriswheel.c - // 1,0,1 in the am_rollercoaster.c - // - inline Void NetworkBuyFairgroundRide(int amount, Any p1, BOOL p2, BOOL p3, Any p4) { return _i(0x8A7B3952DD64D2B5, amount, p1, p2, p3, p4); } // 0x8a7b3952dd64d2b50xd9622d64B323 - inline BOOL NetworkEconomyHasFixedCrazyNumbers() { return _i(0x7C4FCCD2E4DEB394); } // 0x7c4fccd2e4deb394B323 - inline Void NetworkSpentJobSkip(int amount, String matchId, BOOL p2, BOOL p3) { return _i(0x28F174A67B8D0C2F, amount, matchId, p2, p3); } // 0x28f174a67b8d0c2fB323 - inline BOOL NetworkSpentBossGoon(int amount, BOOL p1, BOOL p2) { return _i(0xFFBE02CD385356BD, amount, p1, p2); } // 0xffbe02cd385356bdB573 - inline Void NetworkSpendGoon(int p0, int p1, int amount) { return _i(0x08A1B82B91900682, p0, p1, amount); } // 0x08a1b82b91900682B573 - inline Void NetworkSpendBoss(Any p0, Any p1, Any p2) { return _i(0xDBC966A01C02BCA7, p0, p1, p2); } // 0xdbc966a01c02bca7B573 - inline Void NetworkSpentMoveYacht(int amount, BOOL p1, BOOL p2) { return _i(0xE7DF4E0545DFB56E, amount, p1, p2); } // 0xe7df4e0545dfb56eB573 - inline Void NetworkSpentRenameOrganization(Any p0, Any p1, Any p2, Any p3) { return _i(0xFC4EE00A7B3BFB76, p0, p1, p2, p3); } // 0xfc4ee00a7b3bfb76B573 - inline Void NetworkBuyContrabandMission(int p0, int p1, Hash p2, BOOL p3, BOOL p4) { return _i(0x30FD873ECE50E9F6, p0, p1, p2, p3, p4); } // 0x30fd873ece50e9f6B757 - inline Void NetworkSpentPaServiceHeli(Any p0, Any p1, Any p2, Any p3) { return _i(0x112209CE0290C03A, p0, p1, p2, p3); } // 0x112209ce0290c03aB757 - inline Void NetworkSpentPaServiceVehicle(Any p0, Any p1, Any p2, Any p3) { return _i(0xED5FD7AF10F5E262, p0, p1, p2, p3); } // 0xed5fd7af10f5e262B757 - inline Void NetworkSpentPaServiceSnack(Any p0, Any p1, Any p2, Any p3) { return _i(0x0D30EB83668E63C5, p0, p1, p2, p3); } // 0x0d30eb83668e63c5B757 - inline Void NetworkSpentPaServiceDancer(Any p0, Any p1, Any p2, Any p3) { return _i(0xB49ECA122467D05F, p0, p1, p2, p3); } // 0xb49eca122467d05fB757 - inline Void NetworkSpentPaServiceImpound(Any p0, Any p1, Any p2) { return _i(0xE23ADC6FCB1F29AE, p0, p1, p2); } // 0xe23adc6fcb1f29aeB757 - inline Void NetworkSpentPaHeliPickup(Any p0, Any p1, Any p2, Any p3) { return _i(0x0FE8E1FCD2B86B33, p0, p1, p2, p3); } // 0x0fe8e1fcd2b86b33B757 - inline Void NetworkSpentPurchaseOfficeProperty(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x69EF772B192614C1, p0, p1, p2, p3, p4); } // 0x69ef772b192614c1B757 - inline Void NetworkSpentUpgradeOfficeProperty(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x8E243837643D9583, p0, p1, p2, p3, p4); } // 0x8e243837643d9583B757 - inline Void NetworkSpentPurchaseWarehouseProperty(Any p0, Any p1, Any p2, Any p3) { return _i(0xBD0EFB25CCA8F97A, p0, p1, p2, p3); } // 0xbd0efb25cca8f97aB757 - inline Void NetworkSpentUpgradeWarehouseProperty(Any p0, Any p1, Any p2, Any p3) { return _i(0xA95F667A755725DA, p0, p1, p2, p3); } // 0xa95f667a755725daB757 - inline Void NetworkSpentPurchaseImpexpWarehouseProperty(int amount, Any* data, BOOL p2, BOOL p3) { return _i(0x33981D6804E62F49, amount, data, p2, p3); } // 0x33981d6804e62f49B944 - inline Void NetworkSpentUpgradeImpexpWarehouseProperty(Any p0, Any p1, Any p2, Any p3) { return _i(0x4128464231E3CA0B, p0, p1, p2, p3); } // 0x4128464231e3ca0bB944 - inline Void NetworkSpentTradeImpexpWarehouseProperty(Any p0, Any p1, Any p2, Any p3) { return _i(0x2FAB6614CE22E196, p0, p1, p2, p3); } // 0x2fab6614ce22e196B944 - inline Void NetworkSpentOrderWarehouseVehicle(Any p0, Any p1, Any p2, Any p3) { return _i(0x05F04155A226FBBF, p0, p1, p2, p3); } // 0x05f04155a226fbbfB757 - inline Void NetworkSpentOrderBodyguardVehicle(Any p0, Any p1, Any p2, Any p3) { return _i(0xE8B0B270B6E7C76E, p0, p1, p2, p3); } // 0xe8b0b270b6e7c76eB757 - inline Void NetworkSpentJukebox(Any p0, Any p1, Any p2, Any p3) { return _i(0x5BCDE0F640C773D2, p0, p1, p2, p3); } // 0x5bcde0f640c773d2B877 - inline Void NetworkSpentPurchaseClubHouse(Any p0, Any p1, Any p2, Any p3) { return _i(0x998E18CEB44487FC, p0, p1, p2, p3); } // 0x998e18ceb44487fcB877 - inline Void NetworkSpentUpgradeClubHouse(Any p0, Any p1, Any p2, Any p3) { return _i(0xFA07759E6FDDD7CF, p0, p1, p2, p3); } // 0xfa07759e6fddd7cfB877 - inline Void NetworkSpentPurchaseBusinessProperty(Any p0, Any p1, Any p2, Any p3) { return _i(0x6FD97159FE3C971A, p0, p1, p2, p3); } // 0x6fd97159fe3c971aB877 - inline Void NetworkSpentUpgradeBusinessProperty(Any p0, Any p1, Any p2, Any p3) { return _i(0x675D19C6067CAE08, p0, p1, p2, p3); } // 0x675d19c6067cae08B877 - inline Void NetworkSpentTradeBusinessProperty(Any p0, Any p1, Any p2, Any p3) { return _i(0xA51B086B0B2C0F7A, p0, p1, p2, p3); } // 0xa51b086b0b2c0f7aB877 - inline Void NetworkSpentMcAbility(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xD7CCCBA28C4ECAF0, p0, p1, p2, p3, p4); } // 0xd7cccba28c4ecaf0B877 - inline Void NetworkSpentPayBusinessSupplies(Any p0, Any p1, Any p2, Any p3) { return _i(0x0035BB914316F1E3, p0, p1, p2, p3); } // 0x0035bb914316f1e3B877 - inline Void NetworkSpentChangeAppearance(Any p0, Any p1, Any p2) { return _i(0x5F456788B05FAEAC, p0, p1, p2); } // 0x5f456788b05faeacB944 - inline Void NetworkSpentVehicleExportMods(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9) { return _i(0xA75CCF58A60A5FD1, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); } // 0xa75ccf58a60a5fd1B944 - inline Void NetworkSpentPurchaseOfficeGarage(Any p0, Any p1, Any p2, Any p3) { return _i(0xB4C2EC463672474E, p0, p1, p2, p3); } // 0xb4c2ec463672474eB944 - inline Void NetworkSpentUpgradeOfficeGarage(Any p0, Any p1, Any p2, Any p3) { return _i(0x2AFC2D19B50797F2, p0, p1, p2, p3); } // 0x2afc2d19b50797f2B944 - inline Void NetworkSpentImportExportRepair(Any p0, Any p1, Any p2) { return _i(0xC1952F3773BA18FE, p0, p1, p2); } // 0xc1952f3773ba18feB944 - inline Void NetworkSpentPurchaseHangar(Any p0, Any p1, Any p2, Any p3) { return _i(0xCCB339CC970452DA, p0, p1, p2, p3); } // 0xccb339cc970452daB1180 - inline Void NetworkSpentUpgradeHangar(Any p0, Any p1, Any p2, Any p3) { return _i(0x615EB504B0788DAF, p0, p1, p2, p3); } // 0x615eb504b0788dafB1180 - inline Void NetworkSpentHangarUtilityCharges(int amount, BOOL p1, BOOL p2) { return _i(0xB18AC2ECBB15CB6A, amount, p1, p2); } // 0xb18ac2ecbb15cb6aB1180 - inline Void NetworkSpentHangarStaffCharges(int amount, BOOL p1, BOOL p2) { return _i(0xB1F1346FD57685D7, amount, p1, p2); } // 0xb1f1346fd57685d7B1180 - inline Void NetworkSpentBuyTruck(Any p0, Any p1, Any p2, Any p3) { return _i(0xAC272C0AE01B4BD8, p0, p1, p2, p3); } // 0xac272c0ae01b4bd8B1103 - inline Void NetworkSpentUpgradeTruck(Any p0, Any p1, Any p2, Any p3) { return _i(0x365E877C61D6988B, p0, p1, p2, p3); } // 0x365e877c61d6988bB1103 - inline Void NetworkSpentBuyBunker(Any p0, Any p1, Any p2, Any p3) { return _i(0x12D148D26538D0F9, p0, p1, p2, p3); } // 0x12d148d26538d0f9B1103 - inline Void NetworkSpentUpradeBunker(Any p0, Any p1, Any p2, Any p3) { return _i(0x0C82D21A77C22D49, p0, p1, p2, p3); } // 0x0c82d21a77c22d49B1103 - inline Void NetworkEarnFromSellBunker(int amount, Hash bunkerHash) { return _i(0x9251B6ABF2D0A5B4, amount, bunkerHash); } // 0x9251b6abf2d0a5b4B1103 - inline Void NetworkSpentBallisticEquipment(int amount, BOOL p1, BOOL p2) { return _i(0x5D97630A8A0EF123, amount, p1, p2); } // 0x5d97630a8a0ef123B1103 - inline Void NetworkEarnRdrBonus(int amount, Any p1) { return _i(0x7A5349B773584675, amount, p1); } // 0x7a5349b773584675B1290 - inline Void NetworkEarnWagePayment(int amount, Any p1) { return _i(0x35F8DA0E8A31EF1B, amount, p1); } // 0x35f8da0e8a31ef1bB1180 - inline Void NetworkEarnWagePaymentBonus(int amount) { return _i(0x005ACA7100BD101D, amount); } // 0x005aca7100bd101dB1180 - inline Void NetworkSpentBuyBase(Any p0, Any p1, Any p2, Any p3) { return _i(0x4EA3F425C7744D21, p0, p1, p2, p3); } // 0x4ea3f425c7744d21B1290 - inline Void NetworkSpentUpgradeBase(Any p0, Any p1, Any p2, Any p3) { return _i(0x3DD3F33A5D55EA6F, p0, p1, p2, p3); } // 0x3dd3f33a5d55ea6fB1290 - inline Void NetworkSpentBuyTiltrotor(Any p0, Any p1, Any p2, Any p3) { return _i(0x0CCE73BC7A11E885, p0, p1, p2, p3); } // 0x0cce73bc7a11e885B1290 - inline Void NetworkSpentUpgradeTiltrotor(Any p0, Any p1, Any p2, Any p3) { return _i(0x165E135D6DFA2907, p0, p1, p2, p3); } // 0x165e135d6dfa2907B1290 - inline Void NetworkSpentEmployAssassins(Any p0, Any p1, Any p2, Any p3) { return _i(0x5BBBD92186E1F1C5, p0, p1, p2, p3); } // 0x5bbbd92186e1f1c5B1290 - inline Void NetworkSpendGangopsCannon(Any p0, Any p1, Any p2, Any p3) { return _i(0x771ADB0E7635B7BF, p0, p1, p2, p3); } // 0x771adb0e7635b7bfB1290 - inline Void NetworkSpendGangopsSkipMission(Any p0, Any p1, Any p2, Any p3) { return _i(0xDA947AE8880D5C18, p0, p1, p2, p3); } // 0xda947ae8880d5c18B1290 - inline Void NetworkSpendCasinoHeistSkipMission(Any p0, Any p1, Any p2, Any p3) { return _i(0x487009DD91D93429, p0, p1, p2, p3); } // 0x487009dd91d93429B1868 - inline Void NetworkEarnSellBase(int amount, Hash baseNameHash) { return _i(0x0E1E2FF3F4EC11AA, amount, baseNameHash); } // 0x0e1e2ff3f4ec11aaB1290 - inline Void NetworkEarnTargetRefund(int amount, int p1) { return _i(0x5B669CF2299A271F, amount, p1); } // 0x5b669cf2299a271fB1290 - inline Void NetworkEarnGangopsWages(int amount, int p1) { return _i(0x2DCB19ABAB0380A8, amount, p1); } // 0x2dcb19abab0380a8B1290 - inline Void NetworkEarnGangopsWagesBonus(int amount, int p1) { return _i(0x15BB2A5C757EB91F, amount, p1); } // 0x15bb2a5c757eb91fB1290 - inline Void NetworkEarnDarChallenge(int amount, Any p1) { return _i(0xCAC672087B4A24AB, amount, p1); } // 0xcac672087b4a24abB1290 - inline Void NetworkEarnDoomsdayFinaleBonus(int amount, Hash vehicleHash) { return _i(0x128A747F4A230952, amount, vehicleHash); } // 0x128a747f4a230952B1290 - inline Void NetworkEarnGangopsAward(int amount, String p1, Any p2) { return _i(0xA9A31475F530DFDA, amount, p1, p2); } // 0xa9a31475f530dfdaB1290 - inline Void NetworkEarnGangopsElite(int amount, String p1, int actIndex) { return _i(0x2597A0D4A4FC2C77, amount, p1, actIndex); } // 0x2597a0d4a4fc2c77B1290 - inline Void NetworkServiceEarnGangopsRivalDelivery(int earnedMoney) { return _i(0x1B882107C23A9022, earnedMoney); } // 0x1b882107c23a9022B1290 - inline Void NetworkSpendGangopsStartStrand(int type, int amount, BOOL p2, BOOL p3) { return _i(0xA19EC0786E326E06, type, amount, p2, p3); } // 0xa19ec0786e326e06B1290 - inline Void NetworkSpendGangopsTripSkip(int amount, BOOL p1, BOOL p2) { return _i(0x5ECE6FD7B4EC8D6A, amount, p1, p2); } // 0x5ece6fd7b4ec8d6aB1290 - inline Void NetworkEarnGangopsPrepParticipation(int amount) { return _i(0xED26584F6BDCBBFD, amount); } // 0xed26584f6bdcbbfdB1290 - inline Void NetworkEarnGangopsSetup(int amount, String p1) { return _i(0xA9160796D47A2CF8, amount, p1); } // 0xa9160796d47a2cf8B1290 - inline Void NetworkEarnGangopsFinale(int amount, String p1) { return _i(0x1C121FC9545E0D52, amount, p1); } // 0x1c121fc9545e0d52B1290 - inline Void NetworkSpendGangopsRepairCost(Any p0, Any p1, Any p2) { return _i(0x2A7CEC72C3443BCC, p0, p1, p2); } // 0x2a7cec72c3443bccB1290 - inline Void NetworkEarnNightclub(Any p0) { return _i(0xE0F82D68C7039158, p0); } // 0xe0f82d68c7039158B1493 - inline Void NetworkEarnNightclubDancing(Any p0) { return _i(0xB4DEAE67F35E2ACD, p0); } // 0xb4deae67f35e2acdB1493 - inline Void NetworkEarnBbEventBonus(int amount) { return _i(0xFDD8D2440DAF1590, amount); } // 0xfdd8d2440daf1590B1604 - inline Void NetworkSpentPurchaseHackerTruck(Any p0, Any p1, Any p2, Any p3) { return _i(0x2A93C46AAB1EACC9, p0, p1, p2, p3); } // 0x2a93c46aab1eacc9B1493 - inline Void NetworkSpentUpgradeHackerTruck(Any p0, Any p1, Any p2, Any p3) { return _i(0x226C284C830D0CA8, p0, p1, p2, p3); } // 0x226c284c830d0ca8B1493 - inline Void NetworkEarnHackerTruck(Any p0, int amount, Any p2, Any p3) { return _i(0xE8815FE993896AD3, p0, amount, p2, p3); } // 0xe8815fe993896ad3B1493 - inline Void NetworkSpentPurchaseNightclubAndWarehouse(Any p0, Any p1, Any p2, Any p3) { return _i(0xED76D195E6E3BF7F, p0, p1, p2, p3); } // 0xed76d195e6e3bf7fB1493 - inline Void NetworkSpentUpgradeNightclubAndWarehouse(Any p0, Any p1, Any p2, Any p3) { return _i(0x1DC9B749E7AE282B, p0, p1, p2, p3); } // 0x1dc9b749e7ae282bB1493 - inline Void NetworkEarnNightclubAndWarehouse(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6) { return _i(0xC6E74CF8C884C880, p0, p1, p2, p3, p4, p5, p6); } // 0xc6e74cf8c884c880B1493 - inline Void NetworkSpendNightclubAndWarehouse(Any p0, Any p1, Any p2, Any p3) { return _i(0x65482BFD0923C8A1, p0, p1, p2, p3); } // 0x65482bfd0923c8a1B1493 - inline Void NetworkSpentRdrHatchetBonus(int amount, BOOL p1, BOOL p2) { return _i(0xE284D46FFDB82E36, amount, p1, p2); } // 0xe284d46ffdb82e36B1493 - inline Void NetworkSpentNightclubEntryFee(Player player, int amount, Any p1, BOOL p2, BOOL p3) { return _i(0x876056684281655D, player, amount, p1, p2, p3); } // 0x876056684281655dB1493 - inline Void NetworkSpendNightclubBarDrink(int amount, Any p1, BOOL p2, BOOL p3) { return _i(0xDD21B016E4289465, amount, p1, p2, p3); } // 0xdd21b016e4289465B1493 - inline Void NetworkSpendBountyHunterMission(int amount, BOOL p1, BOOL p2) { return _i(0x1BEA0CD93470BB1F, amount, p1, p2); } // 0x1bea0cd93470bb1fB1493 - inline Void NetworkSpentRehireDj(int amount, Any p1, BOOL p2, BOOL p3) { return _i(0xF6C8A544E4CF14FC, amount, p1, p2, p3); } // 0xf6c8a544e4cf14fcB1493 - inline Void NetworkSpentArenaJoinSpectator(int amount, Any p1, BOOL p2, BOOL p3) { return _i(0x14EAEA58F93B55AF, amount, p1, p2, p3); } // 0x14eaea58f93b55afB1604 - inline Void NetworkEarnArenaSkillLevelProgression(int amount, Any p1) { return _i(0xE08256F972C7BB2C, amount, p1); } // 0xe08256f972c7bb2cB1604 - inline Void NetworkEarnArenaCareerProgression(int amount, Any p1) { return _i(0x0F99F70C61F14619, amount, p1); } // 0x0f99f70c61f14619B1604 - inline Void NetworkSpendMakeItRain(int amount, BOOL p1, BOOL p2) { return _i(0xE5F5A060439C2F5D, amount, p1, p2); } // 0xe5f5a060439c2f5dB1604 - inline Void NetworkSpendBuyArena(int amount, BOOL p1, BOOL p2, String p3) { return _i(0x40D5DA9550B7CB46, amount, p1, p2, p3); } // 0x40d5da9550b7cb46B1604 - inline Void NetworkSpendUpgradeArena(int amount, BOOL p1, BOOL p2, String p3) { return _i(0x037ABB06825D7AB1, amount, p1, p2, p3); } // 0x037abb06825d7ab1B1604 - // type either, 1 for cam spectate, 2 for drone - inline Void NetworkSpendArenaSpectatorBox(int amount, int type, BOOL p2, BOOL p3) { return _i(0x7049BF858601DC0F, amount, type, p2, p3); } // 0x7049bf858601dc0fB1604 - inline Void NetworkSpendSpinTheWheelPayment(int amount, Any p1, BOOL p2) { return _i(0x9A5BD1D0000B339C, amount, p1, p2); } // 0x9a5bd1d0000b339cB1604 - inline Void NetworkEarnSpinTheWheelCash(int amount) { return _i(0x676C48776CACBB5A, amount); } // 0x676c48776cacbb5aB1604 - inline Void NetworkSpendArenaPremium(int amount, BOOL p1, BOOL p2) { return _i(0x619496D837EFD920, amount, p1, p2); } // 0x619496d837efd920B1604 - inline Void NetworkEarnArenaWar(int amount, Any p1, Any p2, Any p3) { return _i(0x631F1CB8FB4130AA, amount, p1, p2, p3); } // 0x631f1cb8fb4130aaB1604 - inline Void NetworkEarnArenaWarAssassinateTarget(int amount) { return _i(0x5E7AE8AABE8B7C0D, amount); } // 0x5e7ae8aabe8b7c0dB1604 - inline Void NetworkEarnArenaWarEventCargo(int amount) { return _i(0xA82959062361B259, amount); } // 0xa82959062361b259B1604 - inline Void NetworkEarnRcTimeTrial(int amount) { return _i(0xDFF49EE984E7AAE8, amount); } // 0xdff49ee984e7aae8B1734 - inline Void NetworkEarnDailyObjectiveEvent(int amount) { return _i(0x5128DF14A5BB86FC, amount); } // 0x5128df14a5bb86fcB1734 - inline Void NetworkSpendCasinoMembership(int amount, BOOL p1, BOOL p2, int p3) { return _i(0xFBBE0570EDF39D46, amount, p1, p2, p3); } // 0xfbbe0570edf39d46B1734 - inline Void NetworkSpendBuyCasino(int amount, BOOL p1, BOOL p2, Any* data) { return _i(0x34A6FC4D06C4DA0F, amount, p1, p2, data); } // 0x34a6fc4d06c4da0fB1734 - inline Void NetworkSpendUpgradeCasino(int amount, BOOL p1, BOOL p2, Any* data) { return _i(0x4740D62BC1B4EBEA, amount, p1, p2, data); } // 0x4740d62bc1b4ebeaB1734 - inline Void NetworkSpendCasinoGeneric(int amount, Any p1, Any p2, Any p3, Any p4) { return _i(0x88BF9B612B84D3C3, amount, p1, p2, p3, p4); } // 0x88bf9b612b84d3c3B1734 - inline Void NetworkEarnCasinoTimeTrialWin(int amount) { return _i(0x0819DB99FD2FBBD8, amount); } // 0x0819db99fd2fbbd8B1734 - inline Void NetworkEarnCollectablesActionFigures(int amount) { return _i(0x5517F90043466049, amount); } // 0x5517f90043466049B1734 - inline Void NetworkEarnCasinoCollectableCompletedCollection(int amount) { return _i(0x83AD64F53F4E9483, amount); } // 0x83ad64f53f4e9483B1734 - inline Void NetworkEarnSellPrizeVehicle(int amount, Any p1, Any p2) { return _i(0x8BCB27A057DF7B7F, amount, p1, p2); } // 0x8bcb27a057df7b7fB1734 - inline Void NetworkEarnCasinoMissionReward(int amount) { return _i(0x566FD402B25787DE, amount); } // 0x566fd402b25787deB1734 - inline Void NetworkEarnCasinoStoryMissionReward(int amount) { return _i(0xAC95ED552157E092, amount); } // 0xac95ed552157e092B1734 - inline Void NetworkEarnCasinoMissionParticipation(int amount) { return _i(0x09E8F18641BE2575, amount); } // 0x09e8f18641be2575B1734 - inline Void NetworkEarnCasinoAward(int amount, Hash hash) { return _i(0x973A9781A34F8DEB, amount, hash); } // 0x973a9781a34f8debB1734 - inline Void NetworkSpendBuyArcade(Any p0, Any p1, Any p2, Any p3) { return _i(0x870289A558348378, p0, p1, p2, p3); } // 0x870289a558348378B1868 - inline Void NetworkSpendUpgradeArcade(Any p0, Any p1, Any p2, Any p3) { return _i(0x5574637681911FDA, p0, p1, p2, p3); } // 0x5574637681911fdaB1868 - inline Void NetworkSpendCasinoHeist(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9, Any p10) { return _i(0xD30E8392F407C328, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } // 0xd30e8392f407c328B1868 - inline Void NetworkSpendArcadeMgmt(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xB5B58E24868CB09E, p0, p1, p2, p3, p4); } // 0xb5b58e24868cb09eB1868 - inline Void NetworkSpendPlayArcade(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xEAD3D81F2C3A1458, p0, p1, p2, p3, p4); } // 0xead3d81f2c3a1458B1868 - inline Void NetworkSpendArcade(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x43AA7FAC4E6D6687, p0, p1, p2, p3, p4); } // 0x43aa7fac4e6d6687B1868 - inline Void NetworkEarnCasinoHeist(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6) { return _i(0x72E7C7B9615FA3C3, p0, p1, p2, p3, p4, p5, p6); } // 0x72e7c7b9615fa3c3B1868 - inline Void NetworkEarnUpgradeArcade(Any p0, Any p1, Any p2) { return _i(0x4C3B75694F7E0D9C, p0, p1, p2); } // 0x4c3b75694f7e0d9cB1868 - inline Void NetworkEarnArcade(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xD29334ED1A256DBF, p0, p1, p2, p3, p4); } // 0xd29334ed1a256dbfB1868 - inline Void NetworkEarnCollectables(Any p0, Any p1, Any p2) { return _i(0xA95CFB4E02390842, p0, p1, p2); } // 0xa95cfb4e02390842B1868 - inline Void NetworkEarnChallenge(int amount, Any p1, Any p2) { return _i(0x0DD362F14F18942A, amount, p1, p2); } // 0x0dd362f14f18942aB1868 - inline Void NetworkEarnCasinoHeistAwards(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x3EC7471E6909798A, p0, p1, p2, p3, p4); } // 0x3ec7471e6909798aB1868 - inline Void NetworkEarnCollectableItem(int amount, Any p1) { return _i(0x84FF63BD4966F33D, amount, p1); } // 0x84ff63bd4966f33dB1734 - inline Void NetworkEarnCollectableCompletedCollection(int amount, Any p1) { return _i(0x5C9B198AF5A54FA6, amount, p1); } // 0x5c9b198af5a54fa6B2060 - inline Void NetworkEarnYatchMission(int amount, Any p1) { return _i(0xDE68E30D89F97132, amount, p1); } // 0xde68e30d89f97132B2060 - inline Void NetworkEarnDispatchCall(int amount, Any p1) { return _i(0xE2E244AB823B4483, amount, p1); } // 0xe2e244ab823b4483B2060 - inline Void NetworkSpendBeachParty(Any p0) { return _i(0x54ABA22FA6371249, p0); } // 0x54aba22fa6371249B2189 - inline Void NetworkSpendSubmarine(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0x6C8BC1488527AAAB, p0, p1, p2, p3, p4, p5); } // 0x6c8bc1488527aaabB2189 - inline Void NetworkSpendCasinoClub(int amount1, Any p1, BOOL p2, Any p3, int p4, int p5, int p6, int amount2, Any p8) { return _i(0xC991C255AA6D90B2, amount1, p1, p2, p3, p4, p5, p6, amount2, p8); } // 0xc991c255aa6d90b2B2189 - inline Void NetworkSpendBuySub(Any p0, Any p1, Any p2, Any p3) { return _i(0x90CD7C6871FBF1B4, p0, p1, p2, p3); } // 0x90cd7c6871fbf1b4B2189 - inline Void NetworkSpendUpgradeSub(Any p0, Any p1, Any p2, Any p3) { return _i(0x89049A84065CE68E, p0, p1, p2, p3); } // 0x89049a84065ce68eB2189 - inline Void NetworkSpendIslandHeist(Any p0, Any p1, Any p2, Any p3) { return _i(0xE86689E5F82DE429, p0, p1, p2, p3); } // 0xe86689e5f82de429B2189 - inline Void NetworkEarnIslandHeist(int amount1, Any p1, Any p2, Any p3, int amount2, int p5) { return _i(0xD21D111C46BA9F15, amount1, p1, p2, p3, amount2, p5); } // 0xd21d111c46ba9f15B2189 - inline Void NetworkEarnBeachPartyLostFound(Any p0, Any p1, Any p2) { return _i(0xA51338E0DCCD4065, p0, p1, p2); } // 0xa51338e0dccd4065B2189 - inline Void NetworkEarnFromIslandHeistDjMission(Any p0, Any p1) { return _i(0xE2BB399D90942091, p0, p1); } // 0xe2bb399d90942091B2189 - inline Void NetworkSpendCarClubMembership(int amount1, Any p1, Any p2, int amount2, Any p4) { return _i(0x1464E17207CD36E2, amount1, p1, p2, amount2, p4); } // 0x1464e17207cd36e2B2372 - inline Void NetworkSpendCarClubBar(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0x925227803A0EAA1B, p0, p1, p2, p3); } // 0x925227803a0eaa1bB2372 - inline Void NetworkSpendAutoshopModify(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x9BEA350D7C48061B, p0, p1, p2, p3, p4); } // 0x9bea350d7c48061bB2372 - inline Void NetworkSpendCarClubTakeover(Any p0, Any p1, Any p2, Any p3) { return _i(0xD1E46824E6FB92B5, p0, p1, p2, p3); } // 0xd1e46824e6fb92b5B2372 - inline Void NetworkSpendBuyAutoshop(Any p0, Any p1, Any p2, Any p3) { return _i(0xEEB7E5D1FEB20869, p0, p1, p2, p3); } // 0xeeb7e5d1feb20869B2372 - inline Void NetworkSpendUpgradeAutoshop(Any p0, Any p1, Any p2, Any p3) { return _i(0xDD829AA198FDC46C, p0, p1, p2, p3); } // 0xdd829aa198fdc46cB2372 - inline Void NetworkEarnAutoshopBusiness(Any p0, Any p1, Any p2) { return _i(0x36A7FD5A7194B03E, p0, p1, p2); } // 0x36a7fd5a7194b03eB2372 - inline Void NetworkEarnAutoshopIncome(Any p0, int p1) { return _i(0xC66D1CF99ED7FE25, p0, p1); } // 0xc66d1cf99ed7fe25B2372 - inline Void NetworkEarnCarclubMembership(Any p0) { return _i(0xBC6227792A188E2E, p0); } // 0xbc6227792a188e2eB2372 - inline Void NetworkEarnDailyVehicle(Any p0, Any p1) { return _i(0x533073E8A596008C, p0, p1); } // 0x533073e8a596008cB2372 - inline Void NetworkEarnDailyVehicleBonus(Any p0) { return _i(0xFE65AFE7308E32B2, p0); } // 0xfe65afe7308e32b2B2372 - inline Void NetworkEarnTunerAward(Any p0, Any p1, Any p2) { return _i(0xB846F547D3792DF6, p0, p1, p2); } // 0xb846f547d3792df6B2372 - inline Void NetworkEarnTunerRobbery(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xBCB266247193AC61, p0, p1, p2, p3, p4); } // 0xbcb266247193ac61B2372 - inline Void NetworkEarnUpgradeAutoshop(Any p0, Any p1) { return _i(0xC10322A8D3E061EE, p0, p1); } // 0xc10322a8d3e061eeB2372 - inline Void NetworkSpendInteractionMenuAbility(Any p0, Any p1, Any p2, Any p3) { return _i(0x93AA4165CB67E925, p0, p1, p2, p3); } // 0x93aa4165cb67e925B2372 - inline Void NetworkSpendSetCommonFields(Any p0, Any p1, Any p2, BOOL p3) { return _i(0xB9F7A469460E7A4A, p0, p1, p2, p3); } // 0xb9f7a469460e7a4aB2372 - inline Void NetworkSpendSetDiscount(BOOL p0) { return _i(0x7E2F4E8F44CAF4E0, p0); } // 0x7e2f4e8f44caf4e0B2699 - inline Void NetworkSpendBuyAgency(Any p0, Any p1, Any p2, Any p3) { return _i(0xEA8CD3C9B3C35884, p0, p1, p2, p3); } // 0xea8cd3c9b3c35884B2545 - inline Void NetworkSpendUpgradeAgency(Any p0, Any p1, Any p2, Any p3) { return _i(0x6CCA64840589A3B6, p0, p1, p2, p3); } // 0x6cca64840589a3b6B2545 - inline Void NetworkSpendAgency(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x1B2120405080125C, p0, p1, p2, p3, p4); } // 0x1b2120405080125cB2545 - inline Void NetworkSpendHidden(Any p0, Any p1, Any p2, Any p3) { return _i(0xBF8793B91EA094A7, p0, p1, p2, p3); } // 0xbf8793b91ea094a7B2545 - inline Void NetworkSpendSourceBike(Any p0, Any p1, Any p2, Any p3) { return _i(0xD9DF467CBE4398C8, p0, p1, p2, p3); } // 0xd9df467cbe4398c8B2545 - inline Void NetworkSpendCompSuv(Any p0, Any p1, Any p2, Any p3) { return _i(0xD86581F9E7CDA383, p0, p1, p2, p3); } // 0xd86581f9e7cda383B2545 - inline Void NetworkSpendSuvFstTrvl(int p0, BOOL p1, BOOL p2, Any p3) { return _i(0x61A2DF64ED2D396E, p0, p1, p2, p3); } // 0x61a2df64ed2d396eB2545 - inline Void NetworkSpendSupply(Any p0, Any p1, Any p2, Any p3) { return _i(0xEBD482B82ACB8BAD, p0, p1, p2, p3); } // 0xebd482b82acb8badB2545 - inline Void NetworkSpendBikeShop(Any p0, Any p1, Any p2, Any p3) { return _i(0x923AEA8E78F8DF0B, p0, p1, p2, p3); } // 0x923aea8e78f8df0bB2699 - inline Void NetworkSpendVehicleRequested(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x02D24A35A9CC3503, p0, p1, p2, p3, p4); } // 0x02d24a35a9cc3503B2699 - inline Void NetworkSpendGunrunning(Any p0, Any p1, Any p2, Any p3) { return _i(0x2CEB0E0BC2A77C05, p0, p1, p2, p3); } // 0x2ceb0e0bc2a77c05B2699 - inline Void NetworkEarnAgencySafe(Any p0) { return _i(0x663B4B9D11742A12, p0); } // 0x663b4b9d11742a12B2545 - inline Void NetworkEarnAwardContract(Any p0, Any p1) { return _i(0x146D4EB6D22A403F, p0, p1); } // 0x146d4eb6d22a403fB2545 - inline Void NetworkEarnAgencyContract(Any p0, Any p1) { return _i(0x38482AD49CB905C7, p0, p1); } // 0x38482ad49cb905c7B2545 - inline Void NetworkEarnAwardPhone(Any p0, Any p1) { return _i(0x7397A115030F1BE3, p0, p1); } // 0x7397a115030f1be3B2545 - inline Void NetworkEarnAgencyPhone(Any p0, Any p1, Any p2) { return _i(0xE29F3D5FA63B1B82, p0, p1, p2); } // 0xe29f3d5fa63b1b82B2545 - inline Void NetworkEarnAwardFixerMission(Any p0, Any p1) { return _i(0x88D6C327D6C57C45, p0, p1); } // 0x88d6c327d6c57c45B2545 - inline Void NetworkEarnFixerPrep(Any p0, Any p1) { return _i(0x6283E5DE4C4460C6, p0, p1); } // 0x6283e5de4c4460c6B2545 - inline Void NetworkEarnFixerFinale(Any p0, Any p1) { return _i(0xBA154373C5FE51E8, p0, p1); } // 0xba154373c5fe51e8B2545 - inline Void NetworkEarnFixerAgencyShortTrip(Any p0, Any p1) { return _i(0xF4A8E57460BF2037, p0, p1); } // 0xf4a8e57460bf2037B2545 - inline Void NetworkEarnAwardShortTrip(Any p0, Any p1) { return _i(0x5B4DBDED84D6A420, p0, p1); } // 0x5b4dbded84d6a420B2545 - inline Void NetworkEarnFixerRivalDelivery(Any p0, Any p1) { return _i(0x235D41210B3A1A5E, p0, p1); } // 0x235d41210b3a1a5eB2545 - inline Void NetworkEarnUpgradeAgency(Any p0, Any p1) { return _i(0xD07C7C3F1995108C, p0, p1); } // 0xd07c7c3f1995108cB2545 - inline Void NetworkSpendApartmentUtilities(int amount, BOOL p1, BOOL p2, Any* data) { return _i(0x1254B5B3925EFD3D, amount, p1, p2, data); } // 0x1254b5b3925efd3dB2545 - inline Void NetworkSpendBusinessPropertyFees(Any p0, Any p1, Any p2, Any p3) { return _i(0x92D1CFDA1227FF1C, p0, p1, p2, p3); } // 0x92d1cfda1227ff1cB2545 - inline Void NetworkEarnSightseeingReward(Any p0, Any p1, Any p2, Any p3) { return _i(0x45087AE480B233AC, p0, p1, p2, p3); } // 0x45087ae480b233acB2699 - inline Void NetworkEarnBikerShop(Any p0, Any p1) { return _i(0x2C5809EB9DF57257, p0, p1); } // 0x2c5809eb9df57257B2699 - inline Void NetworkEarnBiker(Any p0) { return _i(0x71BEC32FA466E105, p0); } // 0x71bec32fa466e105B2699 - inline Void NetworkYohanSourceGoods(Any p0, Any p1, Any p2, Any p3) { return _i(0x59498BC8B1C8B15C, p0, p1, p2, p3); } // 0x59498bc8b1c8b15cB2699 - inline Void NetworkSpendBuyMfgarage(Any p0, Any p1, Any p2, Any p3) { return _i(0xA2ED36DCF0FCA413, p0, p1, p2, p3); } // 0xa2ed36dcf0fca413B2802 - inline Void NetworkSpendUpgradeMfgarage(Any p0, Any p1, Any p2, Any p3) { return _i(0xCF8F346DDDC66643, p0, p1, p2, p3); } // 0xcf8f346dddc66643B2802 - inline Void NetworkSpendBuySupplies(int p0, BOOL p1, BOOL p2, int p3) { return _i(0xB48185C0CA67B16B, p0, p1, p2, p3); } // 0xb48185c0ca67b16bB2802 - inline Void NetworkSpendBuyAcidLab(Any p0, Any p1, Any p2, Any p3) { return _i(0xF1E26A7924327152, p0, p1, p2, p3); } // 0xf1e26a7924327152B2802 - inline Void NetworkSpendUpgradeAcidLabEquipment(Any p0, Any p1, Any p2, Any p3) { return _i(0x110EE9D486C23126, p0, p1, p2, p3); } // 0x110ee9d486c23126B2802 - inline Void NetworkSpendUpgradeAcidLabArmor(int p0, BOOL p1, BOOL p2, int p3) { return _i(0xA7D541C9ACD63133, p0, p1, p2, p3); } // 0xa7d541c9acd63133B2802 - inline Void NetworkSpendUpgradeAcidLabScoop(int p0, BOOL p1, BOOL p2, int p3) { return _i(0x2940558E05BCC2EC, p0, p1, p2, p3); } // 0x2940558e05bcc2ecB2802 - inline Void NetworkSpendUpgradeAcidLabMines(int p0, BOOL p1, BOOL p2, int p3) { return _i(0x4B99AB08C92C54E4, p0, p1, p2, p3); } // 0x4b99ab08c92c54e4B2802 - inline Void NetworkSpendRenameAcidLab(Any p0, Any p1, Any p2, Any p3) { return _i(0x842B1C5AF61ACDE9, p0, p1, p2, p3); } // 0x842b1c5af61acde9B2802 - inline Void NetworkSpendRenameAcidProduct(Any p0, Any p1, Any p2, Any p3) { return _i(0x446798F7495DD7D8, p0, p1, p2, p3); } // 0x446798f7495dd7d8B2802 - inline Void NetworkEarnAwardJuggaloMission(Any p0, Any p1) { return _i(0xDDF047577F1A02A7, p0, p1); } // 0xddf047577f1a02a7B2802 - inline Void NetworkEarnAwardAcidLab(Any p0, Any p1) { return _i(0xD1A8165767AD2D23, p0, p1); } // 0xd1a8165767ad2d23B2802 - inline Void NetworkEarnAwardDailyStash(Any p0, Any p1) { return _i(0xC30650FA74A19D02, p0, p1); } // 0xc30650fa74a19d02B2802 - inline Void NetworkEarnAwardDeadDrop(Any p0, Any p1) { return _i(0xD01EBAEA1F905EF6, p0, p1); } // 0xd01ebaea1f905ef6B2802 - inline Void NetworkEarnAwardRandomEvent(Any p0, Any p1) { return _i(0xBEAFBB1B98B7EF55, p0, p1); } // 0xbeafbb1b98b7ef55B2802 - inline Void NetworkEarnAwardTaxi(Any p0, Any p1) { return _i(0xA914768AD35CD3A5, p0, p1); } // 0xa914768ad35cd3a5B2802 - inline Void NetworkEarnStreetDealer(Any p0, Any p1) { return _i(0xA81017EE1324FDFE, p0, p1); } // 0xa81017ee1324fdfeB2802 - inline Void NetworkEarnSellAcid(Any p0, Any p1) { return _i(0x79B656937DF6DF5D, p0, p1); } // 0x79b656937df6df5dB2802 - inline Void NetworkEarnSetupParticipationAcidLab(Any p0, Any p1) { return _i(0xE3942D59E8A7F70D, p0, p1); } // 0xe3942d59e8a7f70dB2802 - inline Void NetworkEarnSourceParticipationAcidLab(Any p0, Any p1) { return _i(0x136F11B5DF1B304D, p0, p1); } // 0x136f11b5df1b304dB2802 - inline Void NetworkEarnSellParticipationAcidLab(Any p0, Any p1) { return _i(0xCA3EF9B09A8D76B4, p0, p1); } // 0xca3ef9b09a8d76b4B2802 - inline Void NetworkEarnJuggaloStoryMission(Any p0, Any p1) { return _i(0xE01D10BA8CD53621, p0, p1); } // 0xe01d10ba8cd53621B2802 - inline Void NetworkEarnJuggaloStoryMissionParticipation(Any p0, Any p1) { return _i(0x40FF6CCCC476185C, p0, p1); } // 0x40ff6cccc476185cB2802 - // JUGGALO_PHONE_MISSION... - inline Void NetworkEarnFooliganJob(Any p0, Any p1) { return _i(0xCE4452AE85F5E252, p0, p1); } // 0xce4452ae85f5e252B2802 - // JUGGALO_PHONE_MISSION_PARTICIPATION... - inline Void NetworkEarnFooliganJobParticipation(Any p0, Any p1) { return _i(0xC376B92D0E060970, p0, p1); } // 0xc376b92d0e060970B2802 - inline Void NetworkEarnTaxiJob(Any p0, Any p1) { return _i(0x991E1588FAD9019D, p0, p1); } // 0x991e1588fad9019dB2802 - inline Void NetworkEarnDailyStashHouseCompleted(Any p0, Any p1) { return _i(0xCABC9874AFA70D6D, p0, p1); } // 0xcabc9874afa70d6dB2802 - inline Void NetworkEarnDailyStashHouseParticipation(Any p0, Any p1) { return _i(0x9C0C6BD0F94CE391, p0, p1); } // 0x9c0c6bd0f94ce391B2802 - // Used for SERVICE_EARN_AVENGER_OPERATIONS & SERVICE_EARN_AVENGER_OPS_BONUS - inline Void NetworkEarnAvenger(int amount, int p1) { return _i(0x55F006B9D4A46C1D, amount, p1); } // 0x55f006b9d4a46c1dB2944 - inline Void NetworkEarnSmugglerOps(Any p0, Any p1, Any p2) { return _i(0xDEA273D5F8A9661A, p0, p1, p2); } // 0xdea273d5f8a9661aB2944 - inline Void NetworkEarnBonusObjective(int amount, Any p1, Any p2) { return _i(0xDCEF983C24191997, amount, p1, p2); } // 0xdcef983c24191997B2944 - inline Void NetworkEarnProgressHub(Any p0, Any p1) { return _i(0xF8332B06F0EECC9C, p0, p1); } // 0xf8332b06f0eecc9cB2944 - inline Void NetworkSpentAirFreight(int hangarCargoSourcingPrice, BOOL fromBank, BOOL fromBankAndWallet, int cost, int warehouseId, int warehouseSlot) { return _i(0x8C7E8D6F96C9E948, hangarCargoSourcingPrice, fromBank, fromBankAndWallet, cost, warehouseId, warehouseSlot); } // 0x8c7e8d6f96c9e948B2944 - inline Void NetworkSpentSkipCargoSourceSetup(int amount, BOOL fromBank, BOOL fromBankAndWallet, int cost) { return _i(0xED1B407BADA42CEC, amount, fromBank, fromBankAndWallet, cost); } // 0xed1b407bada42cecB2944 - // Hash p3 = STEALTH_MODULE - inline Void NetworkSpentStealthModule(int amount, BOOL fromBank, BOOL fromBankAndWallet, Hash p3) { return _i(0x95CE79A6939C537A, amount, fromBank, fromBankAndWallet, p3); } // 0x95ce79a6939c537aB2944 - // Hash p3 = MISSILE_JAMMER - inline Void NetworkSpentMissileJammer(int amount, BOOL fromBank, BOOL fromBankAndWallet, Hash p3) { return _i(0xD687100F616163F4, amount, fromBank, fromBankAndWallet, p3); } // 0xd687100f616163f4B2944 - inline int NetworkGetVcBankBalance() { return _i(0x76EF28DA05EA395A); } // 0x76ef28da05ea395a0x16184fb5B323 - inline int NetworkGetVcWalletBalance(int characterSlot) { return _i(0xA40F9C2623F6A8B5, characterSlot); } // 0xa40f9c2623f6a8b50x4f5b781cB323 - inline int NetworkGetVcBalance() { return _i(0x5CBAD97E059E1B94); } // 0x5cbad97e059e1b940xadf8f882B323 - inline int NetworkGetEvcBalance() { return _i(0x5D1E75F91C07DEE5); } // 0x5d1e75f91c07dee50xf1edb7f4B323 - inline int NetworkGetPvcBalance() { return _i(0x4F54F3B6C202FB4E); } // 0x4f54f3b6c202fb4e0x56485b56B323 - inline String NETWORK_GET_STRING_WALLET_BALANCE(int characterSlot) { return _i(0xF9B10B529DCFB33B, characterSlot); } // 0xF9B10B529DCFB33B 0xC1A11435 b323 - inline String NETWORK_GET_STRING_BANK_BALANCE() { return _i(0xA6FA3979BED01B81); } // 0xA6FA3979BED01B81 0xAA7EA3BD b323 - inline String NETWORK_GET_STRING_BANK_WALLET_BALANCE(int character) { return _i(0x700AF71AE615E6DD, character); } // 0x700AF71AE615E6DD 0x7D4FD28C b323 - // Returns true if wallet balance >= amount. - inline BOOL NetworkGetCanSpendFromWallet(int amount, int characterSlot) { return _i(0xED5AB8860415BABA, amount, characterSlot); } // 0xed5ab8860415baba0x0ea2188cB323 - // Returns true if bank balance >= amount. - inline BOOL NetworkGetCanSpendFromBank(int amount) { return _i(0xA31FD6A0865B6D14, amount); } // 0xa31fd6a0865b6d140xabed6020B323 - // Returns true if bank balance + wallet balance >= amount. - inline BOOL NetworkGetCanSpendFromBankAndWallet(int amount, int characterSlot) { return _i(0xDC18531D7019A535, amount, characterSlot); } // 0xdc18531d7019a5350xca23fd25B323 - // Retturns the same value as NetworkGetRemainingTransferBalance. - inline int NetworkGetPvcTransferBalance() { return _i(0x13A8DE2FD77D04F3); } // 0x13a8de2fd77d04f30xc670c814B323 - // Returns false if amount > wallet balance or daily transfer limit has been hit. - inline BOOL NetworkGetCanTransferCash(int amount) { return _i(0x08E8EEADFD0DC4A0, amount); } // 0x08e8eeadfd0dc4a00x03461981B323 - inline BOOL NetworkCanReceivePlayerCash(Any p0, Any p1, Any p2, Any p3) { return _i(0x5D17BE59D2123284, p0, p1, p2, p3); } // 0x5d17be59d21232840x41f5f10eB323 - // Returns the same value as NetworkGetPvcTransferBalance. - inline int NetworkGetRemainingTransferBalance() { return _i(0xEA560AC9EEB1E19B); } // 0xea560ac9eeb1e19b0xa9021211B323 - // Does nothing and always returns 0. - inline int WithdrawVc(int amount) { return _i(0xF70EFA14FE091429, amount); } // 0xf70efa14fe0914290x8b755993B323 - // Does nothing and always returns false. - inline BOOL DepositVc(int amount) { return _i(0xE260E0BB9CD995AC, amount); } // 0xe260e0bb9cd995ac0x8f266745B323 - // This function is hard-coded to always return 1. - inline BOOL HasVcWithdrawalCompleted(Any p0) { return _i(0xE154B48B68EF72BC, p0); } // 0xe154b48b68ef72bc0x531e4892B323 - // This function is hard-coded to always return 1. - inline BOOL WasVcWithdrawalSuccessful(Any p0) { return _i(0x6FCF8DDEA146C45B, p0); } // 0x6fcf8ddea146c45b0xb96c7abeB323 + inline Void NetworkInitializeCash(int wallet, int bank) { return _i(0x3DA5ECD1A56CBA6D, wallet, bank); } // 0x3da5ecd1a56cba6d0x66da9935B323 + // Note the 2nd parameters are always 1, 0. I have a feeling it deals with your money, wallet, bank. So when you delete the character it of course wipes the wallet cash at that time. So if that was the case, it would be eg, NetworkDeleteCharacter(characterIndex, deleteWalletCash, deleteBankCash); + inline Void NetworkDeleteCharacter(int characterSlot, BOOL p1, BOOL p2) { return _i(0x05A50AF38947EB8D, characterSlot, p1, p2); } // 0x05a50af38947eb8d0xa9f7e9c3B323 + inline Void NetworkManualDeleteCharacter(int characterSlot) { return _i(0x821418C727FCACD7, characterSlot); } // 0x821418c727fcacd7B791 + inline BOOL NetworkGetPlayerIsHighEarner() { return _i(0xFB2456B2040A6A67); } // 0xfb2456b2040a6a670x63f093a6B323 + inline Void NetworkClearCharacterWallet(int characterSlot) { return _i(0xA921DED15FDF28F5, characterSlot); } // 0xa921ded15fdf28f50x19f0c471B323 + inline Void NetworkGivePlayerJobshareCash(int amount, Any* gamerHandle) { return _i(0xFB18DF9CB95E0105, amount, gamerHandle); } // 0xfb18df9cb95e01050xc6047fdbB323 + inline Void NetworkReceivePlayerJobshareCash(int value, Any* gamerHandle) { return _i(0x56A3B51944C50598, value, gamerHandle); } // 0x56a3b51944c505980x4ed71c1aB323 + inline BOOL NetworkCanShareJobCash() { return _i(0x1C2473301B1C66BA); } // 0x1c2473301b1c66ba0xa27b9fe8B323 + // index + // ------- + // See function sub_1005 in am_boat_taxi.ysc + // + // context + // ---------- + // "BACKUP_VAGOS" + // "BACKUP_LOST" + // "BACKUP_FAMILIES" + // "HIRE_MUGGER" + // "HIRE_MERCENARY" + // "BUY_CARDROPOFF" + // "HELI_PICKUP" + // "BOAT_PICKUP" + // "CLEAR_WANTED" + // "HEAD_2_HEAD" + // "CHALLENGE" + // "SHARE_LAST_JOB" + // "DEFAULT" + // + // reason + // --------- + // "NOTREACHTARGET" + // "TARGET_ESCAPE" + // "DELIVERY_FAIL" + // "NOT_USED" + // "TEAM_QUIT" + // "SERVER_ERROR" + // "RECEIVE_LJ_L" + // "CHALLENGE_PLAYER_LEFT" + // "DEFAULT" + // + // unk + // ----- + // Unknown BOOL value + // + // + inline Void NetworkRefundCash(int index, String context, String reason, BOOL p3) { return _i(0xF9C812CD7C46E817, index, context, reason, p3); } // 0xf9c812cd7c46e8170x07c92f21B323 + inline Void NetworkDeductCash(int amount, String p1, String p2, BOOL p3, BOOL p4, BOOL p5) { return _i(0x18B7AE224B087E26, amount, p1, p2, p3, p4, p5); } // 0x18b7ae224b087e26B323 + inline BOOL NetworkMoneyCanBet(int amount, BOOL p1, BOOL p2) { return _i(0x81404F3DC124FE5B, amount, p1, p2); } // 0x81404f3dc124fe5b0x8474e6f0B323 + inline BOOL NetworkCanBet(int amount) { return _i(0x3A54E33660DED67F, amount); } // 0x3a54e33660ded67f0xe3802533B323 + // GTAO_CASINO_HOUSE + // GTAO_CASINO_INSIDETRACK + // GTAO_CASINO_LUCKYWHEEL + // GTAO_CASINO_BLACKJACK + // GTAO_CASINO_ROULETTE + // GTAO_CASINO_SLOTS + // GTAO_CASINO_PURCHASE_CHIPS + // + // NETWORK_C* + inline BOOL NetworkCasinoCanBet(Hash hash) { return _i(0x158C16F5E4CF41F8, hash); } // 0x158c16f5e4cf41f8B1734 + inline BOOL NetworkCasinoCanBetPvc() { return _i(0x394DCDB9E836B7A9); } // 0x394dcdb9e836b7a9B1734 + inline BOOL NetworkCasinoCanBetAmount(Any p0) { return _i(0xF62F6D9528358FE4, p0); } // 0xf62f6d9528358fe4B1734 + inline BOOL NetworkCasinoCanBuyChipsPvc() { return _i(0x8968D4D8C6C40C11); } // 0x8968d4d8c6c40c11B1734 + inline BOOL NetworkCasinoBuyChips(int p0, int p1) { return _i(0x3BD101471C7F9EEC, p0, p1); } // 0x3bd101471c7f9eecB1734 + inline BOOL NetworkCasinoSellChips(int p0, int p1) { return _i(0xED44897CB336F480, p0, p1); } // 0xed44897cb336f480B1734 + // Does nothing (it's a nullsub). + inline Void NetworkDeferCashTransactionsUntilShopSave() { return _i(0xCD0F5B5D932AE473); } // 0xcd0f5b5d932ae4730xc4cd928dB323 + inline BOOL CanPayAmountToBoss(int p0, int p1, int amount, int* p3) { return _i(0x9777734DAD16992F, p0, p1, amount, p3); } // 0x9777734dad16992fB573 + inline Void NetworkEarnFromPickup(int amount) { return _i(0xED1517D3AF17C698, amount); } // 0xed1517d3af17c6980x70a0ed62B323 + inline Void NetworkEarnFromCashingOut(int amount) { return _i(0x718FBBF67414FA36, amount); } // 0x718fbbf67414fa36B1290 + inline Void NetworkEarnFromGangattackPickup(int amount) { return _i(0xA03D4ACE0A3284CE, amount); } // 0xa03d4ace0a3284ce0x33c20bc4B323 + inline Void NetworkEarnAssassinateTargetKilled(int amount) { return _i(0xFA700D8A9905F78A, amount); } // 0xfa700d8a9905f78aB1604 + // For the money bags that drop a max of $40,000. Often called 40k bags. + // + // Most likely NETWORK_EARN_FROM_ROB*** + inline Void NetworkEarnFromRobArmoredCars(int amount) { return _i(0xF514621E8EA463D0, amount); } // 0xf514621e8ea463d00x30b3ec0aB323 + inline Void NetworkEarnFromCrateDrop(int amount) { return _i(0xB1CC1B9EC3007A2A, amount); } // 0xb1cc1b9ec3007a2a0xeaf04923B323 + inline Void NetworkEarnFromBetting(int amount, String p1) { return _i(0x827A5BA1A44ACA6D, amount, p1); } // 0x827a5ba1a44aca6d0xa0f7f07cB323 + inline Void NetworkEarnFromJob(int amount, String p1) { return _i(0xB2CC4836834E8A98, amount, p1); } // 0xb2cc4836834e8a980x0b6997fcB323 + inline Void NetworkEarnFromJobx2(int amount, String p1) { return _i(0xDEBBF584665411D0, amount, p1); } // 0xdebbf584665411d0B1734 + inline Void NetworkEarnFromPremiumJob(int amount, String p1) { return _i(0xC8407624CEF2354B, amount, p1); } // 0xc8407624cef2354bB791 + inline Void NetworkEarnFromBendJob(int amount, String heistHash) { return _i(0x61326EE6DF15B0CA, amount, heistHash); } // 0x61326ee6df15b0ca0xbb293400B323 + inline Void NetworkEarnFromChallengeWin(Any p0, Any* p1, BOOL p2) { return _i(0x2B171E6B2F64D8DF, p0, p1, p2); } // 0x2b171e6b2f64d8df0x2befb6c4B323 + inline Void NetworkEarnFromBounty(int amount, Any* gamerHandle, Any* p2, Any p3) { return _i(0x131BB5DA15453ACF, amount, gamerHandle, p2, p3); } // 0x131bb5da15453acf0x127f2daeB323 + inline Void NetworkEarnFromImportExport(int amount, Hash modelHash) { return _i(0xF92A014A634442D6, amount, modelHash); } // 0xf92a014a634442d60xf11fc458B323 + inline Void NetworkEarnFromHoldups(int amount) { return _i(0x45B8154E077D9E4D, amount); } // 0x45b8154e077d9e4d0xe6b90e9cB323 + inline Void NetworkEarnFromProperty(int amount, Hash propertyName) { return _i(0x849648349D77F5C5, amount, propertyName); } // 0x849648349d77f5c50x9be4f7e1B323 + // DSPORT + inline Void NetworkEarnFromAiTargetKill(Any p0, Any p1) { return _i(0x515B4A22E4D3C6D7, p0, p1); } // 0x515b4a22e4d3c6d70x866004a8B323 + inline Void NetworkEarnFromNotBadsport(int amount) { return _i(0x4337511FA8221D36, amount); } // 0x4337511fa8221d360xcc068380B323 + inline Void NetworkEarnFromVehicle(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7) { return _i(0xB539BD8A4C1EECF8, p0, p1, p2, p3, p4, p5, p6, p7); } // 0xb539bd8a4c1eecf80xf803589dB323 + inline Void NetworkEarnFromPersonalVehicle(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8) { return _i(0x3F4D00167E41E0AD, p0, p1, p2, p3, p4, p5, p6, p7, p8); } // 0x3f4d00167e41e0ad0x96b8bee8B323 + // type either Monthly,Weekly,Daily + inline Void NetworkEarnFromDailyObjectives(int amount, String type, int characterSlot) { return _i(0x6EA318C91C1A8786, amount, type, characterSlot); } // 0x6ea318c91c1a87860xab6bd72fB323 + // Example for p1: "AM_DISTRACT_COPS" + inline Void NetworkEarnFromAmbientJob(int p0, String p1, Any* p2) { return _i(0xFB6DB092FBAE29E6, p0, p1, p2); } // 0xfb6db092fbae29e60xa14cc95dB323 + inline Void NetworkEarnFromJobBonus(Any p0, Any* p1, Any* p2) { return _i(0x6816FB4416760775, p0, p1, p2); } // 0x6816fb44167607750xbee23713B323 + inline Void NetworkEarnFromCriminalMastermind(Any p0, Any p1, Any p2) { return _i(0xFA009A62990671D4, p0, p1, p2); } // 0xfa009a62990671d4B1290 + inline Void NetworkEarnHeistAward(Any p0, Any p1, Any p2) { return _i(0x9D4FDBB035229669, p0, p1, p2); } // 0x9d4fdbb035229669B1290 + inline Void NetworkEarnFirstTimeBonus(Any p0, Any p1, Any p2) { return _i(0x11B0A20C493F7E36, p0, p1, p2); } // 0x11b0a20c493f7e36B1290 + inline Void NetworkEarnGoon(Any p0, Any p1, Any p2) { return _i(0xCDA1C62BE2777802, p0, p1, p2); } // 0xcda1c62be2777802B573 + inline Void NetworkEarnBoss(Any p0, Any p1, Any p2) { return _i(0x08B0CA7A6AB3AC32, p0, p1, p2); } // 0x08b0ca7a6ab3ac32B573 + inline Void NetworkEarnAgency(Any p0, Any p1, Any p2, Any p3) { return _i(0x0CB1BE0633C024A8, p0, p1, p2, p3); } // 0x0cb1be0633c024a8B573 + inline Void NetworkEarnFromWarehouse(int amount, int id) { return _i(0x3E4ADAFF1830F146, amount, id); } // 0x3e4adaff1830f146B757 + inline Void NetworkEarnFromContraband(int amount, Any p1) { return _i(0xECA658CE2A4E5A72, amount, p1); } // 0xeca658ce2a4e5a72B757 + inline Void NetworkEarnFromDestroyingContraband(Any p0, Any p1, Any p2) { return _i(0x84C0116D012E8FC2, p0, p1, p2); } // 0x84c0116d012e8fc2B757 + inline Void NetworkEarnFromSmugglerWork(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0x6B7E4FB50D5F3D65, p0, p1, p2, p3, p4, p5); } // 0x6b7e4fb50d5f3d65B1180 + inline Void NetworkEarnFromHangarTrade(Any p0, Any p1) { return _i(0x31BA138F6304FB9F, p0, p1); } // 0x31ba138f6304fb9fB1180 + inline Void NetworkEarnPurchaseClubHouse(Any p0, Any p1) { return _i(0x55A1E095DB052FA5, p0, p1); } // 0x55a1e095db052fa5B877 + inline Void NetworkEarnFromBusinessProduct(int amount, Any p1, Any p2, Any p3) { return _i(0x8586789730B10CAF, amount, p1, p2, p3); } // 0x8586789730b10cafB877 + inline Void NetworkEarnFromVehicleExport(int amount, Any p1, Any p2) { return _i(0xEDEAD9A91EC768B3, amount, p1, p2); } // 0xedead9a91ec768b3B944 + inline Void NetworkEarnSmugglerAgency(int amount, Any p1, Any p2, Any p3) { return _i(0xDEE612F2D71B0308, amount, p1, p2, p3); } // 0xdee612f2d71b0308B1180 + inline Void NetworkEarnBountyHunterReward(Any p0) { return _i(0xF6B170F9A02E9E87, p0); } // 0xf6b170f9a02e9e87B1493 + inline Void NetworkEarnFromBusinessBattle(Any p0) { return _i(0x42FCE14F50F27291, p0); } // 0x42fce14f50f27291B1493 + inline Void NetworkEarnFromClubManagementParticipation(Any p0, int p1) { return _i(0xA75EAC69F59E96E7, p0, p1); } // 0xa75eac69f59e96e7B1493 + inline Void NetworkEarnFromFmbbPhonecallMission(Any p0) { return _i(0xC5156361F26E2212, p0); } // 0xc5156361f26e2212B1493 + inline Void NetworkEarnFromBusinessHubSell(Any p0, Any p1, Any p2) { return _i(0x0B39CF0D53F1C883, p0, p1, p2); } // 0x0b39cf0d53f1c883B1493 + inline Void NetworkEarnFromFmbbBossWork(Any p0) { return _i(0x1FDA0AA679C9919B, p0); } // 0x1fda0aa679c9919bB1493 + inline Void NetworkEarnFmbbWageBonus(Any p0) { return _i(0xFFFBA1B1F7C0B6F4, p0); } // 0xfffba1b1f7c0b6f4B1493 + inline BOOL NetworkCanSpendMoney(Any p0, BOOL p1, BOOL p2, BOOL p3, Any p4, Any p5) { return _i(0xAB3CAA6B422164DA, p0, p1, p2, p3, p4, p5); } // 0xab3caa6b422164da0x5aa379d9B323 + inline BOOL NetworkCanSpendMoney2(Any p0, BOOL p1, BOOL p2, BOOL p3, Any* p4, Any p5, Any p6) { return _i(0x7303E27CC6532080, p0, p1, p2, p3, p4, p5, p6); } // 0x7303e27cc6532080B323 + inline Void NetworkBuyItem(int amount, Hash item, Any p2, Any p3, BOOL p4, String item_name, Any p6, Any p7, Any p8, BOOL p9) { return _i(0xF0077C797F66A355, amount, item, p2, p3, p4, item_name, p6, p7, p8, p9); } // 0xf0077c797f66a3550xa07b6368B323 + inline Void NetworkSpentTaxi(int amount, BOOL p1, BOOL p2, Any p3, Any p4) { return _i(0x17C3A7D31EAE39F9, amount, p1, p2, p3, p4); } // 0x17c3a7d31eae39f90x1f3db3e3B323 + inline Void NetworkPayEmployeeWage(Any p0, BOOL p1, BOOL p2) { return _i(0x5FD5ED82CBBE9989, p0, p1, p2); } // 0x5fd5ed82cbbe99890xbe70849bB323 + inline Void NetworkPayMatchEntryFee(int amount, String matchId, BOOL p2, BOOL p3) { return _i(0x9346E14F2AF74D46, amount, matchId, p2, p3); } // 0x9346e14f2af74d460x224a3488B323 + inline Void NetworkSpentBetting(int amount, int p1, String matchId, BOOL p3, BOOL p4) { return _i(0x1C436FD11FFA692F, amount, p1, matchId, p3, p4); } // 0x1c436fd11ffa692f0xf8a07513B323 + inline Void NetworkSpentWager(Any p0, Any p1, int amount) { return _i(0xD99DB210089617FE, p0, p1, amount); } // 0xd99db210089617feB573 + inline Void NetworkSpentInStripclub(Any p0, BOOL p1, Any p2, BOOL p3) { return _i(0xEE99784E4467689C, p0, p1, p2, p3); } // 0xee99784e4467689c0x8957038eB323 + inline Void NetworkBuyHealthcare(int cost, BOOL p1, BOOL p2) { return _i(0xD9B067E55253E3DD, cost, p1, p2); } // 0xd9b067e55253e3dd0x832150e5B323 + // p1 = 0 (always) + // p2 = 1 (always) + inline Void NetworkBuyAirstrike(int cost, BOOL p1, BOOL p2, Any p3) { return _i(0x763B4BD305338F19, cost, p1, p2, p3); } // 0x763b4bd305338f190x40470683B323 + inline Void NetworkBuyBackupGang(int p0, int p1, BOOL p2, BOOL p3, int npcProvider) { return _i(0xA3EDDAA42411D3B9, p0, p1, p2, p3, npcProvider); } // 0xa3eddaa42411d3b90x2ad2ec51B323 + // p1 = 0 (always) + // p2 = 1 (always) + inline Void NetworkBuyHeliStrike(int cost, BOOL p1, BOOL p2, Any p3) { return _i(0x81AA4610E3FD3A69, cost, p1, p2, p3); } // 0x81aa4610e3fd3a690x047547d4B323 + inline Void NetworkSpentAmmoDrop(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0xB162DC95C0A3317B, p0, p1, p2, p3); } // 0xb162dc95c0a3317b0x4b643076B323 + // p1 is just an assumption. p2 was false and p3 was true. + inline Void NetworkBuyBounty(int amount, Player victim, BOOL p2, BOOL p3, Any p4) { return _i(0x7B718E197453F2D9, amount, victim, p2, p3, p4); } // 0x7b718e197453f2d90xcb89cbe0B323 + inline Void NetworkBuyProperty(int cost, Hash propertyName, BOOL p2, BOOL p3) { return _i(0x650A08A280870AF6, cost, propertyName, p2, p3); } // 0x650a08a280870af60x7d479aabB323 + inline Void NetworkBuySmokes(int p0, BOOL p1, BOOL p2) { return _i(0x75AF80E61248EEBD, p0, p1, p2); } // 0x75af80e61248eebd0xc0ab03ebB323 + inline Void NetworkSpentHeliPickup(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0x7BF1D73DB2ECA492, p0, p1, p2, p3); } // 0x7bf1d73db2eca4920x27eebcabB323 + inline Void NetworkSpentBoatPickup(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0x524EE43A37232C00, p0, p1, p2, p3); } // 0x524ee43a37232c000xb241cabdB323 + inline Void NetworkSpentBullShark(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0xA6DD8458CE24012C, p0, p1, p2, p3); } // 0xa6dd8458ce24012c0xde7d398cB323 + inline Void NetworkSpentCashDrop(int amount, BOOL p1, BOOL p2) { return _i(0x289016EC778D60E0, amount, p1, p2); } // 0x289016ec778d60e00x87bd1d11B323 + // Only used once in a script (am_contact_requests) + // p1 = 0 + // p2 = 1 + inline Void NetworkSpentHireMugger(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0xE404BFB981665BF0, p0, p1, p2, p3); } // 0xe404bfb981665bf00xe792c4a5B323 + inline Void NetworkSpentRobbedByMugger(int amount, BOOL p1, BOOL p2, Any p3) { return _i(0x995A65F15F581359, amount, p1, p2, p3); } // 0x995a65f15f5813590xe6aaa0d5B323 + inline Void NetworkSpentHireMercenary(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0xE7B80E2BF9D80BD6, p0, p1, p2, p3); } // 0xe7b80e2bf9d80bd60x99cf02c4B323 + inline Void NetworkSpentBuyWantedlevel(Any p0, Any* p1, BOOL p2, BOOL p3, Any p4) { return _i(0xE1B13771A843C4F6, p0, p1, p2, p3, p4); } // 0xe1b13771a843c4f60xe7cb4f95B323 + inline Void NetworkSpentBuyOfftheradar(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0xA628A745E2275C5D, p0, p1, p2, p3); } // 0xa628a745e2275c5d0x20ddcf2fB323 + inline Void NetworkSpentBuyRevealPlayers(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0x6E176F1B18BC0637, p0, p1, p2, p3); } // 0x6e176f1b18bc06370x2f7836e2B323 + inline Void NetworkSpentCarwash(Any p0, Any p1, Any p2, BOOL p3, BOOL p4) { return _i(0xEC03C719DB2F4306, p0, p1, p2, p3, p4); } // 0xec03c719db2f43060x8283e028B323 + inline Void NetworkSpentCinema(Any p0, Any p1, BOOL p2, BOOL p3) { return _i(0x6B38ECB05A63A685, p0, p1, p2, p3); } // 0x6b38ecb05a63a6850x1100caf5B323 + inline Void NetworkSpentTelescope(Any p0, BOOL p1, BOOL p2) { return _i(0x7FE61782AD94CC09, p0, p1, p2); } // 0x7fe61782ad94cc090xae7ff044B323 + inline Void NetworkSpentHoldups(Any p0, BOOL p1, BOOL p2) { return _i(0xD9B86B9872039763, p0, p1, p2); } // 0xd9b86b98720397630x1b3803b1B323 + inline Void NetworkSpentBuyPassiveMode(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0x6D3A430D1A809179, p0, p1, p2, p3); } // 0x6d3a430d1a8091790x7e97c92cB323 + inline Void NetworkSpentBankInterest(int p0, BOOL p1, BOOL p2) { return _i(0xCA230C9682556CF1, p0, p1, p2); } // 0xca230c9682556cf10xf02e92d7B323 + inline Void NetworkSpentProstitutes(Any p0, BOOL p1, BOOL p2) { return _i(0xB21B89501CFAC79E, p0, p1, p2); } // 0xb21b89501cfac79e0x78436d07B323 + inline Void NetworkSpentArrestBail(Any p0, BOOL p1, BOOL p2) { return _i(0x812F5488B1B2A299, p0, p1, p2); } // 0x812f5488b1b2a2990x5aee2fc1B323 + // According to how I understood this in the freemode script alone, + // The first parameter is determined by a function named, func_5749 within the freemode script which has a list of all the vehicles and a set price to return which some vehicles deals with globals as well. So the first parameter is basically the set in stone insurance cost it's gonna charge you for that specific vehicle model. + // + // The second parameter whoever put it was right, they call GetEntityModel with the vehicle as the paremeter. + // + // The third parameter is the network handle as they call their little struct<13> func or atleast how the script decompiled it to look which in lamens terms just returns the network handle of the previous owner based on DecorGetInt(vehicle, "Previous_Owner"). + // + // The fourth parameter is a BOOL that returns true/false depending on if your bank balance is greater then 0. + // + // The fifth and last parameter is a BOOL that returns true/false depending on if you have the money for the car based on the cost returned by func_5749. In the freemode script eg, + // BOOL hasTheMoney = MONEY::_GET_BANK_BALANCE() < carCost. + inline Void NetworkSpentPayVehicleInsurancePremium(int amount, Hash vehicleModel, Any* gamerHandle, BOOL notBankrupt, BOOL hasTheMoney) { return _i(0x9FF28D88C766E3E8, amount, vehicleModel, gamerHandle, notBankrupt, hasTheMoney); } // 0x9ff28d88c766e3e80x4e665bb2B323 + inline Void NetworkSpentCallPlayer(Any p0, Any* p1, BOOL p2, BOOL p3) { return _i(0xACDE7185B374177C, p0, p1, p2, p3); } // 0xacde7185b374177c0x1a89b5fcB323 + inline Void NetworkSpentBounty(Any p0, BOOL p1, BOOL p2) { return _i(0x29B260B84947DFCC, p0, p1, p2); } // 0x29b260b84947dfcc0x3401fc96B323 + inline Void NetworkSpentFromRockstar(int p0, BOOL p1, BOOL p2) { return _i(0x6A445B64ED7ABEB5, p0, p1, p2); } // 0x6a445b64ed7abeb50x54198922B323 + // Hardcoded to return 0. + inline int NetworkSpendEarnedFromBankAndWallets(int amount) { return _i(0x9B5016A6433A68C5, amount); } // 0x9b5016a6433a68c50xbd64f1b7B323 + // This isn't a hash collision. + inline String ProcessCashGift(int* p0, int* p1, String p2) { return _i(0x20194D48EAEC9A41, p0, p1, p2); } // 0x20194d48eaec9a410xc5d8b1e9B323 + inline Void NetworkSpentMoveSubmarine(Any p0, Any p1, Any p2) { return _i(0xCD4D66B43B1DD28D, p0, p1, p2); } // 0xcd4d66b43b1dd28dB2189 + inline Void NetworkSpentPlayerHealthcare(int p0, int p1, BOOL p2, BOOL p3) { return _i(0x7C99101F7FCE2EE5, p0, p1, p2, p3); } // 0x7c99101f7fce2ee50x3d96a21cB323 + inline Void NetworkSpentNoCops(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0xD5BB406F4E04019F, p0, p1, p2, p3); } // 0xd5bb406f4e04019f0x2e51c61cB323 + inline Void NetworkSpentCargoSourcing(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0x948705F6F9C50824, p0, p1, p2, p3, p4, p5); } // 0x948705f6f9c50824B2699 + inline Void NetworkSpentRequestJob(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0x8204DA7934DF3155, p0, p1, p2, p3); } // 0x8204da7934df31550xd57a5125B323 + inline Void NetworkSpentRequestHeist(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0x9D26502BB97BFE62, p0, p1, p2, p3); } // 0x9d26502bb97bfe620xf4287778B323 + // The first parameter is the amount spent which is store in a global when this native is called. The global returns 10. Which is the price for both rides. + // + // The last 3 parameters are, + // 2,0,1 in the am_ferriswheel.c + // 1,0,1 in the am_rollercoaster.c + // + inline Void NetworkBuyFairgroundRide(int amount, Any p1, BOOL p2, BOOL p3, Any p4) { return _i(0x8A7B3952DD64D2B5, amount, p1, p2, p3, p4); } // 0x8a7b3952dd64d2b50xd9622d64B323 + inline BOOL NetworkEconomyHasFixedCrazyNumbers() { return _i(0x7C4FCCD2E4DEB394); } // 0x7c4fccd2e4deb394B323 + inline Void NetworkSpentJobSkip(int amount, String matchId, BOOL p2, BOOL p3) { return _i(0x28F174A67B8D0C2F, amount, matchId, p2, p3); } // 0x28f174a67b8d0c2fB323 + inline BOOL NetworkSpentBossGoon(int amount, BOOL p1, BOOL p2) { return _i(0xFFBE02CD385356BD, amount, p1, p2); } // 0xffbe02cd385356bdB573 + inline Void NetworkSpendGoon(int p0, int p1, int amount) { return _i(0x08A1B82B91900682, p0, p1, amount); } // 0x08a1b82b91900682B573 + inline Void NetworkSpendBoss(Any p0, Any p1, Any p2) { return _i(0xDBC966A01C02BCA7, p0, p1, p2); } // 0xdbc966a01c02bca7B573 + inline Void NetworkSpentMoveYacht(int amount, BOOL p1, BOOL p2) { return _i(0xE7DF4E0545DFB56E, amount, p1, p2); } // 0xe7df4e0545dfb56eB573 + inline Void NetworkSpentRenameOrganization(Any p0, Any p1, Any p2, Any p3) { return _i(0xFC4EE00A7B3BFB76, p0, p1, p2, p3); } // 0xfc4ee00a7b3bfb76B573 + inline Void NetworkBuyContrabandMission(int p0, int p1, Hash p2, BOOL p3, BOOL p4) { return _i(0x30FD873ECE50E9F6, p0, p1, p2, p3, p4); } // 0x30fd873ece50e9f6B757 + inline Void NetworkSpentPaServiceHeli(Any p0, Any p1, Any p2, Any p3) { return _i(0x112209CE0290C03A, p0, p1, p2, p3); } // 0x112209ce0290c03aB757 + inline Void NetworkSpentPaServiceVehicle(Any p0, Any p1, Any p2, Any p3) { return _i(0xED5FD7AF10F5E262, p0, p1, p2, p3); } // 0xed5fd7af10f5e262B757 + inline Void NetworkSpentPaServiceSnack(Any p0, Any p1, Any p2, Any p3) { return _i(0x0D30EB83668E63C5, p0, p1, p2, p3); } // 0x0d30eb83668e63c5B757 + inline Void NetworkSpentPaServiceDancer(Any p0, Any p1, Any p2, Any p3) { return _i(0xB49ECA122467D05F, p0, p1, p2, p3); } // 0xb49eca122467d05fB757 + inline Void NetworkSpentPaServiceImpound(Any p0, Any p1, Any p2) { return _i(0xE23ADC6FCB1F29AE, p0, p1, p2); } // 0xe23adc6fcb1f29aeB757 + inline Void NetworkSpentPaHeliPickup(Any p0, Any p1, Any p2, Any p3) { return _i(0x0FE8E1FCD2B86B33, p0, p1, p2, p3); } // 0x0fe8e1fcd2b86b33B757 + inline Void NetworkSpentPurchaseOfficeProperty(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x69EF772B192614C1, p0, p1, p2, p3, p4); } // 0x69ef772b192614c1B757 + inline Void NetworkSpentUpgradeOfficeProperty(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x8E243837643D9583, p0, p1, p2, p3, p4); } // 0x8e243837643d9583B757 + inline Void NetworkSpentPurchaseWarehouseProperty(Any p0, Any p1, Any p2, Any p3) { return _i(0xBD0EFB25CCA8F97A, p0, p1, p2, p3); } // 0xbd0efb25cca8f97aB757 + inline Void NetworkSpentUpgradeWarehouseProperty(Any p0, Any p1, Any p2, Any p3) { return _i(0xA95F667A755725DA, p0, p1, p2, p3); } // 0xa95f667a755725daB757 + inline Void NetworkSpentPurchaseImpexpWarehouseProperty(int amount, Any* data, BOOL p2, BOOL p3) { return _i(0x33981D6804E62F49, amount, data, p2, p3); } // 0x33981d6804e62f49B944 + inline Void NetworkSpentUpgradeImpexpWarehouseProperty(Any p0, Any p1, Any p2, Any p3) { return _i(0x4128464231E3CA0B, p0, p1, p2, p3); } // 0x4128464231e3ca0bB944 + inline Void NetworkSpentTradeImpexpWarehouseProperty(Any p0, Any p1, Any p2, Any p3) { return _i(0x2FAB6614CE22E196, p0, p1, p2, p3); } // 0x2fab6614ce22e196B944 + inline Void NetworkSpentOrderWarehouseVehicle(Any p0, Any p1, Any p2, Any p3) { return _i(0x05F04155A226FBBF, p0, p1, p2, p3); } // 0x05f04155a226fbbfB757 + inline Void NetworkSpentOrderBodyguardVehicle(Any p0, Any p1, Any p2, Any p3) { return _i(0xE8B0B270B6E7C76E, p0, p1, p2, p3); } // 0xe8b0b270b6e7c76eB757 + inline Void NetworkSpentJukebox(Any p0, Any p1, Any p2, Any p3) { return _i(0x5BCDE0F640C773D2, p0, p1, p2, p3); } // 0x5bcde0f640c773d2B877 + inline Void NetworkSpentPurchaseClubHouse(Any p0, Any p1, Any p2, Any p3) { return _i(0x998E18CEB44487FC, p0, p1, p2, p3); } // 0x998e18ceb44487fcB877 + inline Void NetworkSpentUpgradeClubHouse(Any p0, Any p1, Any p2, Any p3) { return _i(0xFA07759E6FDDD7CF, p0, p1, p2, p3); } // 0xfa07759e6fddd7cfB877 + inline Void NetworkSpentPurchaseBusinessProperty(Any p0, Any p1, Any p2, Any p3) { return _i(0x6FD97159FE3C971A, p0, p1, p2, p3); } // 0x6fd97159fe3c971aB877 + inline Void NetworkSpentUpgradeBusinessProperty(Any p0, Any p1, Any p2, Any p3) { return _i(0x675D19C6067CAE08, p0, p1, p2, p3); } // 0x675d19c6067cae08B877 + inline Void NetworkSpentTradeBusinessProperty(Any p0, Any p1, Any p2, Any p3) { return _i(0xA51B086B0B2C0F7A, p0, p1, p2, p3); } // 0xa51b086b0b2c0f7aB877 + inline Void NetworkSpentMcAbility(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xD7CCCBA28C4ECAF0, p0, p1, p2, p3, p4); } // 0xd7cccba28c4ecaf0B877 + inline Void NetworkSpentPayBusinessSupplies(Any p0, Any p1, Any p2, Any p3) { return _i(0x0035BB914316F1E3, p0, p1, p2, p3); } // 0x0035bb914316f1e3B877 + inline Void NetworkSpentChangeAppearance(Any p0, Any p1, Any p2) { return _i(0x5F456788B05FAEAC, p0, p1, p2); } // 0x5f456788b05faeacB944 + inline Void NetworkSpentVehicleExportMods(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9) { return _i(0xA75CCF58A60A5FD1, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); } // 0xa75ccf58a60a5fd1B944 + inline Void NetworkSpentPurchaseOfficeGarage(Any p0, Any p1, Any p2, Any p3) { return _i(0xB4C2EC463672474E, p0, p1, p2, p3); } // 0xb4c2ec463672474eB944 + inline Void NetworkSpentUpgradeOfficeGarage(Any p0, Any p1, Any p2, Any p3) { return _i(0x2AFC2D19B50797F2, p0, p1, p2, p3); } // 0x2afc2d19b50797f2B944 + inline Void NetworkSpentImportExportRepair(Any p0, Any p1, Any p2) { return _i(0xC1952F3773BA18FE, p0, p1, p2); } // 0xc1952f3773ba18feB944 + inline Void NetworkSpentPurchaseHangar(Any p0, Any p1, Any p2, Any p3) { return _i(0xCCB339CC970452DA, p0, p1, p2, p3); } // 0xccb339cc970452daB1180 + inline Void NetworkSpentUpgradeHangar(Any p0, Any p1, Any p2, Any p3) { return _i(0x615EB504B0788DAF, p0, p1, p2, p3); } // 0x615eb504b0788dafB1180 + inline Void NetworkSpentHangarUtilityCharges(int amount, BOOL p1, BOOL p2) { return _i(0xB18AC2ECBB15CB6A, amount, p1, p2); } // 0xb18ac2ecbb15cb6aB1180 + inline Void NetworkSpentHangarStaffCharges(int amount, BOOL p1, BOOL p2) { return _i(0xB1F1346FD57685D7, amount, p1, p2); } // 0xb1f1346fd57685d7B1180 + inline Void NetworkSpentBuyTruck(Any p0, Any p1, Any p2, Any p3) { return _i(0xAC272C0AE01B4BD8, p0, p1, p2, p3); } // 0xac272c0ae01b4bd8B1103 + inline Void NetworkSpentUpgradeTruck(Any p0, Any p1, Any p2, Any p3) { return _i(0x365E877C61D6988B, p0, p1, p2, p3); } // 0x365e877c61d6988bB1103 + inline Void NetworkSpentBuyBunker(Any p0, Any p1, Any p2, Any p3) { return _i(0x12D148D26538D0F9, p0, p1, p2, p3); } // 0x12d148d26538d0f9B1103 + inline Void NetworkSpentUpradeBunker(Any p0, Any p1, Any p2, Any p3) { return _i(0x0C82D21A77C22D49, p0, p1, p2, p3); } // 0x0c82d21a77c22d49B1103 + inline Void NetworkEarnFromSellBunker(int amount, Hash bunkerHash) { return _i(0x9251B6ABF2D0A5B4, amount, bunkerHash); } // 0x9251b6abf2d0a5b4B1103 + inline Void NetworkSpentBallisticEquipment(int amount, BOOL p1, BOOL p2) { return _i(0x5D97630A8A0EF123, amount, p1, p2); } // 0x5d97630a8a0ef123B1103 + inline Void NetworkEarnRdrBonus(int amount, Any p1) { return _i(0x7A5349B773584675, amount, p1); } // 0x7a5349b773584675B1290 + inline Void NetworkEarnWagePayment(int amount, Any p1) { return _i(0x35F8DA0E8A31EF1B, amount, p1); } // 0x35f8da0e8a31ef1bB1180 + inline Void NetworkEarnWagePaymentBonus(int amount) { return _i(0x005ACA7100BD101D, amount); } // 0x005aca7100bd101dB1180 + inline Void NetworkSpentBuyBase(Any p0, Any p1, Any p2, Any p3) { return _i(0x4EA3F425C7744D21, p0, p1, p2, p3); } // 0x4ea3f425c7744d21B1290 + inline Void NetworkSpentUpgradeBase(Any p0, Any p1, Any p2, Any p3) { return _i(0x3DD3F33A5D55EA6F, p0, p1, p2, p3); } // 0x3dd3f33a5d55ea6fB1290 + inline Void NetworkSpentBuyTiltrotor(Any p0, Any p1, Any p2, Any p3) { return _i(0x0CCE73BC7A11E885, p0, p1, p2, p3); } // 0x0cce73bc7a11e885B1290 + inline Void NetworkSpentUpgradeTiltrotor(Any p0, Any p1, Any p2, Any p3) { return _i(0x165E135D6DFA2907, p0, p1, p2, p3); } // 0x165e135d6dfa2907B1290 + inline Void NetworkSpentEmployAssassins(Any p0, Any p1, Any p2, Any p3) { return _i(0x5BBBD92186E1F1C5, p0, p1, p2, p3); } // 0x5bbbd92186e1f1c5B1290 + inline Void NetworkSpendGangopsCannon(Any p0, Any p1, Any p2, Any p3) { return _i(0x771ADB0E7635B7BF, p0, p1, p2, p3); } // 0x771adb0e7635b7bfB1290 + inline Void NetworkSpendGangopsSkipMission(Any p0, Any p1, Any p2, Any p3) { return _i(0xDA947AE8880D5C18, p0, p1, p2, p3); } // 0xda947ae8880d5c18B1290 + inline Void NetworkSpendCasinoHeistSkipMission(Any p0, Any p1, Any p2, Any p3) { return _i(0x487009DD91D93429, p0, p1, p2, p3); } // 0x487009dd91d93429B1868 + inline Void NetworkEarnSellBase(int amount, Hash baseNameHash) { return _i(0x0E1E2FF3F4EC11AA, amount, baseNameHash); } // 0x0e1e2ff3f4ec11aaB1290 + inline Void NetworkEarnTargetRefund(int amount, int p1) { return _i(0x5B669CF2299A271F, amount, p1); } // 0x5b669cf2299a271fB1290 + inline Void NetworkEarnGangopsWages(int amount, int p1) { return _i(0x2DCB19ABAB0380A8, amount, p1); } // 0x2dcb19abab0380a8B1290 + inline Void NetworkEarnGangopsWagesBonus(int amount, int p1) { return _i(0x15BB2A5C757EB91F, amount, p1); } // 0x15bb2a5c757eb91fB1290 + inline Void NetworkEarnDarChallenge(int amount, Any p1) { return _i(0xCAC672087B4A24AB, amount, p1); } // 0xcac672087b4a24abB1290 + inline Void NetworkEarnDoomsdayFinaleBonus(int amount, Hash vehicleHash) { return _i(0x128A747F4A230952, amount, vehicleHash); } // 0x128a747f4a230952B1290 + inline Void NetworkEarnGangopsAward(int amount, String p1, Any p2) { return _i(0xA9A31475F530DFDA, amount, p1, p2); } // 0xa9a31475f530dfdaB1290 + inline Void NetworkEarnGangopsElite(int amount, String p1, int actIndex) { return _i(0x2597A0D4A4FC2C77, amount, p1, actIndex); } // 0x2597a0d4a4fc2c77B1290 + inline Void NetworkServiceEarnGangopsRivalDelivery(int earnedMoney) { return _i(0x1B882107C23A9022, earnedMoney); } // 0x1b882107c23a9022B1290 + inline Void NetworkSpendGangopsStartStrand(int type, int amount, BOOL p2, BOOL p3) { return _i(0xA19EC0786E326E06, type, amount, p2, p3); } // 0xa19ec0786e326e06B1290 + inline Void NetworkSpendGangopsTripSkip(int amount, BOOL p1, BOOL p2) { return _i(0x5ECE6FD7B4EC8D6A, amount, p1, p2); } // 0x5ece6fd7b4ec8d6aB1290 + inline Void NetworkEarnGangopsPrepParticipation(int amount) { return _i(0xED26584F6BDCBBFD, amount); } // 0xed26584f6bdcbbfdB1290 + inline Void NetworkEarnGangopsSetup(int amount, String p1) { return _i(0xA9160796D47A2CF8, amount, p1); } // 0xa9160796d47a2cf8B1290 + inline Void NetworkEarnGangopsFinale(int amount, String p1) { return _i(0x1C121FC9545E0D52, amount, p1); } // 0x1c121fc9545e0d52B1290 + inline Void NetworkSpendGangopsRepairCost(Any p0, Any p1, Any p2) { return _i(0x2A7CEC72C3443BCC, p0, p1, p2); } // 0x2a7cec72c3443bccB1290 + inline Void NetworkEarnNightclub(Any p0) { return _i(0xE0F82D68C7039158, p0); } // 0xe0f82d68c7039158B1493 + inline Void NetworkEarnNightclubDancing(Any p0) { return _i(0xB4DEAE67F35E2ACD, p0); } // 0xb4deae67f35e2acdB1493 + inline Void NetworkEarnBbEventBonus(int amount) { return _i(0xFDD8D2440DAF1590, amount); } // 0xfdd8d2440daf1590B1604 + inline Void NetworkSpentPurchaseHackerTruck(Any p0, Any p1, Any p2, Any p3) { return _i(0x2A93C46AAB1EACC9, p0, p1, p2, p3); } // 0x2a93c46aab1eacc9B1493 + inline Void NetworkSpentUpgradeHackerTruck(Any p0, Any p1, Any p2, Any p3) { return _i(0x226C284C830D0CA8, p0, p1, p2, p3); } // 0x226c284c830d0ca8B1493 + inline Void NetworkEarnHackerTruck(Any p0, int amount, Any p2, Any p3) { return _i(0xE8815FE993896AD3, p0, amount, p2, p3); } // 0xe8815fe993896ad3B1493 + inline Void NetworkSpentPurchaseNightclubAndWarehouse(Any p0, Any p1, Any p2, Any p3) { return _i(0xED76D195E6E3BF7F, p0, p1, p2, p3); } // 0xed76d195e6e3bf7fB1493 + inline Void NetworkSpentUpgradeNightclubAndWarehouse(Any p0, Any p1, Any p2, Any p3) { return _i(0x1DC9B749E7AE282B, p0, p1, p2, p3); } // 0x1dc9b749e7ae282bB1493 + inline Void NetworkEarnNightclubAndWarehouse(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6) { return _i(0xC6E74CF8C884C880, p0, p1, p2, p3, p4, p5, p6); } // 0xc6e74cf8c884c880B1493 + inline Void NetworkSpendNightclubAndWarehouse(Any p0, Any p1, Any p2, Any p3) { return _i(0x65482BFD0923C8A1, p0, p1, p2, p3); } // 0x65482bfd0923c8a1B1493 + inline Void NetworkSpentRdrHatchetBonus(int amount, BOOL p1, BOOL p2) { return _i(0xE284D46FFDB82E36, amount, p1, p2); } // 0xe284d46ffdb82e36B1493 + inline Void NetworkSpentNightclubEntryFee(Player player, int amount, Any p1, BOOL p2, BOOL p3) { return _i(0x876056684281655D, player, amount, p1, p2, p3); } // 0x876056684281655dB1493 + inline Void NetworkSpendNightclubBarDrink(int amount, Any p1, BOOL p2, BOOL p3) { return _i(0xDD21B016E4289465, amount, p1, p2, p3); } // 0xdd21b016e4289465B1493 + inline Void NetworkSpendBountyHunterMission(int amount, BOOL p1, BOOL p2) { return _i(0x1BEA0CD93470BB1F, amount, p1, p2); } // 0x1bea0cd93470bb1fB1493 + inline Void NetworkSpentRehireDj(int amount, Any p1, BOOL p2, BOOL p3) { return _i(0xF6C8A544E4CF14FC, amount, p1, p2, p3); } // 0xf6c8a544e4cf14fcB1493 + inline Void NetworkSpentArenaJoinSpectator(int amount, Any p1, BOOL p2, BOOL p3) { return _i(0x14EAEA58F93B55AF, amount, p1, p2, p3); } // 0x14eaea58f93b55afB1604 + inline Void NetworkEarnArenaSkillLevelProgression(int amount, Any p1) { return _i(0xE08256F972C7BB2C, amount, p1); } // 0xe08256f972c7bb2cB1604 + inline Void NetworkEarnArenaCareerProgression(int amount, Any p1) { return _i(0x0F99F70C61F14619, amount, p1); } // 0x0f99f70c61f14619B1604 + inline Void NetworkSpendMakeItRain(int amount, BOOL p1, BOOL p2) { return _i(0xE5F5A060439C2F5D, amount, p1, p2); } // 0xe5f5a060439c2f5dB1604 + inline Void NetworkSpendBuyArena(int amount, BOOL p1, BOOL p2, String p3) { return _i(0x40D5DA9550B7CB46, amount, p1, p2, p3); } // 0x40d5da9550b7cb46B1604 + inline Void NetworkSpendUpgradeArena(int amount, BOOL p1, BOOL p2, String p3) { return _i(0x037ABB06825D7AB1, amount, p1, p2, p3); } // 0x037abb06825d7ab1B1604 + // type either, 1 for cam spectate, 2 for drone + inline Void NetworkSpendArenaSpectatorBox(int amount, int type, BOOL p2, BOOL p3) { return _i(0x7049BF858601DC0F, amount, type, p2, p3); } // 0x7049bf858601dc0fB1604 + inline Void NetworkSpendSpinTheWheelPayment(int amount, Any p1, BOOL p2) { return _i(0x9A5BD1D0000B339C, amount, p1, p2); } // 0x9a5bd1d0000b339cB1604 + inline Void NetworkEarnSpinTheWheelCash(int amount) { return _i(0x676C48776CACBB5A, amount); } // 0x676c48776cacbb5aB1604 + inline Void NetworkSpendArenaPremium(int amount, BOOL p1, BOOL p2) { return _i(0x619496D837EFD920, amount, p1, p2); } // 0x619496d837efd920B1604 + inline Void NetworkEarnArenaWar(int amount, Any p1, Any p2, Any p3) { return _i(0x631F1CB8FB4130AA, amount, p1, p2, p3); } // 0x631f1cb8fb4130aaB1604 + inline Void NetworkEarnArenaWarAssassinateTarget(int amount) { return _i(0x5E7AE8AABE8B7C0D, amount); } // 0x5e7ae8aabe8b7c0dB1604 + inline Void NetworkEarnArenaWarEventCargo(int amount) { return _i(0xA82959062361B259, amount); } // 0xa82959062361b259B1604 + inline Void NetworkEarnRcTimeTrial(int amount) { return _i(0xDFF49EE984E7AAE8, amount); } // 0xdff49ee984e7aae8B1734 + inline Void NetworkEarnDailyObjectiveEvent(int amount) { return _i(0x5128DF14A5BB86FC, amount); } // 0x5128df14a5bb86fcB1734 + inline Void NetworkSpendCasinoMembership(int amount, BOOL p1, BOOL p2, int p3) { return _i(0xFBBE0570EDF39D46, amount, p1, p2, p3); } // 0xfbbe0570edf39d46B1734 + inline Void NetworkSpendBuyCasino(int amount, BOOL p1, BOOL p2, Any* data) { return _i(0x34A6FC4D06C4DA0F, amount, p1, p2, data); } // 0x34a6fc4d06c4da0fB1734 + inline Void NetworkSpendUpgradeCasino(int amount, BOOL p1, BOOL p2, Any* data) { return _i(0x4740D62BC1B4EBEA, amount, p1, p2, data); } // 0x4740d62bc1b4ebeaB1734 + inline Void NetworkSpendCasinoGeneric(int amount, Any p1, Any p2, Any p3, Any p4) { return _i(0x88BF9B612B84D3C3, amount, p1, p2, p3, p4); } // 0x88bf9b612b84d3c3B1734 + inline Void NetworkEarnCasinoTimeTrialWin(int amount) { return _i(0x0819DB99FD2FBBD8, amount); } // 0x0819db99fd2fbbd8B1734 + inline Void NetworkEarnCollectablesActionFigures(int amount) { return _i(0x5517F90043466049, amount); } // 0x5517f90043466049B1734 + inline Void NetworkEarnCasinoCollectableCompletedCollection(int amount) { return _i(0x83AD64F53F4E9483, amount); } // 0x83ad64f53f4e9483B1734 + inline Void NetworkEarnSellPrizeVehicle(int amount, Any p1, Any p2) { return _i(0x8BCB27A057DF7B7F, amount, p1, p2); } // 0x8bcb27a057df7b7fB1734 + inline Void NetworkEarnCasinoMissionReward(int amount) { return _i(0x566FD402B25787DE, amount); } // 0x566fd402b25787deB1734 + inline Void NetworkEarnCasinoStoryMissionReward(int amount) { return _i(0xAC95ED552157E092, amount); } // 0xac95ed552157e092B1734 + inline Void NetworkEarnCasinoMissionParticipation(int amount) { return _i(0x09E8F18641BE2575, amount); } // 0x09e8f18641be2575B1734 + inline Void NetworkEarnCasinoAward(int amount, Hash hash) { return _i(0x973A9781A34F8DEB, amount, hash); } // 0x973a9781a34f8debB1734 + inline Void NetworkSpendBuyArcade(Any p0, Any p1, Any p2, Any p3) { return _i(0x870289A558348378, p0, p1, p2, p3); } // 0x870289a558348378B1868 + inline Void NetworkSpendUpgradeArcade(Any p0, Any p1, Any p2, Any p3) { return _i(0x5574637681911FDA, p0, p1, p2, p3); } // 0x5574637681911fdaB1868 + inline Void NetworkSpendCasinoHeist(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9, Any p10) { return _i(0xD30E8392F407C328, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } // 0xd30e8392f407c328B1868 + inline Void NetworkSpendArcadeMgmt(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xB5B58E24868CB09E, p0, p1, p2, p3, p4); } // 0xb5b58e24868cb09eB1868 + inline Void NetworkSpendPlayArcade(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xEAD3D81F2C3A1458, p0, p1, p2, p3, p4); } // 0xead3d81f2c3a1458B1868 + inline Void NetworkSpendArcade(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x43AA7FAC4E6D6687, p0, p1, p2, p3, p4); } // 0x43aa7fac4e6d6687B1868 + inline Void NetworkEarnCasinoHeist(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6) { return _i(0x72E7C7B9615FA3C3, p0, p1, p2, p3, p4, p5, p6); } // 0x72e7c7b9615fa3c3B1868 + inline Void NetworkEarnUpgradeArcade(Any p0, Any p1, Any p2) { return _i(0x4C3B75694F7E0D9C, p0, p1, p2); } // 0x4c3b75694f7e0d9cB1868 + inline Void NetworkEarnArcade(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xD29334ED1A256DBF, p0, p1, p2, p3, p4); } // 0xd29334ed1a256dbfB1868 + inline Void NetworkEarnCollectables(Any p0, Any p1, Any p2) { return _i(0xA95CFB4E02390842, p0, p1, p2); } // 0xa95cfb4e02390842B1868 + inline Void NetworkEarnChallenge(int amount, Any p1, Any p2) { return _i(0x0DD362F14F18942A, amount, p1, p2); } // 0x0dd362f14f18942aB1868 + inline Void NetworkEarnCasinoHeistAwards(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x3EC7471E6909798A, p0, p1, p2, p3, p4); } // 0x3ec7471e6909798aB1868 + inline Void NetworkEarnCollectableItem(int amount, Any p1) { return _i(0x84FF63BD4966F33D, amount, p1); } // 0x84ff63bd4966f33dB1734 + inline Void NetworkEarnCollectableCompletedCollection(int amount, Any p1) { return _i(0x5C9B198AF5A54FA6, amount, p1); } // 0x5c9b198af5a54fa6B2060 + inline Void NetworkEarnYatchMission(int amount, Any p1) { return _i(0xDE68E30D89F97132, amount, p1); } // 0xde68e30d89f97132B2060 + inline Void NetworkEarnDispatchCall(int amount, Any p1) { return _i(0xE2E244AB823B4483, amount, p1); } // 0xe2e244ab823b4483B2060 + inline Void NetworkSpendBeachParty(Any p0) { return _i(0x54ABA22FA6371249, p0); } // 0x54aba22fa6371249B2189 + inline Void NetworkSpendSubmarine(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0x6C8BC1488527AAAB, p0, p1, p2, p3, p4, p5); } // 0x6c8bc1488527aaabB2189 + inline Void NetworkSpendCasinoClub(int amount1, Any p1, BOOL p2, Any p3, int p4, int p5, int p6, int amount2, Any p8) { return _i(0xC991C255AA6D90B2, amount1, p1, p2, p3, p4, p5, p6, amount2, p8); } // 0xc991c255aa6d90b2B2189 + inline Void NetworkSpendBuySub(Any p0, Any p1, Any p2, Any p3) { return _i(0x90CD7C6871FBF1B4, p0, p1, p2, p3); } // 0x90cd7c6871fbf1b4B2189 + inline Void NetworkSpendUpgradeSub(Any p0, Any p1, Any p2, Any p3) { return _i(0x89049A84065CE68E, p0, p1, p2, p3); } // 0x89049a84065ce68eB2189 + inline Void NetworkSpendIslandHeist(Any p0, Any p1, Any p2, Any p3) { return _i(0xE86689E5F82DE429, p0, p1, p2, p3); } // 0xe86689e5f82de429B2189 + inline Void NetworkEarnIslandHeist(int amount1, Any p1, Any p2, Any p3, int amount2, int p5) { return _i(0xD21D111C46BA9F15, amount1, p1, p2, p3, amount2, p5); } // 0xd21d111c46ba9f15B2189 + inline Void NetworkEarnBeachPartyLostFound(Any p0, Any p1, Any p2) { return _i(0xA51338E0DCCD4065, p0, p1, p2); } // 0xa51338e0dccd4065B2189 + inline Void NetworkEarnFromIslandHeistDjMission(Any p0, Any p1) { return _i(0xE2BB399D90942091, p0, p1); } // 0xe2bb399d90942091B2189 + inline Void NetworkSpendCarClubMembership(int amount1, Any p1, Any p2, int amount2, Any p4) { return _i(0x1464E17207CD36E2, amount1, p1, p2, amount2, p4); } // 0x1464e17207cd36e2B2372 + inline Void NetworkSpendCarClubBar(Any p0, BOOL p1, BOOL p2, Any p3) { return _i(0x925227803A0EAA1B, p0, p1, p2, p3); } // 0x925227803a0eaa1bB2372 + inline Void NetworkSpendAutoshopModify(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x9BEA350D7C48061B, p0, p1, p2, p3, p4); } // 0x9bea350d7c48061bB2372 + inline Void NetworkSpendCarClubTakeover(Any p0, Any p1, Any p2, Any p3) { return _i(0xD1E46824E6FB92B5, p0, p1, p2, p3); } // 0xd1e46824e6fb92b5B2372 + inline Void NetworkSpendBuyAutoshop(Any p0, Any p1, Any p2, Any p3) { return _i(0xEEB7E5D1FEB20869, p0, p1, p2, p3); } // 0xeeb7e5d1feb20869B2372 + inline Void NetworkSpendUpgradeAutoshop(Any p0, Any p1, Any p2, Any p3) { return _i(0xDD829AA198FDC46C, p0, p1, p2, p3); } // 0xdd829aa198fdc46cB2372 + inline Void NetworkEarnAutoshopBusiness(Any p0, Any p1, Any p2) { return _i(0x36A7FD5A7194B03E, p0, p1, p2); } // 0x36a7fd5a7194b03eB2372 + inline Void NetworkEarnAutoshopIncome(Any p0, int p1) { return _i(0xC66D1CF99ED7FE25, p0, p1); } // 0xc66d1cf99ed7fe25B2372 + inline Void NetworkEarnCarclubMembership(Any p0) { return _i(0xBC6227792A188E2E, p0); } // 0xbc6227792a188e2eB2372 + inline Void NetworkEarnDailyVehicle(Any p0, Any p1) { return _i(0x533073E8A596008C, p0, p1); } // 0x533073e8a596008cB2372 + inline Void NetworkEarnDailyVehicleBonus(Any p0) { return _i(0xFE65AFE7308E32B2, p0); } // 0xfe65afe7308e32b2B2372 + inline Void NetworkEarnTunerAward(Any p0, Any p1, Any p2) { return _i(0xB846F547D3792DF6, p0, p1, p2); } // 0xb846f547d3792df6B2372 + inline Void NetworkEarnTunerRobbery(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xBCB266247193AC61, p0, p1, p2, p3, p4); } // 0xbcb266247193ac61B2372 + inline Void NetworkEarnUpgradeAutoshop(Any p0, Any p1) { return _i(0xC10322A8D3E061EE, p0, p1); } // 0xc10322a8d3e061eeB2372 + inline Void NetworkSpendInteractionMenuAbility(Any p0, Any p1, Any p2, Any p3) { return _i(0x93AA4165CB67E925, p0, p1, p2, p3); } // 0x93aa4165cb67e925B2372 + inline Void NetworkSpendSetCommonFields(Any p0, Any p1, Any p2, BOOL p3) { return _i(0xB9F7A469460E7A4A, p0, p1, p2, p3); } // 0xb9f7a469460e7a4aB2372 + inline Void NetworkSpendSetDiscount(BOOL p0) { return _i(0x7E2F4E8F44CAF4E0, p0); } // 0x7e2f4e8f44caf4e0B2699 + inline Void NetworkSpendBuyAgency(Any p0, Any p1, Any p2, Any p3) { return _i(0xEA8CD3C9B3C35884, p0, p1, p2, p3); } // 0xea8cd3c9b3c35884B2545 + inline Void NetworkSpendUpgradeAgency(Any p0, Any p1, Any p2, Any p3) { return _i(0x6CCA64840589A3B6, p0, p1, p2, p3); } // 0x6cca64840589a3b6B2545 + inline Void NetworkSpendAgency(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x1B2120405080125C, p0, p1, p2, p3, p4); } // 0x1b2120405080125cB2545 + inline Void NetworkSpendHidden(Any p0, Any p1, Any p2, Any p3) { return _i(0xBF8793B91EA094A7, p0, p1, p2, p3); } // 0xbf8793b91ea094a7B2545 + inline Void NetworkSpendSourceBike(Any p0, Any p1, Any p2, Any p3) { return _i(0xD9DF467CBE4398C8, p0, p1, p2, p3); } // 0xd9df467cbe4398c8B2545 + inline Void NetworkSpendCompSuv(Any p0, Any p1, Any p2, Any p3) { return _i(0xD86581F9E7CDA383, p0, p1, p2, p3); } // 0xd86581f9e7cda383B2545 + inline Void NetworkSpendSuvFstTrvl(int p0, BOOL p1, BOOL p2, Any p3) { return _i(0x61A2DF64ED2D396E, p0, p1, p2, p3); } // 0x61a2df64ed2d396eB2545 + inline Void NetworkSpendSupply(Any p0, Any p1, Any p2, Any p3) { return _i(0xEBD482B82ACB8BAD, p0, p1, p2, p3); } // 0xebd482b82acb8badB2545 + inline Void NetworkSpendBikeShop(Any p0, Any p1, Any p2, Any p3) { return _i(0x923AEA8E78F8DF0B, p0, p1, p2, p3); } // 0x923aea8e78f8df0bB2699 + inline Void NetworkSpendVehicleRequested(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x02D24A35A9CC3503, p0, p1, p2, p3, p4); } // 0x02d24a35a9cc3503B2699 + inline Void NetworkSpendGunrunning(Any p0, Any p1, Any p2, Any p3) { return _i(0x2CEB0E0BC2A77C05, p0, p1, p2, p3); } // 0x2ceb0e0bc2a77c05B2699 + inline Void NetworkEarnAgencySafe(Any p0) { return _i(0x663B4B9D11742A12, p0); } // 0x663b4b9d11742a12B2545 + inline Void NetworkEarnAwardContract(Any p0, Any p1) { return _i(0x146D4EB6D22A403F, p0, p1); } // 0x146d4eb6d22a403fB2545 + inline Void NetworkEarnAgencyContract(Any p0, Any p1) { return _i(0x38482AD49CB905C7, p0, p1); } // 0x38482ad49cb905c7B2545 + inline Void NetworkEarnAwardPhone(Any p0, Any p1) { return _i(0x7397A115030F1BE3, p0, p1); } // 0x7397a115030f1be3B2545 + inline Void NetworkEarnAgencyPhone(Any p0, Any p1, Any p2) { return _i(0xE29F3D5FA63B1B82, p0, p1, p2); } // 0xe29f3d5fa63b1b82B2545 + inline Void NetworkEarnAwardFixerMission(Any p0, Any p1) { return _i(0x88D6C327D6C57C45, p0, p1); } // 0x88d6c327d6c57c45B2545 + inline Void NetworkEarnFixerPrep(Any p0, Any p1) { return _i(0x6283E5DE4C4460C6, p0, p1); } // 0x6283e5de4c4460c6B2545 + inline Void NetworkEarnFixerFinale(Any p0, Any p1) { return _i(0xBA154373C5FE51E8, p0, p1); } // 0xba154373c5fe51e8B2545 + inline Void NetworkEarnFixerAgencyShortTrip(Any p0, Any p1) { return _i(0xF4A8E57460BF2037, p0, p1); } // 0xf4a8e57460bf2037B2545 + inline Void NetworkEarnAwardShortTrip(Any p0, Any p1) { return _i(0x5B4DBDED84D6A420, p0, p1); } // 0x5b4dbded84d6a420B2545 + inline Void NetworkEarnFixerRivalDelivery(Any p0, Any p1) { return _i(0x235D41210B3A1A5E, p0, p1); } // 0x235d41210b3a1a5eB2545 + inline Void NetworkEarnUpgradeAgency(Any p0, Any p1) { return _i(0xD07C7C3F1995108C, p0, p1); } // 0xd07c7c3f1995108cB2545 + inline Void NetworkSpendApartmentUtilities(int amount, BOOL p1, BOOL p2, Any* data) { return _i(0x1254B5B3925EFD3D, amount, p1, p2, data); } // 0x1254b5b3925efd3dB2545 + inline Void NetworkSpendBusinessPropertyFees(Any p0, Any p1, Any p2, Any p3) { return _i(0x92D1CFDA1227FF1C, p0, p1, p2, p3); } // 0x92d1cfda1227ff1cB2545 + inline Void NetworkEarnSightseeingReward(Any p0, Any p1, Any p2, Any p3) { return _i(0x45087AE480B233AC, p0, p1, p2, p3); } // 0x45087ae480b233acB2699 + inline Void NetworkEarnBikerShop(Any p0, Any p1) { return _i(0x2C5809EB9DF57257, p0, p1); } // 0x2c5809eb9df57257B2699 + inline Void NetworkEarnBiker(Any p0) { return _i(0x71BEC32FA466E105, p0); } // 0x71bec32fa466e105B2699 + inline Void NetworkYohanSourceGoods(Any p0, Any p1, Any p2, Any p3) { return _i(0x59498BC8B1C8B15C, p0, p1, p2, p3); } // 0x59498bc8b1c8b15cB2699 + inline Void NetworkSpendBuyMfgarage(Any p0, Any p1, Any p2, Any p3) { return _i(0xA2ED36DCF0FCA413, p0, p1, p2, p3); } // 0xa2ed36dcf0fca413B2802 + inline Void NetworkSpendUpgradeMfgarage(Any p0, Any p1, Any p2, Any p3) { return _i(0xCF8F346DDDC66643, p0, p1, p2, p3); } // 0xcf8f346dddc66643B2802 + inline Void NetworkSpendBuySupplies(int p0, BOOL p1, BOOL p2, int p3) { return _i(0xB48185C0CA67B16B, p0, p1, p2, p3); } // 0xb48185c0ca67b16bB2802 + inline Void NetworkSpendBuyAcidLab(Any p0, Any p1, Any p2, Any p3) { return _i(0xF1E26A7924327152, p0, p1, p2, p3); } // 0xf1e26a7924327152B2802 + inline Void NetworkSpendUpgradeAcidLabEquipment(Any p0, Any p1, Any p2, Any p3) { return _i(0x110EE9D486C23126, p0, p1, p2, p3); } // 0x110ee9d486c23126B2802 + inline Void NetworkSpendUpgradeAcidLabArmor(int p0, BOOL p1, BOOL p2, int p3) { return _i(0xA7D541C9ACD63133, p0, p1, p2, p3); } // 0xa7d541c9acd63133B2802 + inline Void NetworkSpendUpgradeAcidLabScoop(int p0, BOOL p1, BOOL p2, int p3) { return _i(0x2940558E05BCC2EC, p0, p1, p2, p3); } // 0x2940558e05bcc2ecB2802 + inline Void NetworkSpendUpgradeAcidLabMines(int p0, BOOL p1, BOOL p2, int p3) { return _i(0x4B99AB08C92C54E4, p0, p1, p2, p3); } // 0x4b99ab08c92c54e4B2802 + inline Void NetworkSpendRenameAcidLab(Any p0, Any p1, Any p2, Any p3) { return _i(0x842B1C5AF61ACDE9, p0, p1, p2, p3); } // 0x842b1c5af61acde9B2802 + inline Void NetworkSpendRenameAcidProduct(Any p0, Any p1, Any p2, Any p3) { return _i(0x446798F7495DD7D8, p0, p1, p2, p3); } // 0x446798f7495dd7d8B2802 + inline Void NetworkEarnAwardJuggaloMission(Any p0, Any p1) { return _i(0xDDF047577F1A02A7, p0, p1); } // 0xddf047577f1a02a7B2802 + inline Void NetworkEarnAwardAcidLab(Any p0, Any p1) { return _i(0xD1A8165767AD2D23, p0, p1); } // 0xd1a8165767ad2d23B2802 + inline Void NetworkEarnAwardDailyStash(Any p0, Any p1) { return _i(0xC30650FA74A19D02, p0, p1); } // 0xc30650fa74a19d02B2802 + inline Void NetworkEarnAwardDeadDrop(Any p0, Any p1) { return _i(0xD01EBAEA1F905EF6, p0, p1); } // 0xd01ebaea1f905ef6B2802 + inline Void NetworkEarnAwardRandomEvent(Any p0, Any p1) { return _i(0xBEAFBB1B98B7EF55, p0, p1); } // 0xbeafbb1b98b7ef55B2802 + inline Void NetworkEarnAwardTaxi(Any p0, Any p1) { return _i(0xA914768AD35CD3A5, p0, p1); } // 0xa914768ad35cd3a5B2802 + inline Void NetworkEarnStreetDealer(Any p0, Any p1) { return _i(0xA81017EE1324FDFE, p0, p1); } // 0xa81017ee1324fdfeB2802 + inline Void NetworkEarnSellAcid(Any p0, Any p1) { return _i(0x79B656937DF6DF5D, p0, p1); } // 0x79b656937df6df5dB2802 + inline Void NetworkEarnSetupParticipationAcidLab(Any p0, Any p1) { return _i(0xE3942D59E8A7F70D, p0, p1); } // 0xe3942d59e8a7f70dB2802 + inline Void NetworkEarnSourceParticipationAcidLab(Any p0, Any p1) { return _i(0x136F11B5DF1B304D, p0, p1); } // 0x136f11b5df1b304dB2802 + inline Void NetworkEarnSellParticipationAcidLab(Any p0, Any p1) { return _i(0xCA3EF9B09A8D76B4, p0, p1); } // 0xca3ef9b09a8d76b4B2802 + inline Void NetworkEarnJuggaloStoryMission(Any p0, Any p1) { return _i(0xE01D10BA8CD53621, p0, p1); } // 0xe01d10ba8cd53621B2802 + inline Void NetworkEarnJuggaloStoryMissionParticipation(Any p0, Any p1) { return _i(0x40FF6CCCC476185C, p0, p1); } // 0x40ff6cccc476185cB2802 + // JUGGALO_PHONE_MISSION... + inline Void NetworkEarnFooliganJob(Any p0, Any p1) { return _i(0xCE4452AE85F5E252, p0, p1); } // 0xce4452ae85f5e252B2802 + // JUGGALO_PHONE_MISSION_PARTICIPATION... + inline Void NetworkEarnFooliganJobParticipation(Any p0, Any p1) { return _i(0xC376B92D0E060970, p0, p1); } // 0xc376b92d0e060970B2802 + inline Void NetworkEarnTaxiJob(Any p0, Any p1) { return _i(0x991E1588FAD9019D, p0, p1); } // 0x991e1588fad9019dB2802 + inline Void NetworkEarnDailyStashHouseCompleted(Any p0, Any p1) { return _i(0xCABC9874AFA70D6D, p0, p1); } // 0xcabc9874afa70d6dB2802 + inline Void NetworkEarnDailyStashHouseParticipation(Any p0, Any p1) { return _i(0x9C0C6BD0F94CE391, p0, p1); } // 0x9c0c6bd0f94ce391B2802 + // Used for SERVICE_EARN_AVENGER_OPERATIONS & SERVICE_EARN_AVENGER_OPS_BONUS + inline Void NetworkEarnAvenger(int amount, int p1) { return _i(0x55F006B9D4A46C1D, amount, p1); } // 0x55f006b9d4a46c1dB2944 + inline Void NetworkEarnSmugglerOps(Any p0, Any p1, Any p2) { return _i(0xDEA273D5F8A9661A, p0, p1, p2); } // 0xdea273d5f8a9661aB2944 + inline Void NetworkEarnBonusObjective(int amount, Any p1, Any p2) { return _i(0xDCEF983C24191997, amount, p1, p2); } // 0xdcef983c24191997B2944 + inline Void NetworkEarnProgressHub(Any p0, Any p1) { return _i(0xF8332B06F0EECC9C, p0, p1); } // 0xf8332b06f0eecc9cB2944 + inline Void NetworkSpentAirFreight(int hangarCargoSourcingPrice, BOOL fromBank, BOOL fromBankAndWallet, int cost, int warehouseId, int warehouseSlot) { return _i(0x8C7E8D6F96C9E948, hangarCargoSourcingPrice, fromBank, fromBankAndWallet, cost, warehouseId, warehouseSlot); } // 0x8c7e8d6f96c9e948B2944 + inline Void NetworkSpentSkipCargoSourceSetup(int amount, BOOL fromBank, BOOL fromBankAndWallet, int cost) { return _i(0xED1B407BADA42CEC, amount, fromBank, fromBankAndWallet, cost); } // 0xed1b407bada42cecB2944 + // Hash p3 = STEALTH_MODULE + inline Void NetworkSpentStealthModule(int amount, BOOL fromBank, BOOL fromBankAndWallet, Hash p3) { return _i(0x95CE79A6939C537A, amount, fromBank, fromBankAndWallet, p3); } // 0x95ce79a6939c537aB2944 + // Hash p3 = MISSILE_JAMMER + inline Void NetworkSpentMissileJammer(int amount, BOOL fromBank, BOOL fromBankAndWallet, Hash p3) { return _i(0xD687100F616163F4, amount, fromBank, fromBankAndWallet, p3); } // 0xd687100f616163f4B2944 + inline Void NetworkSpentGeneric(int price, BOOL p1, BOOL p2, Hash stat, Hash spent, String p5, String p6, Any* data) { return _i(0x2803B027479FB640, price, p1, p2, stat, spent, p5, p6, data); } // 0x2803b027479fb640B3095 + // _NETWORK_EARN_G* + inline Void NetworkEarnGeneric(int amount, Hash earn, String p2, String p3, Any* data) { return _i(0xBF7B5BB7ED890380, amount, earn, p2, p3, data); } // 0xbf7b5bb7ed890380B3095 + inline Void NetworkClearTransactionTelemetryNonce() { return _i(0xE03B9F95556E48E9); } // 0xe03b9f95556e48e9B3095 + inline int NetworkGetVcBankBalance() { return _i(0x76EF28DA05EA395A); } // 0x76ef28da05ea395a0x16184fb5B323 + inline int NetworkGetVcWalletBalance(int characterSlot) { return _i(0xA40F9C2623F6A8B5, characterSlot); } // 0xa40f9c2623f6a8b50x4f5b781cB323 + inline int NetworkGetVcBalance() { return _i(0x5CBAD97E059E1B94); } // 0x5cbad97e059e1b940xadf8f882B323 + inline int NetworkGetEvcBalance() { return _i(0x5D1E75F91C07DEE5); } // 0x5d1e75f91c07dee50xf1edb7f4B323 + inline int NetworkGetPvcBalance() { return _i(0x4F54F3B6C202FB4E); } // 0x4f54f3b6c202fb4e0x56485b56B323 + inline String NetworkGetStringWalletBalance(int characterSlot) { return _i(0xF9B10B529DCFB33B, characterSlot); } // 0xf9b10b529dcfb33b0xc1a11435B323 + inline String NetworkGetStringBankBalance() { return _i(0xA6FA3979BED01B81); } // 0xa6fa3979bed01b810xaa7ea3bdB323 + inline String NetworkGetStringBankWalletBalance(int character) { return _i(0x700AF71AE615E6DD, character); } // 0x700af71ae615e6dd0x7d4fd28cB323 + // Returns true if wallet balance >= amount. + inline BOOL NetworkGetCanSpendFromWallet(int amount, int characterSlot) { return _i(0xED5AB8860415BABA, amount, characterSlot); } // 0xed5ab8860415baba0x0ea2188cB323 + // Returns true if bank balance >= amount. + inline BOOL NetworkGetCanSpendFromBank(int amount) { return _i(0xA31FD6A0865B6D14, amount); } // 0xa31fd6a0865b6d140xabed6020B323 + // Returns true if bank balance + wallet balance >= amount. + inline BOOL NetworkGetCanSpendFromBankAndWallet(int amount, int characterSlot) { return _i(0xDC18531D7019A535, amount, characterSlot); } // 0xdc18531d7019a5350xca23fd25B323 + // Retturns the same value as NetworkGetRemainingTransferBalance. + inline int NetworkGetPvcTransferBalance() { return _i(0x13A8DE2FD77D04F3); } // 0x13a8de2fd77d04f30xc670c814B323 + // Returns false if amount > wallet balance or daily transfer limit has been hit. + inline BOOL NetworkGetCanTransferCash(int amount) { return _i(0x08E8EEADFD0DC4A0, amount); } // 0x08e8eeadfd0dc4a00x03461981B323 + inline BOOL NetworkCanReceivePlayerCash(Any p0, Any p1, Any p2, Any p3) { return _i(0x5D17BE59D2123284, p0, p1, p2, p3); } // 0x5d17be59d21232840x41f5f10eB323 + // Returns the same value as NetworkGetPvcTransferBalance. + inline int NetworkGetRemainingTransferBalance() { return _i(0xEA560AC9EEB1E19B); } // 0xea560ac9eeb1e19b0xa9021211B323 + // Does nothing and always returns 0. + inline int WithdrawVc(int amount) { return _i(0xF70EFA14FE091429, amount); } // 0xf70efa14fe0914290x8b755993B323 + // Does nothing and always returns false. + inline BOOL DepositVc(int amount) { return _i(0xE260E0BB9CD995AC, amount); } // 0xe260e0bb9cd995ac0x8f266745B323 + // This function is hard-coded to always return 1. + inline BOOL HasVcWithdrawalCompleted(Any p0) { return _i(0xE154B48B68EF72BC, p0); } // 0xe154b48b68ef72bc0x531e4892B323 + // This function is hard-coded to always return 1. + inline BOOL WasVcWithdrawalSuccessful(Any p0) { return _i(0x6FCF8DDEA146C45B, p0); } // 0x6fcf8ddea146c45b0xb96c7abeB323 } namespace NETSHOPPING { - inline BOOL NetGameserverUseServerTransactions() { return _i(0x7D2708796355B20B); } // 0x7d2708796355b20bB1290 - inline BOOL NetGameserverCatalogItemIsValid(String name) { return _i(0xBD4D7EAF8A30F637, name); } // 0xbd4d7eaf8a30f637B323 - inline BOOL NetGameserverCatalogItemKeyIsValid(Hash hash) { return _i(0x247F0F73A182EA0B, hash); } // 0x247f0f73a182ea0bB323 - // bool is always true in game scripts - inline int NetGameserverGetPrice(Hash itemHash, Hash categoryHash, BOOL p2) { return _i(0xC27009422FCCA88D, itemHash, categoryHash, p2); } // 0xc27009422fcca88dB323 - inline BOOL NetGameserverCatalogIsValid() { return _i(0x3C4487461E9B0DCB); } // 0x3c4487461e9b0dcbB323 - inline BOOL NetGameserverIsCatalogCurrent() { return _i(0x2B949A1E6AEC8F6A); } // 0x2b949a1e6aec8f6aB323 - inline Hash NetGameserverGetCatalogCloudCrc() { return _i(0x85F6C9ABA1DE2BCF); } // 0x85f6c9aba1de2bcfB323 - inline BOOL NetGameserverRefreshServerCatalog() { return _i(0x357B152EF96C30B6); } // 0x357b152ef96c30b6B323 - inline BOOL NetGameserverRetrieveCatalogRefreshStatus(int* state) { return _i(0xCF38DAFBB49EDE5E, state); } // 0xcf38dafbb49ede5eB323 - inline BOOL NetGameserverInitSession() { return _i(0xE3E5A7C64CA2C6ED); } // 0xe3e5a7c64ca2c6edB323 - inline BOOL NetGameserverRetrieveInitSessionStatus(int* p0) { return _i(0x0395CB47B022E62C, p0); } // 0x0395cb47b022e62cB323 - inline BOOL NetGameserverStartSession(int charSlot) { return _i(0xA135AC892A58FC07, charSlot); } // 0xa135ac892a58fc07B323 - inline BOOL NetGameserverStartSessionPending() { return _i(0x72EB7BA9B69BF6AB); } // 0x72eb7ba9b69bf6abB323 - inline BOOL NetGameserverRetrieveStartSessionStatus(int* p0) { return _i(0x170910093218C8B9, p0); } // 0x170910093218c8b9B323 - inline BOOL NetGameserverRetrieveSessionErrorCode(int* p0) { return _i(0xC13C38E47EA5DF31, p0); } // 0xc13c38e47ea5df31B323 - inline BOOL NetGameserverIsSessionValid(int charSlot) { return _i(0xB24F0944DA203D9E, charSlot); } // 0xb24f0944da203d9eB323 - inline BOOL NetGameserverClearSession(int p0) { return _i(0x74A0FD0688F1EE45, p0); } // 0x74a0fd0688f1ee45B323 - inline BOOL NetGameserverSessionApplyReceivedData(int charSlot) { return _i(0x2F41D51BA3BCD1F1, charSlot); } // 0x2f41d51ba3bcd1f1B323 - inline BOOL NetGameserverIsSessionRefreshPending() { return _i(0x810E8431C0614BF9); } // 0x810e8431c0614bf9B323 - // Note: only one of the arguments can be set to true at a time - inline BOOL NetGameserverStartSessionRestart(BOOL inventory, BOOL playerbalance) { return _i(0x35A1B3E1D1315CFA, inventory, playerbalance); } // 0x35a1b3e1d1315cfaB323 - inline BOOL NetGameserverTransactionInProgress() { return _i(0x613F125BA3BD2EB9); } // 0x613f125ba3bd2eb9B372 - inline BOOL NetGameserverGetSessionStateAndStatus(int* p0, BOOL* p1) { return _i(0x897433D292B44130, p0, p1); } // 0x897433d292b44130B323 - inline BOOL NetGameserverBasketStart(int* transactionId, Hash categoryHash, Hash actionHash, int flags) { return _i(0x279F08B1A4B29B7E, transactionId, categoryHash, actionHash, flags); } // 0x279f08b1a4b29b7eB323 - inline BOOL NetGameserverBasketEnd() { return _i(0xFA336E7F40C0A0D0); } // 0xfa336e7f40c0a0d0B372 - inline BOOL NetGameserverBasketIsActive() { return _i(0xA65568121DF2EA26); } // 0xa65568121df2ea26B323 - inline BOOL NetGameserverBasketAddItem(Any* itemData, int quantity) { return _i(0xF30980718C8ED876, itemData, quantity); } // 0xf30980718c8ed876B323 - inline BOOL NetGameserverBasketIsFull() { return _i(0x27F76CC6C55AD30E); } // 0x27f76cc6c55ad30eB323 - inline BOOL NetGameserverBasketApplyServerData(Any p0, Any* p1) { return _i(0xE1A0450ED46A7812, p0, p1); } // 0xe1a0450ed46a7812B323 - inline BOOL NetGameserverCheckoutStart(int transactionId) { return _i(0x39BE7CEA8D9CC8E6, transactionId); } // 0x39be7cea8d9cc8e6B323 - inline BOOL NetGameserverBeginService(int* transactionId, Hash categoryHash, Hash itemHash, Hash actionTypeHash, int value, int flags) { return _i(0x3C5FD37B5499582E, transactionId, categoryHash, itemHash, actionTypeHash, value, flags); } // 0x3c5fd37b5499582eB323 - inline BOOL NetGameserverEndService(int transactionId) { return _i(0xE2A99A9B524BEFFF, transactionId); } // 0xe2a99a9b524befffB323 - inline BOOL NetGameserverDeleteCharacter(int slot, BOOL transfer, Hash reason) { return _i(0x51F1A8E48C3D2F6D, slot, transfer, reason); } // 0x51f1a8e48c3d2f6dB323 - inline int NetGameserverDeleteCharacterGetStatus() { return _i(0x0A6D923DFFC9BD89); } // 0x0a6d923dffc9bd89B323 - inline BOOL NetGameserverDeleteSetTelemetryNonceSeed() { return _i(0x112CEF1615A1139F); } // 0x112cef1615a1139fB323 - inline BOOL NetGameserverTransferBankToWallet(int charSlot, int amount) { return _i(0xD47A2C1BA117471D, charSlot, amount); } // 0xd47a2c1ba117471dB323 - inline BOOL NetGameserverTransferWalletToBank(int charSlot, int amount) { return _i(0xC2F7FE5309181C7D, charSlot, amount); } // 0xc2f7fe5309181c7dB323 - // Same as 0x350AA5EBC03D3BD2 - inline int NetGameserverTransferBankToWalletGetStatus() { return _i(0x23789E777D14CE44); } // 0x23789e777d14ce44B323 - // Same as 0x23789E777D14CE44 - inline int NetGameserverTransferWalletToBankGetStatus() { return _i(0x350AA5EBC03D3BD2); } // 0x350aa5ebc03d3bd2B323 - // Used to be NETWORK_SHOP_CASH_TRANSFER_SET_TELEMETRY_NONCE_SEED - inline BOOL NetGameserverTransferCashSetTelemetryNonceSeed() { return _i(0x498C1E05CE5F7877); } // 0x498c1e05ce5f7877B323 - inline BOOL NetGameserverSetTelemetryNonceSeed(int p0) { return _i(0x9507D4271988E1AE, p0); } // 0x9507d4271988e1aeB323 + inline BOOL NetGameserverUseServerTransactions() { return _i(0x7D2708796355B20B); } // 0x7d2708796355b20bB1290 + inline BOOL NetGameserverCatalogItemIsValid(String name) { return _i(0xBD4D7EAF8A30F637, name); } // 0xbd4d7eaf8a30f637B323 + inline BOOL NetGameserverCatalogItemKeyIsValid(Hash hash) { return _i(0x247F0F73A182EA0B, hash); } // 0x247f0f73a182ea0bB323 + // BOOL is always true in game scripts + inline int NetGameserverGetPrice(Hash itemHash, Hash categoryHash, BOOL p2) { return _i(0xC27009422FCCA88D, itemHash, categoryHash, p2); } // 0xc27009422fcca88dB323 + inline BOOL NetGameserverCatalogIsValid() { return _i(0x3C4487461E9B0DCB); } // 0x3c4487461e9b0dcbB323 + inline BOOL NetGameserverIsCatalogCurrent() { return _i(0x2B949A1E6AEC8F6A); } // 0x2b949a1e6aec8f6aB323 + inline Hash NetGameserverGetCatalogCloudCrc() { return _i(0x85F6C9ABA1DE2BCF); } // 0x85f6c9aba1de2bcfB323 + inline BOOL NetGameserverRefreshServerCatalog() { return _i(0x357B152EF96C30B6); } // 0x357b152ef96c30b6B323 + inline BOOL NetGameserverRetrieveCatalogRefreshStatus(int* state) { return _i(0xCF38DAFBB49EDE5E, state); } // 0xcf38dafbb49ede5eB323 + inline BOOL NetGameserverInitSession() { return _i(0xE3E5A7C64CA2C6ED); } // 0xe3e5a7c64ca2c6edB323 + inline BOOL NetGameserverRetrieveInitSessionStatus(int* p0) { return _i(0x0395CB47B022E62C, p0); } // 0x0395cb47b022e62cB323 + inline BOOL NetGameserverStartSession(int charSlot) { return _i(0xA135AC892A58FC07, charSlot); } // 0xa135ac892a58fc07B323 + inline BOOL NetGameserverStartSessionPending() { return _i(0x72EB7BA9B69BF6AB); } // 0x72eb7ba9b69bf6abB323 + inline BOOL NetGameserverRetrieveStartSessionStatus(int* p0) { return _i(0x170910093218C8B9, p0); } // 0x170910093218c8b9B323 + inline BOOL NetGameserverRetrieveSessionErrorCode(int* p0) { return _i(0xC13C38E47EA5DF31, p0); } // 0xc13c38e47ea5df31B323 + inline BOOL NetGameserverIsSessionValid(int charSlot) { return _i(0xB24F0944DA203D9E, charSlot); } // 0xb24f0944da203d9eB323 + inline BOOL NetGameserverClearSession(int p0) { return _i(0x74A0FD0688F1EE45, p0); } // 0x74a0fd0688f1ee45B323 + inline BOOL NetGameserverSessionApplyReceivedData(int charSlot) { return _i(0x2F41D51BA3BCD1F1, charSlot); } // 0x2f41d51ba3bcd1f1B323 + inline BOOL NetGameserverIsSessionRefreshPending() { return _i(0x810E8431C0614BF9); } // 0x810e8431c0614bf9B323 + // Note: only one of the arguments can be set to true at a time + inline BOOL NetGameserverStartSessionRestart(BOOL inventory, BOOL playerbalance) { return _i(0x35A1B3E1D1315CFA, inventory, playerbalance); } // 0x35a1b3e1d1315cfaB323 + inline BOOL NetGameserverTransactionInProgress() { return _i(0x613F125BA3BD2EB9); } // 0x613f125ba3bd2eb9B372 + inline BOOL NetGameserverGetSessionStateAndStatus(int* p0, BOOL* p1) { return _i(0x897433D292B44130, p0, p1); } // 0x897433d292b44130B323 + inline BOOL NetGameserverBasketStart(int* transactionId, Hash categoryHash, Hash actionHash, int flags) { return _i(0x279F08B1A4B29B7E, transactionId, categoryHash, actionHash, flags); } // 0x279f08b1a4b29b7eB323 + inline BOOL NetGameserverBasketEnd() { return _i(0xFA336E7F40C0A0D0); } // 0xfa336e7f40c0a0d0B372 + inline BOOL NetGameserverBasketIsActive() { return _i(0xA65568121DF2EA26); } // 0xa65568121df2ea26B323 + inline BOOL NetGameserverBasketAddItem(Any* itemData, int quantity) { return _i(0xF30980718C8ED876, itemData, quantity); } // 0xf30980718c8ed876B323 + inline BOOL NetGameserverBasketIsFull() { return _i(0x27F76CC6C55AD30E); } // 0x27f76cc6c55ad30eB323 + inline BOOL NetGameserverBasketApplyServerData(Any p0, Any* p1) { return _i(0xE1A0450ED46A7812, p0, p1); } // 0xe1a0450ed46a7812B323 + inline BOOL NetGameserverCheckoutStart(int transactionId) { return _i(0x39BE7CEA8D9CC8E6, transactionId); } // 0x39be7cea8d9cc8e6B323 + inline BOOL NetGameserverBeginService(int* transactionId, Hash categoryHash, Hash itemHash, Hash actionTypeHash, int value, int flags) { return _i(0x3C5FD37B5499582E, transactionId, categoryHash, itemHash, actionTypeHash, value, flags); } // 0x3c5fd37b5499582eB323 + inline BOOL NetGameserverEndService(int transactionId) { return _i(0xE2A99A9B524BEFFF, transactionId); } // 0xe2a99a9b524befffB323 + inline BOOL NetGameserverDeleteCharacter(int slot, BOOL transfer, Hash reason) { return _i(0x51F1A8E48C3D2F6D, slot, transfer, reason); } // 0x51f1a8e48c3d2f6dB323 + inline int NetGameserverDeleteCharacterGetStatus() { return _i(0x0A6D923DFFC9BD89); } // 0x0a6d923dffc9bd89B323 + inline BOOL NetGameserverDeleteSetTelemetryNonceSeed() { return _i(0x112CEF1615A1139F); } // 0x112cef1615a1139fB323 + inline BOOL NetGameserverTransferBankToWallet(int charSlot, int amount) { return _i(0xD47A2C1BA117471D, charSlot, amount); } // 0xd47a2c1ba117471dB323 + inline BOOL NetGameserverTransferWalletToBank(int charSlot, int amount) { return _i(0xC2F7FE5309181C7D, charSlot, amount); } // 0xc2f7fe5309181c7dB323 + // Same as 0x350AA5EBC03D3BD2 + inline int NetGameserverTransferBankToWalletGetStatus() { return _i(0x23789E777D14CE44); } // 0x23789e777d14ce44B323 + // Same as 0x23789E777D14CE44 + inline int NetGameserverTransferWalletToBankGetStatus() { return _i(0x350AA5EBC03D3BD2); } // 0x350aa5ebc03d3bd2B323 + // Used to be NETWORK_SHOP_CASH_TRANSFER_SET_TELEMETRY_NONCE_SEED + inline BOOL NetGameserverTransferCashSetTelemetryNonceSeed() { return _i(0x498C1E05CE5F7877); } // 0x498c1e05ce5f7877B323 + inline BOOL NetGameserverSetTelemetryNonceSeed(int p0) { return _i(0x9507D4271988E1AE, p0); } // 0x9507d4271988e1aeB323 } namespace NETWORK { - // Online version is defined here: update\update.rpf\common\data\version.txt - // - // Example: - // - // [ONLINE_VERSION_NUMBER] - // 1.33 - // - // _GetOnlineVersion() will return "1.33" - inline String GetOnlineVersion() { return _i(0xFCA9373EF340AC0A); } // 0xFCA9373EF340AC0A b323 - // Returns whether the player is signed into Social Club. - inline BOOL NetworkIsSignedIn() { return _i(0x054354A99211EB96); } // 0x054354a99211eb960xadd0b40fB323 - // Returns whether the game is not in offline mode. - // - // seemed not to work for some ppl - inline BOOL NetworkIsSignedOnline() { return _i(0x1077788E268557C2); } // 0x1077788e268557c20x6e5bdce2B323 - // This function is hard-coded to always return 1. - inline BOOL NetworkIsNpAvailable() { return _i(0xBD545D44CCE70597); } // 0xbd545d44cce70597B323 - // This function is hard-coded to always return 1. - inline BOOL NetworkIsNpPending() { return _i(0xEBCAB9E5048434F4); } // 0xebcab9e5048434f4B323 - // Hardcoded to return zero. - // - // ==== PS4 specific info ==== - // - // Returns some sort of unavailable reason: - // -1 = REASON_INVALID - // 0 = REASON_OTHER - // 1 = REASON_SYSTEM_UPDATE - // 2 = REASON_GAME_UPDATE - // 3 = REASON_SIGNED_OUT - // 4 = REASON_AGE - // 5 = REASON_CONNECTION - // - // ================================= - inline int NetworkGetNpUnavailableReason() { return _i(0x74FB3E29E6D10FA9); } // 0x74fb3e29e6d10fa9B323 - // This function is hard-coded to always return 1. - inline BOOL NetworkIsConnetedToNpPresence() { return _i(0x7808619F31FF22DB); } // 0x7808619f31ff22dbB323 - // This function is hard-coded to always return 0. - inline BOOL NetworkIsLoggedInToPsn() { return _i(0xA0FA4EC6A05DA44E); } // 0xa0fa4ec6a05da44eB323 - // Returns whether the signed-in user has valid Rockstar Online Services (ROS) credentials. - inline BOOL NetworkHasValidRosCredentials() { return _i(0x85443FF4C328F53B); } // 0x85443ff4c328f53b0x3fb40673B323 - inline BOOL NetworkIsRefreshingRosCredentials() { return _i(0x8D11E61A4ABF49CC); } // 0x8d11e61a4abf49cc0xbdc8f63eB323 - inline BOOL NetworkIsCloudAvailable() { return _i(0x9A4CF4F48AD77302); } // 0x9a4cf4f48ad773020xc7ff5afcB323 - inline BOOL NetworkHasSocialClubAccount() { return _i(0x67A5589628E0CFF6); } // 0x67a5589628e0cff60x66ec713fB323 - inline BOOL NetworkAreSocialClubPoliciesCurrent() { return _i(0xBA9775570DB788CF); } // 0xba9775570db788cf0x358d1d77B323 - // If you are host, returns true else returns false. - inline BOOL NetworkIsHost() { return _i(0x8DB296B814EDDA07); } // 0x8db296b814edda070xe46ac10fB323 - inline Player NetworkGetHostPlayerIndex() { return _i(0x8251FB94DC4FDFC8); } // 0x8251fb94dc4fdfc8B2612 - inline BOOL NetworkWasGameSuspended() { return _i(0x4237E822315D8BA9); } // 0x4237e822315d8ba9B323 - inline BOOL NetworkHaveOnlinePrivileges() { return _i(0x25CB5A9F37BFD063); } // 0x25cb5a9f37bfd0630xef63bfdfB323 - inline BOOL NetworkHasAgeRestrictions() { return _i(0x1353F87E89946207); } // 0x1353f87e89946207B323 - inline BOOL NetworkHaveUserContentPrivileges(int p0) { return _i(0x72D918C99BCACC54, p0); } // 0x72d918c99bcacc540x1f88819dB323 - inline BOOL NetworkHaveCommunicationPrivileges(int p0, Player player) { return _i(0xAEEF48CDF5B6CE7C, p0, player); } // 0xaeef48cdf5b6ce7c0x2d817a5eB323 - inline BOOL NetworkCheckOnlinePrivileges(Any p0, BOOL p1) { return _i(0x78321BEA235FD8CD, p0, p1); } // 0x78321bea235fd8cdB323 - inline BOOL NetworkCheckUserContentPrivileges(int p0, int p1, BOOL p2) { return _i(0x595F028698072DD9, p0, p1, p2); } // 0x595f028698072dd90xbb54aa3dB323 - inline BOOL NetworkCheckCommunicationPrivileges(int p0, int p1, BOOL p2) { return _i(0x83F28CE49FBBFFBA, p0, p1, p2); } // 0x83f28ce49fbbffba0xa79e5b05B323 - inline BOOL NetworkCheckTextCommunicationPrivileges(Any p0, Any p1, Any p2) { return _i(0x07EAB372C8841D99, p0, p1, p2); } // 0x07eab372c8841d99B1011 - inline BOOL NetworkIsUsingOnlinePromotion() { return _i(0x906CA41A4B74ECA4); } // 0x906ca41a4b74eca4B1493 - inline BOOL NetworkShouldShowPromotionAlertScreen() { return _i(0x023ACAB2DC9DC4A4); } // 0x023acab2dc9dc4a4B1493 - inline BOOL NetworkHasSocialNetworkingSharingPriv() { return _i(0x76BF03FADBF154F5); } // 0x76bf03fadbf154f50xeb864288B323 - inline int NetworkGetAgeGroup() { return _i(0x9614B71F8ADB982B); } // 0x9614b71f8adb982b0xab07cbbeB323 - inline BOOL NetworkCheckPrivileges(Any p0, Any p1, Any p2) { return _i(0x0CF6CC51AA18F0F8, p0, p1, p2); } // 0x0cf6cc51aa18f0f8B1180 - // Hardcoded to return false. - inline BOOL NetworkIsPrivilegeCheckInProgress() { return _i(0x64E5C4CC82847B73); } // 0x64e5c4cc82847b73B1734 - inline Void NetworkSetPrivilegeCheckResultNotNeeded() { return _i(0x1F7BC3539F9E0224); } // 0x1f7bc3539f9e0224B1180 - // Hardcoded to return true. - inline BOOL NetworkResolvePrivilegeUserContent() { return _i(0xDE9225854F37BF72); } // 0xde9225854f37bf72B2612 - inline BOOL NetworkHavePlatformSubscription() { return _i(0x5EA784D197556507); } // 0x5ea784d197556507B323 - inline BOOL NetworkIsPlatformSubscriptionCheckPending() { return _i(0xA8ACB6459542A8C8); } // 0xa8acb6459542a8c8B323 - inline Void NetworkShowAccountUpgradeUi() { return _i(0x83FE8D7229593017); } // 0x83fe8d7229593017B323 - inline BOOL NetworkIsShowingSystemUiOrRecentlyRequestedUpsell() { return _i(0x7788DFE15016A182); } // 0x7788dfe15016a182B2612 - inline BOOL NetworkNeedToStartNewGameButBlocked() { return _i(0x53C10C8BD774F2C9); } // 0x53c10c8bd774f2c9B1011 - inline BOOL NetworkCanBail() { return _i(0x580CE4438479CC61); } // 0x580ce4438479cc610x60e1fedfB323 - inline Void NetworkBail(int p0, int p1, int p2) { return _i(0x95914459A87EBA28, p0, p1, p2); } // 0x95914459a87eba280x87d79a04B323 - inline Void NetworkOnReturnToSinglePlayer() { return _i(0x283B6062A2C01E9B); } // 0x283b6062a2c01e9b0x96e28fe2B323 - inline BOOL NetworkTransitionStart(int p0, Any p1, Any p2, Any p3) { return _i(0x8B4FFC790CA131EF, p0, p1, p2, p3); } // 0x8b4ffc790ca131efB617 - inline BOOL NetworkTransitionAddStage(Hash hash, int p1, int p2, int state, int p4) { return _i(0xC3BFED92026A2AAD, hash, p1, p2, state, p4); } // 0xc3bfed92026a2aadB617 - inline BOOL NetworkTransitionFinish(Any p0, Any p1, Any p2) { return _i(0x04918A41BC9B8157, p0, p1, p2); } // 0x04918a41bc9b8157B617 - // 11 - Need to download tunables. - // 12 - Need to download background script. - // - // Returns 1 if the multiplayer is loaded, otherwhise 0. - inline BOOL NetworkCanAccessMultiplayer(int* loadingState) { return _i(0xAF50DA1A3F8B1BA4, loadingState); } // 0xaf50da1a3f8b1ba40xa520b982B323 - inline BOOL NetworkIsMultiplayerDisabled() { return _i(0x9747292807126EDA); } // 0x9747292807126eda0x05518c0fB323 - inline BOOL NetworkCanEnterMultiplayer() { return _i(0x7E782A910C362C25); } // 0x7e782a910c362c250x4a23b9c9B323 - inline BOOL NetworkSessionDoFreeroamQuickmatch(Any p0, Any p1, Any p2) { return _i(0x330ED4D05491934F, p0, p1, p2); } // 0x330ed4d05491934fB323 - inline BOOL NetworkSessionDoFriendMatchmaking(int p0, int p1, int p2) { return _i(0x2CFC76E0D087C994, p0, p1, p2); } // 0x2cfc76e0d087c994B323 - // p4 seems to be unused in 1.60/build 2628 - inline BOOL NetworkSessionDoCrewMatchmaking(int crewId, int p1, int p2, int maxPlayers) { return _i(0x94BC51E9449D917F, crewId, p1, p2, maxPlayers); } // 0x94bc51e9449d917fB323 - inline BOOL NetworkSessionDoActivityQuickmatch(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xBE3E347A87ACEB82, p0, p1, p2, p3, p4); } // 0xbe3e347a87aceb82B323 - // Does nothing in online but in offline it will cause the screen to fade to black. Nothing happens past then, the screen will sit at black until you restart GTA. Other stuff must be needed to actually host a session. - inline BOOL NetworkSessionHost(int p0, int maxPlayers, BOOL p2) { return _i(0x6F3D4ED9BEE4E61D, p0, maxPlayers, p2); } // 0x6f3d4ed9bee4e61d0x6716460fB323 - inline BOOL NetworkSessionHostClosed(int p0, int maxPlayers) { return _i(0xED34C0C02C098BB7, p0, maxPlayers); } // 0xed34c0c02c098bb70x8ac9ea19B323 - // Does nothing in online but in offline it will cause the screen to fade to black. Nothing happens past then, the screen will sit at black until you restart GTA. Other stuff must be needed to actually host a session. - inline BOOL NetworkSessionHostFriendsOnly(int p0, int maxPlayers) { return _i(0xB9CFD27A5D578D83, p0, maxPlayers); } // 0xb9cfd27a5d578d830x26864403B323 - inline BOOL NetworkSessionIsClosedFriends() { return _i(0xFBCFA2EA2E206890); } // 0xfbcfa2ea2e2068900x56e75fe4B323 - inline BOOL NetworkSessionIsClosedCrew() { return _i(0x74732C6CA90DA2B4); } // 0x74732c6ca90da2b40xa95299b9B323 - inline BOOL NetworkSessionIsSolo() { return _i(0xF3929C2379B60CCE); } // 0xf3929c2379b60cce0x3d2c1916B323 - inline BOOL NetworkSessionIsPrivate() { return _i(0xCEF70AA5B3F89BA1); } // 0xcef70aa5b3f89ba10xdb67785dB323 - // p0 is always false and p1 varies. - // NetworkSessionEnd(0, 1) - // NetworkSessionEnd(0, 0) - // Results in: "Connection to session lost due to an unknown network error. Please return to Grand Theft Auto V and try again later." - inline BOOL NetworkSessionEnd(BOOL p0, BOOL p1) { return _i(0xA02E59562D711006, p0, p1); } // 0xa02e59562d7110060xbcacbea2B323 - inline BOOL NetworkSessionLeave(Any p0) { return _i(0xB9351A07A0D458B1, p0); } // 0xb9351a07a0d458b1B2060 - // Only works as host. - inline Void NetworkSessionKickPlayer(Player player) { return _i(0xFA8904DC5F304220, player); } // 0xfa8904dc5f3042200x1e20138aB323 - inline BOOL NetworkSessionGetKickVote(Player player) { return _i(0xD6D09A6F32F49EF1, player); } // 0xd6d09a6f32f49ef10x8a559d26B323 - inline BOOL NetworkSessionReserveSlotsTransition(Any p0, Any p1, Any p2) { return _i(0x041C7F2A6C9894E6, p0, p1, p2); } // 0x041c7f2a6c9894e6B463 - inline BOOL NetworkJoinPreviouslyFailedSession() { return _i(0x59DF79317F85A7E0); } // 0x59df79317f85a7e00x6cdaa7d2B323 - inline BOOL NetworkJoinPreviouslyFailedTransition() { return _i(0xFFE1E5B792D92B34); } // 0xffe1e5b792d92b340xbf21818eB323 - inline Void NetworkSessionSetMatchmakingGroup(int matchmakingGroup) { return _i(0x49EC8030F5015F8B, matchmakingGroup); } // 0x49ec8030f5015f8b0x3c3e2ab6B323 - // playerType is an unsigned int from 0 to 4 - // 0 = regular joiner - // 4 = spectator - inline Void NetworkSessionSetMatchmakingGroupMax(int playerType, int playerCount) { return _i(0x8B6A4DD0AF9CE215, playerType, playerCount); } // 0x8b6a4dd0af9ce2150x5f29a7e0B323 - inline int NetworkSessionGetMatchmakingGroupFree(int p0) { return _i(0x56CE820830EF040B, p0); } // 0x56ce820830ef040b0x36ead960B323 - // groupId range: [0, 4] - inline Void NetworkSessionAddActiveMatchmakingGroup(int groupId) { return _i(0xCAE55F48D3D7875C, groupId); } // 0xcae55f48d3d7875c0x5be529f7B323 - inline Void NetworkSessionSetUniqueCrewLimit(Any p0) { return _i(0xF49ABC20D8552257, p0); } // 0xf49abc20d85522570x454c7b67B323 - inline Void NetworkSessionSetUniqueCrewLimitTransition(Any p0) { return _i(0x4811BBAC21C5FCD5, p0); } // 0x4811bbac21c5fcd50xe5961511B323 - inline Void NetworkSessionSetUniqueCrewOnlyCrewsTransition(BOOL p0) { return _i(0x5539C3EBF104A53A, p0); } // 0x5539c3ebf104a53a0xae396263B323 - inline Void NetworkSessionSetCrewLimitMaxMembersTransition(Any p0) { return _i(0x702BC4D605522539, p0); } // 0x702bc4d6055225390x913fd7d6B323 - inline Void NetworkSessionSetMatchmakingPropertyId(BOOL p0) { return _i(0x3F52E880AAF6C8CA, p0); } // 0x3f52e880aaf6c8ca0xb3d9a67fB323 - // p0 in the decompiled scripts is always the stat mesh_texblend * 0.07 to int - inline Void NetworkSessionSetMatchmakingMentalState(int p0) { return _i(0xF1EEA2DDA9FFA69D, p0); } // 0xf1eea2dda9ffa69d0x6cc062fcB323 - inline Void NetworkSessionSetNumBosses(int num) { return _i(0x59D421683D31835A, num); } // 0x59d421683d31835aB573 - inline Void NetworkSessionSetScriptValidateJoin() { return _i(0x1153FA02A659051C); } // 0x1153fa02a659051c0x57f9bc83B323 - inline Void NetworkSessionValidateJoin(BOOL p0) { return _i(0xC19F6C8E7865A6FF, p0); } // 0xc19f6c8e7865a6ff0xf3768f90B323 - // .. - inline Void NetworkAddFollowers(int* p0, int p1) { return _i(0x236406F60CF216D6, p0, p1); } // 0x236406f60cf216d60x0ec62629B323 - inline Void NetworkClearFollowers() { return _i(0x058F43EC59A8631A); } // 0x058f43ec59a8631a0x5e557307B323 - inline Void NetworkGetGlobalMultiplayerClock(int* hours, int* minutes, int* seconds) { return _i(0x6D03BFBD643B2A02, hours, minutes, seconds); } // 0x6d03bfbd643b2a020x74e8c53eB323 - inline Void NetworkSessionSetGamemode(Any p0) { return _i(0x600F8CB31C7AAB6E, p0); } // 0x600f8cb31c7aab6e0x959e43a3B323 - inline int NetworkSessionGetHostAimPreference() { return _i(0xDFFA5BE8381C3314); } // 0xdffa5be8381c3314B463 - inline BOOL NetworkFindGamersInCrew(int crewId) { return _i(0xE532D6811B3A4D2A, crewId); } // 0xe532d6811b3a4d2a0x7771ab83B323 - // Uses attributes to find players with similar stats. Upper/Lower limit must be above zero or the fallback limit +/-0.1 is used. - // There can be up to 15 attributes, they are as follows: - // - // 0 = Races - // 1 = Parachuting - // 2 = Horde - // 3 = Darts - // 4 = Arm Wrestling - // 5 = Tennis - // 6 = Golf - // 7 = Shooting Range - // 8 = Deathmatch - // 9 = MPPLY_MCMWIN/MPPLY_CRMISSION - inline BOOL NetworkFindMatchedGamers(int attribute, float fallbackLimit, float lowerLimit, float upperLimit) { return _i(0xF7B2CFDE5C9F700D, attribute, fallbackLimit, lowerLimit, upperLimit); } // 0xf7b2cfde5c9f700d0xa13045d4B323 - inline BOOL NetworkIsFindingGamers() { return _i(0xDDDF64C91BFCF0AA); } // 0xdddf64c91bfcf0aa0xa6daa79fB323 - inline BOOL NetworkDidFindGamersSucceed() { return _i(0xF9B83B77929D8863); } // 0xf9b83b77929d88630xbedc4503B323 - inline int NetworkGetNumFoundGamers() { return _i(0xA1B043EE79A916FB); } // 0xa1b043ee79a916fb0xf4b80c7eB323 - inline BOOL NetworkGetFoundGamer(Any* p0, Any p1) { return _i(0x9DCFF2AFB68B3476, p0, p1); } // 0x9dcff2afb68b34760xa08c9141B323 - inline Void NetworkClearFoundGamers() { return _i(0x6D14CCEE1B40381A); } // 0x6d14ccee1b40381a0x6aa9a154B323 - inline BOOL NetworkQueueGamerForStatus(Any* p0) { return _i(0x85A0EF54A500882C, p0); } // 0x85a0ef54a500882c0x42bd0780B323 - inline BOOL NetworkGetGamerStatusFromQueue() { return _i(0x2CC848A861D01493); } // 0x2cc848a861d014930xbeb98840B323 - inline BOOL NetworkIsGettingGamerStatus() { return _i(0x94A8394D150B013A); } // 0x94a8394d150b013a0x08029970B323 - inline BOOL NetworkDidGetGamerStatusSucceed() { return _i(0x5AE17C6B0134B7F1); } // 0x5ae17c6b0134b7f10xc871e745B323 - inline BOOL NetworkGetGamerStatusResult(Any* p0, Any p1) { return _i(0x02A8BEC6FD9AF660, p0, p1); } // 0x02a8bec6fd9af6600xb5abc4b4B323 - inline Void NetworkClearGetGamerStatus() { return _i(0x86E0660E4F5C956D); } // 0x86e0660e4f5c956d0x3f7edbbdB323 - inline Void NetworkSessionJoinInvite() { return _i(0xC6F8AB8A4189CF3A); } // 0xc6f8ab8a4189cf3a0x3d6360b5B323 - inline Void NetworkSessionCancelInvite() { return _i(0x2FBF47B1B36D36F9); } // 0x2fbf47b1b36d36f90x20317535B323 - inline Void NetworkSessionForceCancelInvite() { return _i(0xA29177F7703B5644); } // 0xa29177f7703b56440x3fd49d3bB323 - inline BOOL NetworkHasPendingInvite() { return _i(0xAC8C7B9B88C4A668); } // 0xac8c7b9b88c4a6680x0c207d6eB323 - inline BOOL NetworkHasConfirmedInvite() { return _i(0xC42DD763159F3461); } // 0xc42dd763159f34610xfbbac350B323 - // Triggers a CEventNetworkInviteConfirmed event - inline BOOL NetworkRequestInviteConfirmedEvent() { return _i(0x62A0296C1BB1CEB3); } // 0x62a0296c1bb1ceb30x0907a6bfB323 - inline BOOL NetworkSessionWasInvited() { return _i(0x23DFB504655D0CE4); } // 0x23dfb504655d0ce40x6a0bea60B323 - inline Void NetworkSessionGetInviter(Any* gamerHandle) { return _i(0xE57397B4A3429DD0, gamerHandle); } // 0xe57397b4a3429dd00xe9c6b3fdB323 - // Seems to be true while "Getting GTA Online session details" shows up. - inline BOOL NetworkSessionIsAwaitingInviteResponse() { return _i(0xD313DE83394AF134); } // 0xd313de83394af1340x3ea9d44cB323 - inline BOOL NetworkSessionIsDisplayingInviteConfirmation() { return _i(0xBDB6F89C729CF388); } // 0xbdb6f89c729cf3880x9374523fB323 - inline Void NetworkSuppressInvite(BOOL toggle) { return _i(0xA0682D67EF1FBA3D, toggle); } // 0xa0682d67ef1fba3d0x323dc78cB323 - inline Void NetworkBlockInvites(BOOL toggle) { return _i(0x34F9E9049454A7A0, toggle); } // 0x34f9e9049454a7a00xd156fd1aB323 - inline Void NetworkBlockJoinQueueInvites(BOOL toggle) { return _i(0xCFEB8AF24FC1D0BB, toggle); } // 0xcfeb8af24fc1d0bb0x8ab4890bB323 - inline Void NetworkSetCanReceiveRsInvites(BOOL p0) { return _i(0x68980414688F7F9D, p0); } // 0x68980414688f7f9dB2612 - inline Void NetworkStoreInviteThroughRestart() { return _i(0xF814FEC6A19FD6E0); } // 0xf814fec6a19fd6e00x32b7a076B323 - inline Void NetworkAllowInviteProcessInPlayerSwitch(BOOL p0) { return _i(0x6B07B9CE4D390375, p0); } // 0x6b07b9ce4d3903750x0fce995dB323 - inline Void NetworkSetScriptReadyForEvents(BOOL toggle) { return _i(0x7AC752103856FB20, toggle); } // 0x7ac752103856fb200xa639dca2B323 - inline BOOL NetworkIsOfflineInvitePending() { return _i(0x74698374C45701D2); } // 0x74698374c45701d20x70ed476aB323 - inline Void NetworkClearOfflineInvitePending() { return _i(0x140E6A44870A11CE); } // 0x140e6a44870a11ce0x50507bedB323 - // Loads up the map that is loaded when beeing in mission creator - // Player gets placed in a mix between online/offline mode - // p0 is always 2 in R* scripts. - // - // Appears to be patched in gtav b757 (game gets terminated) alonside with most other network natives to prevent online modding ~ghost30812 - inline Void NetworkSessionHostSinglePlayer(int p0) { return _i(0xC74C33FCA52856D5, p0); } // 0xc74c33fca52856d50xf3b1ca85B323 - inline Void NetworkSessionLeaveSinglePlayer() { return _i(0x3442775428FD2DAA); } // 0x3442775428fd2daa0xc692f86aB323 - inline BOOL NetworkIsGameInProgress() { return _i(0x10FAB35428CCC9D7); } // 0x10fab35428ccc9d70x09b88e3eB323 - inline BOOL NetworkIsSessionActive() { return _i(0xD83C2B94E7508980); } // 0xd83c2b94e75089800x715cb8c4B323 - inline BOOL NetworkIsInSession() { return _i(0xCA97246103B63917); } // 0xca97246103b639170x4bc4105eB323 - // This checks if player is playing on gta online or not. - // Please add an if and block your mod if this is "true". - inline BOOL NetworkIsSessionStarted() { return _i(0x9DE624D2FC4B603F); } // 0x9de624d2fc4b603f0x9d854a37B323 - inline BOOL NetworkIsSessionBusy() { return _i(0xF4435D66A8E2905E); } // 0xf4435d66a8e2905e0x8592152dB323 - inline BOOL NetworkCanSessionEnd() { return _i(0x4EEBC3694E49C572); } // 0x4eebc3694e49c5720xe1fccdbaB323 - inline int NetworkGetGameMode() { return _i(0x4C9034162368E206); } // 0x4c9034162368e206B2060 - inline Void NetworkSessionMarkVisible(BOOL toggle) { return _i(0x271CC6AB59EBF9A5, toggle); } // 0x271cc6ab59ebf9a50x7017257dB323 - inline BOOL NetworkSessionIsVisible() { return _i(0xBA416D68C631496A); } // 0xba416d68c631496a0x4977ac28B323 - inline Void NetworkSessionBlockJoinRequests(BOOL toggle) { return _i(0xA73667484D7037C3, toggle); } // 0xa73667484d7037c30xe6eef8afB323 - // num player slots allowed in session, seems to work? 32 max - inline Void NetworkSessionChangeSlots(int slots, BOOL p1) { return _i(0xB4AB419E0D86ACAE, slots, p1); } // 0xb4ab419e0d86acae0x6bb93227B323 - inline int NetworkSessionGetPrivateSlots() { return _i(0x53AFD64C6758F2F9); } // 0x53afd64c6758f2f90xe642f2fdB323 - inline BOOL NetworkSessionVoiceHost() { return _i(0x9C1556705F864230); } // 0x9c1556705f8642300x345c2980B323 - inline BOOL NetworkSessionVoiceLeave() { return _i(0x6793E42BE02B575D); } // 0x6793e42be02b575d0xe566c7daB323 - inline Void NetworkSessionVoiceConnectToPlayer(Any* gamerHandle) { return _i(0xABD5E88B8A2D3DB2, gamerHandle); } // 0xabd5e88b8a2d3db20x9dfd89e6B323 - inline Void NetworkSessionVoiceRespondToRequest(BOOL p0, int p1) { return _i(0x7F8413B7FC2AA6B9, p0, p1); } // 0x7f8413b7fc2aa6b90x075321b5B323 - inline Void NetworkSessionVoiceSetTimeout(int timeout) { return _i(0x5B8ED3DB018927B1, timeout); } // 0x5b8ed3db018927b10x6efc2fd0B323 - inline BOOL NetworkSessionIsInVoiceSession() { return _i(0x855BC38818F6F684); } // 0x855bc38818f6f6840x60aa4aa1B323 - inline BOOL NetworkSessionIsVoiceSessionActive() { return _i(0xB5D3453C98456528); } // 0xb5d3453c98456528B323 - inline BOOL NetworkSessionIsVoiceSessionBusy() { return _i(0xEF0912DDF7C4CB4B); } // 0xef0912ddf7c4cb4b0x132ca01eB323 - // Message is limited to 64 characters. - inline BOOL NetworkSendTextMessage(String message, Any* gamerHandle) { return _i(0x3A214F2EC889B100, message, gamerHandle); } // 0x3a214f2ec889b1000xaffea720B323 - inline Void NetworkSetActivitySpectator(BOOL toggle) { return _i(0x75138790B4359A74, toggle); } // 0x75138790b4359a740xfc9ad060B323 - inline BOOL NetworkIsActivitySpectator() { return _i(0x12103B9E0C9F92FB); } // 0x12103b9e0c9f92fb0xaf329720B323 - inline Void NetworkSetActivityPlayerMax(Any p0) { return _i(0x0E4F77F7B9D74D84, p0); } // 0x0e4f77f7b9d74d840x04cb2ab4B573 - inline Void NetworkSetActivitySpectatorMax(int maxSpectators) { return _i(0x9D277B76D1D12222, maxSpectators); } // 0x9d277b76d1d122220x74e0bc0aB323 - inline int NetworkGetActivityPlayerNum(BOOL p0) { return _i(0x73E2B500410DA5A2, p0); } // 0x73e2b500410da5a20x31f951fdB323 - inline BOOL NetworkIsActivitySpectatorFromHandle(Any* gamerHandle) { return _i(0x2763BBAA72A7BCB9, gamerHandle); } // 0x2763bbaa72a7bcb90x58f1df7dB323 - // p0: Unknown int - // p1: Unknown int - // p2: Unknown int - // p3: Unknown int - // p4: Unknown always 0 in decompiled scripts - // p5: BOOL purpose unknown, both 0 and 1 are used in decompiled scripts. - // p6: BOOL purpose unknown, both 0 and 1 are used in decompiled scripts. - // p7: Unknown int, it's an int according to decompiled scripts, however the value is always 0 or 1. - // p8: Unknown int, it's an int according to decompiled scripts, however the value is always 0 or 1. - // p9: Unknown int, sometimes 0, but also 32768 or 16384 appear in decompiled scripst, maybe a flag of some sort? - // - // From what I can tell it looks like it does the following: - // Creates/hosts a new transition to another online session, using this in FiveM will result in other players being disconencted from the server/preventing them from joining. This is most likely because I entered the wrong session parameters since they're pretty much all unknown right now. - // You also need to use `NetworkJoinTransition(Player player)` and `NetworkLaunchTransition()`. - inline BOOL NetworkHostTransition(int p0, int p1, int p2, int p3, Any p4, BOOL p5, BOOL p6, int p7, Any p8, int p9) { return _i(0xA60BB5CE242BB254, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); } // 0xa60bb5ce242bb2540x146764fbB323 - inline BOOL NetworkDoTransitionQuickmatch(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0x71FB0EBCD4915D56, p0, p1, p2, p3, p4, p5); } // 0x71fb0ebcd4915d560x2ff65c0bB323 - inline BOOL NetworkDoTransitionQuickmatchAsync(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0xA091A5E44F0072E5, p0, p1, p2, p3, p4, p5); } // 0xa091a5e44f0072e50x47d61c99B323 - inline BOOL NetworkDoTransitionQuickmatchWithGroup(Any p0, Any p1, Any p2, Any p3, Any* p4, Any p5, Any p6, Any p7) { return _i(0x9C4AB58491FDC98A, p0, p1, p2, p3, p4, p5, p6, p7); } // 0x9c4ab58491fdc98a0x5ce60a11B323 - inline BOOL NetworkJoinGroupActivity() { return _i(0xA06509A691D12BE4); } // 0xa06509a691d12be40x0d7e5cf9B323 - inline Void NetworkClearGroupActivity() { return _i(0x1888694923EF4591); } // 0x1888694923ef45910x157d44d3B393 - inline Void NetworkRetainActivityGroup() { return _i(0xB13E88E655E5A3BC); } // 0xb13e88e655e5a3bc0x36a5f2daB323 - inline BOOL NetworkIsTransitionClosedFriends() { return _i(0x6512765E3BE78C50); } // 0x6512765e3be78c500x95ffacf8B323 - inline BOOL NetworkIsTransitionClosedCrew() { return _i(0x0DBD5D7E3C5BEC3B); } // 0x0dbd5d7e3c5bec3b0xb97a966bB323 - inline BOOL NetworkIsTransitionSolo() { return _i(0x5DC577201723960A); } // 0x5dc577201723960a0x063dc4a5B323 - inline BOOL NetworkIsTransitionPrivate() { return _i(0x5A6AA44FF8E931E6); } // 0x5a6aa44ff8e931e60x104dde8dB323 - inline int NetworkGetNumTransitionNonAsyncGamers() { return _i(0x617F49C2668E6155); } // 0x617f49c2668e6155B757 - inline Void NetworkMarkAsPreferredActivity(BOOL p0) { return _i(0x261E97AD7BCF3D40, p0); } // 0x261e97ad7bcf3d400x7ef353e1B323 - inline Void NetworkMarkAsWaitingAsync(BOOL p0) { return _i(0x39917E1B4CB0F911, p0); } // 0x39917e1b4cb0f9110xf60986fcB323 - inline Void NetworkSetInProgressFinishTime(Any p0) { return _i(0x2CE9D95E4051AECD, p0); } // 0x2ce9d95e4051aecdB678 - inline Void NetworkSetTransitionCreatorHandle(Any* p0) { return _i(0xEF26739BCD9907D5, p0); } // 0xef26739bcd9907d50x1dd01fe7B323 - inline Void NetworkClearTransitionCreatorHandle() { return _i(0xFB3272229A82C759); } // 0xfb3272229a82c7590x8bb336f7B323 - inline BOOL NetworkInviteGamersToTransition(Any* p0, Any p1) { return _i(0x4A595C32F77DFF76, p0, p1); } // 0x4a595c32f77dff760x5332e645B323 - inline Void NetworkSetGamerInvitedToTransition(Any* gamerHandle) { return _i(0xCA2C8073411ECDB6, gamerHandle); } // 0xca2c8073411ecdb60x17f1c69dB323 - inline BOOL NetworkLeaveTransition() { return _i(0xD23A1A815D21DB19); } // 0xd23a1a815d21db190x3a3599b7B323 - inline BOOL NetworkLaunchTransition() { return _i(0x2DCF46CB1A4F0884); } // 0x2dcf46cb1a4f08840xe3570ba2B323 - // Appears to set whether a transition should be started when the session is migrating. - inline Void NetworkSetDoNotLaunchFromJoinAsMigratedHost(BOOL toggle) { return _i(0xA2E9C1AB8A92E8CD, toggle); } // 0xa2e9c1ab8a92e8cd0x8d014b23B323 - inline Void NetworkCancelTransitionMatchmaking() { return _i(0x023782EFC70585EE); } // 0x023782efc70585eeB2699 - inline Void NetworkBailTransition(int p0, int p1, int p2) { return _i(0xEAA572036990CD1B, p0, p1, p2); } // 0xeaa572036990cd1b0xb59d74caB323 - inline BOOL NetworkDoTransitionToGame(BOOL p0, int maxPlayers) { return _i(0x3E9BB38102A589B0, p0, maxPlayers); } // 0x3e9bb38102a589b00x1b2114d2B323 - inline BOOL NetworkDoTransitionToNewGame(BOOL p0, int maxPlayers, BOOL p2) { return _i(0x4665F51EFED00034, p0, maxPlayers, p2); } // 0x4665f51efed000340x58afbe63B323 - // p2 is true 3/4 of the occurrences I found. - // 'players' is the number of players for a session. On PS3/360 it's always 18. On PC it's 32. - inline BOOL NetworkDoTransitionToFreemode(Any* p0, Any p1, BOOL p2, int players, BOOL p4) { return _i(0x3AAD8B2FCA1E289F, p0, p1, p2, players, p4); } // 0x3aad8b2fca1e289f0xc7cb8adfB323 - inline BOOL NetworkDoTransitionToNewFreemode(Any* p0, Any p1, int players, BOOL p3, BOOL p4, BOOL p5) { return _i(0x9E80A5BA8109F974, p0, p1, players, p3, p4, p5); } // 0x9e80a5ba8109f9740xad13375eB323 - inline BOOL NetworkIsTransitionToGame() { return _i(0x9D7696D8F4FA6CB7); } // 0x9d7696d8f4fa6cb70x17146b2bB323 - // Returns count. - inline int NetworkGetTransitionMembers(Any* data, int dataCount) { return _i(0x73B000F7FBC55829, data, dataCount); } // 0x73b000f7fbc558290x31f19263B323 - inline Void NetworkApplyTransitionParameter(int p0, int p1) { return _i(0x521638ADA1BA0D18, p0, p1); } // 0x521638ada1ba0d180xcee79711B323 - inline Void NetworkApplyTransitionParameterString(int p0, String string, BOOL p2) { return _i(0xEBEFC2E77084F599, p0, string, p2); } // 0xebefc2e77084f5990xe0c28db5B323 - inline BOOL NetworkSendTransitionGamerInstruction(Any* gamerHandle, String p1, int p2, int p3, BOOL p4) { return _i(0x31D1D2B858D25E6B, gamerHandle, p1, p2, p3, p4); } // 0x31d1d2b858d25e6b0x468b0884B323 - inline BOOL NetworkMarkTransitionGamerAsFullyJoined(Any* p0) { return _i(0x5728BB6D63E3FF1D, p0); } // 0x5728bb6d63e3ff1d0x03383f57B323 - inline BOOL NetworkIsTransitionHost() { return _i(0x0B824797C9BF2159); } // 0x0b824797c9bf21590x0c0900bcB323 - inline BOOL NetworkIsTransitionHostFromHandle(Any* gamerHandle) { return _i(0x6B5C83BA3EFE6A10, gamerHandle); } // 0x6b5c83ba3efe6a100x0e2854c4B323 - inline BOOL NetworkGetTransitionHost(Any* gamerHandle) { return _i(0x65042B9774C4435E, gamerHandle); } // 0x65042b9774c4435e0x73098d40B323 - inline BOOL NetworkIsInTransition() { return _i(0x68049AEFF83D8F0A); } // 0x68049aeff83d8f0a0xc3cdb626B323 - inline BOOL NetworkIsTransitionStarted() { return _i(0x53FA83401D9C07FE); } // 0x53fa83401d9c07fe0x7917e111B323 - inline BOOL NetworkIsTransitionBusy() { return _i(0x520F3282A53D26B7); } // 0x520f3282a53d26b70xa357a2c6B323 - inline BOOL NetworkIsTransitionMatchmaking() { return _i(0x292564C735375EDF); } // 0x292564c735375edf0x8262c70eB323 - inline BOOL NetworkIsTransitionLeavePostponed() { return _i(0xC571D0E77D8BBC29); } // 0xc571d0e77d8bbc290x4f4bb300B323 - inline Void NetworkTransitionSetInProgress(Any p0) { return _i(0x1398582B7F72B3ED, p0); } // 0x1398582b7f72b3edB505 - inline Void NetworkTransitionSetContentCreator(Any p0) { return _i(0x1F8E00FB18239600, p0); } // 0x1f8e00fb18239600B573 - inline Void NetworkTransitionSetActivityIsland(Any p0) { return _i(0xF6F4383B7C92F11A, p0); } // 0xf6f4383b7c92f11aB573 - inline Void NetworkOpenTransitionMatchmaking() { return _i(0x2B3A8F7CA3A38FDE); } // 0x2b3a8f7ca3a38fde0xc71e607bB323 - inline Void NetworkCloseTransitionMatchmaking() { return _i(0x43F4DBA69710E01E); } // 0x43f4dba69710e01e0x82d32d07B323 - inline BOOL NetworkIsTransitionOpenToMatchmaking() { return _i(0x37A4494483B9F5C9); } // 0x37a4494483b9f5c90xc901aa9fB323 - inline Void NetworkSetTransitionVisibilityLock(BOOL p0, BOOL p1) { return _i(0x0C978FDA19692C2C, p0, p1); } // 0x0c978fda19692c2c0x4af0adf5B323 - inline BOOL NetworkIsTransitionVisibilityLocked() { return _i(0xD0A484CB2F829FBE); } // 0xd0a484cb2f829fbe0xf637166eB323 - inline Void NetworkSetTransitionActivityId(Any p0) { return _i(0x30DE938B516F0AD2, p0); } // 0x30de938b516f0ad20xcca9c022B323 - inline Void NetworkChangeTransitionSlots(Any p0, BOOL p1) { return _i(0xEEEDA5E6D7080987, p0, p1); } // 0xeeeda5e6d70809870x1e5f6aefB323 - inline Void NetworkTransitionBlockJoinRequests(BOOL p0) { return _i(0x973D76AA760A6CB6, p0); } // 0x973d76aa760a6cb60x0532ddd2B323 - inline BOOL NetworkHasPlayerStartedTransition(Player player) { return _i(0x9AC9CCBFA8C29795, player); } // 0x9ac9ccbfa8c297950x4abd1e59B323 - inline BOOL NetworkAreTransitionDetailsValid(Any p0) { return _i(0x2615AA2A695930C1, p0); } // 0x2615aa2a695930c10xcdebcce7B323 - // int handle[76]; - // NetworkHandleFromFriend(iSelectedPlayer, &handle[0], 13); - // Player uVar2 = NetworkGetPlayerFromGamerHandle(&handle[0]); - // NetworkJoinTransition(uVar2); - // nothing doin. - inline BOOL NetworkJoinTransition(Player player) { return _i(0x9D060B08CD63321A, player); } // 0x9d060b08cd63321a0xb054ec4bB323 - inline BOOL NetworkHasInvitedGamerToTransition(Any* p0) { return _i(0x7284A47B3540E6CF, p0); } // 0x7284a47b3540e6cf0x4f41df6bB323 - inline BOOL NetworkHasTransitionInviteBeenAcked(Any* p0) { return _i(0x3F9990BF5F22759C, p0); } // 0x3f9990bf5f22759c0x00f26cdcB323 - inline BOOL NetworkIsActivitySession() { return _i(0x05095437424397FA); } // 0x05095437424397fa0x577daa8aB323 - inline Void NetworkDisableRealtimeMultiplayer() { return _i(0x236905C700FDB54D); } // 0x236905c700fdb54dB2612 - // Does nothing. It's just a nullsub. - inline Void NetworkSetPresenceSessionInvitesBlocked(BOOL toggle) { return _i(0x4A9FDE3A5A6D0437, toggle); } // 0x4a9fde3a5a6d04370x18f03afdB323 - inline BOOL NetworkSendInviteViaPresence(Any* gamerHandle, String p1, int dataCount, int p3) { return _i(0xC3C7A6AFDB244624, gamerHandle, p1, dataCount, p3); } // 0xc3c7a6afdb2446240x8b99b72bB323 - inline BOOL NetworkSendTransitionInviteViaPresence(Any* gamerHandle, String p1, int dataCount, int p3) { return _i(0xC116FF9B4D488291, gamerHandle, p1, dataCount, p3); } // 0xc116ff9b4d4882910x877c0e1cB323 - // Contains the string "NETWORK_SEND_PRESENCE_TRANSITION_INVITE" but so does 0xC116FF9B4D488291; seems to fit alphabetically here, tho. - inline BOOL NetworkSendImportantTransitionInviteViaPresence(Any* gamerHandle, String p1, int dataCount, int p3) { return _i(0x1171A97A3D3981B6, gamerHandle, p1, dataCount, p3); } // 0x1171a97a3d3981b6B323 - inline int NetworkGetPresenceInviteIndexById(int p0) { return _i(0x742B58F723233ED9, p0); } // 0x742b58f723233ed90x5e832444B323 - inline int NetworkGetNumPresenceInvites() { return _i(0xCEFA968912D0F78D); } // 0xcefa968912d0f78d0x3fda00f3B323 - inline BOOL NetworkAcceptPresenceInvite(int p0) { return _i(0xFA91550DF9318B22, p0); } // 0xfa91550df9318b220xe5da4cedB323 - inline BOOL NetworkRemovePresenceInvite(int p0) { return _i(0xF0210268DB0974B1, p0); } // 0xf0210268db0974b10x93c665faB323 - inline int NetworkGetPresenceInviteId(int p0) { return _i(0xDFF09646E12EC386, p0); } // 0xdff09646e12ec3860xd50df46cB323 - inline String NETWORK_GET_PRESENCE_INVITE_INVITER(int p0) { return _i(0x4962CC4AA2F345B7, p0); } // 0x4962CC4AA2F345B7 0x19EC65D9 b323 - inline BOOL NetworkGetPresenceInviteHandle(Any p0, Any* p1) { return _i(0x38D5B0FEBB086F75, p0, p1); } // 0x38d5b0febb086f750xb2451429B323 - inline int NetworkGetPresenceInviteSessionId(Any p0) { return _i(0x26E1CD96B0903D60, p0); } // 0x26e1cd96b0903d600xc5e0c989B323 - inline String NETWORK_GET_PRESENCE_INVITE_CONTENT_ID(int p0) { return _i(0x24409FC4C55CB22D, p0); } // 0x24409FC4C55CB22D 0xA4302183 b323 - inline int NetworkGetPresenceInvitePlaylistLength(int p0) { return _i(0xD39B3FFF8FFDD5BF, p0); } // 0xd39b3fff8ffdd5bf0x51b2d848B323 - inline int NetworkGetPresenceInvitePlaylistCurrent(int p0) { return _i(0x728C4CC7920CD102, p0); } // 0x728c4cc7920cd1020x4677c656B323 - inline BOOL NetworkGetPresenceInviteFromAdmin(int p0) { return _i(0x3DBF2DF0AEB7D289, p0); } // 0x3dbf2df0aeb7d2890xf5e3401cB323 - inline BOOL NetworkGetPresenceInviteIsTournament(Any p0) { return _i(0x8806CEBFABD3CE05, p0); } // 0x8806cebfabd3ce050x7d593b4cB323 - inline BOOL NetworkHasFollowInvite() { return _i(0x76D9B976C4C09FDE); } // 0x76d9b976c4c09fde0xe96cfe7dB323 - inline BOOL NetworkActionFollowInvite() { return _i(0xC88156EBB786F8D5); } // 0xc88156ebb786f8d50xab969f00B323 - inline BOOL NetworkClearFollowInvite() { return _i(0x439BFDE3CD0610F6); } // 0x439bfde3cd0610f60x3242f952B323 - inline Void NetworkRemoveAndCancelAllInvites() { return _i(0xEBF8284D8CADEB53); } // 0xebf8284d8cadeb530x9773f36aB323 - inline Void NetworkRemoveTransitionInvite(Any* p0) { return _i(0x7524B431B2E6F7EE, p0); } // 0x7524b431b2e6f7ee0xfde84cb7B323 - inline Void NetworkRemoveAllTransitionInvite() { return _i(0x726E0375C7A26368); } // 0x726e0375c7a263680xf7134e73B323 - inline Void NetworkRemoveAndCancelAllTransitionInvites() { return _i(0xF083835B70BA9BFE); } // 0xf083835b70ba9bfe0xc47352e7B323 - inline BOOL NetworkInviteGamers(Any* p0, Any p1, Any* p2, Any p3) { return _i(0x9D80CD1D0E6327DE, p0, p1, p2, p3); } // 0x9d80cd1d0e6327de0x52fb8074B323 - inline BOOL NetworkHasInvitedGamer(Any* p0) { return _i(0x4D86CD31E8976ECE, p0); } // 0x4d86cd31e8976ece0xec651bc0B323 - inline BOOL NetworkHasMadeInviteDecision(Any* gamerHandle) { return _i(0x71DC455F5CD1C2B1, gamerHandle); } // 0x71dc455f5cd1c2b1B505 - inline int NetworkGetInviteReplyStatus(Any p0) { return _i(0x3855FB5EB2C5E8B2, p0); } // 0x3855fb5eb2c5e8b2B505 - inline BOOL NetworkGetCurrentlySelectedGamerHandleFromInviteMenu(Any* p0) { return _i(0x74881E6BCAE2327C, p0); } // 0x74881e6bcae2327c0x72ba00ceB323 - inline BOOL NetworkSetCurrentlySelectedGamerHandleFromInviteMenu(Any* p0) { return _i(0x7206F674F2A3B1BB, p0); } // 0x7206f674f2a3b1bb0xfd95899eB323 - inline Void NetworkSetInviteOnCallForInviteMenu(Any* p0) { return _i(0x66F010A4B031A331, p0); } // 0x66f010a4b031a3310x11378777B323 - inline BOOL NetworkCheckDataManagerSucceededForHandle(int p0, Any* gamerHandle) { return _i(0x44B37CDCAE765AAE, p0, gamerHandle); } // 0x44b37cdcae765aae0x13301529B323 - inline BOOL NetworkCheckDataManagerForHandle(Any p0, Any* gamerHandle) { return _i(0x4AD490AE1536933B, p0, gamerHandle); } // 0x4ad490ae1536933bB372 - inline Void NetworkSetInviteFailedMessageForInviteMenu(Any* p0, Any* p1) { return _i(0x0D77A82DC2D0DA59, p0, p1); } // 0x0d77a82dc2d0da590x0808d4ccB323 - inline BOOL FilloutPmPlayerList(Any* gamerHandle, Any p1, Any p2) { return _i(0xCBBD7C4991B64809, gamerHandle, p1, p2); } // 0xcbbd7c4991b648090xce40f423B323 - inline BOOL FilloutPmPlayerListWithNames(Any* p0, Any* p1, Any p2, Any p3) { return _i(0x716B6DB9D1886106, p0, p1, p2, p3); } // 0x716b6db9d18861060xb8df604eB323 - inline BOOL RefreshPlayerListStats(int p0) { return _i(0xE26CCFF8094D8C74, p0); } // 0xe26ccff8094d8c740xf49c1533B323 - inline BOOL NetworkSetCurrentDataManagerHandle(Any* p0) { return _i(0x796A87B3B68D1F3D, p0); } // 0x796a87b3b68d1f3dB323 - // Hardcoded to return false. - inline BOOL NetworkIsInPlatformParty() { return _i(0x2FC5650B0271CB57); } // 0x2fc5650b0271cb570xa812b6cbB323 - inline int NetworkGetPlatformPartyMemberCount() { return _i(0x01ABCE5E7CBDA196); } // 0x01abce5e7cbda196B323 - inline int NetworkGetPlatformPartyMembers(Any* data, int dataSize) { return _i(0x120364DE2845DAF8, data, dataSize); } // 0x120364de2845daf80xf30e5814B323 - // Hardcoded to return false. - inline BOOL NetworkIsInPlatformPartyChat() { return _i(0xFD8B834A8BA05048); } // 0xfd8b834a8ba050480xc6609191B323 - // This would be nice to see if someone is in party chat, but 2 sad notes. - // 1) It only becomes true if said person is speaking in that party at the time. - // 2) It will never, become true unless you are in that party with said person. - inline BOOL NetworkIsChattingInPlatformParty(Any* gamerHandle) { return _i(0x8DE9945BCC9AEC52, gamerHandle); } // 0x8de9945bcc9aec520x51367b34B323 - inline BOOL NetworkCanQueueForPreviousSessionJoin() { return _i(0x2BF66D2E7414F686); } // 0x2bf66d2e7414f6860x9156efc0B323 - inline BOOL NetworkIsQueuingForSessionJoin() { return _i(0x14922ED3E38761F0); } // 0x14922ed3e38761f00x8fa6ee0eB323 - inline Void NetworkClearQueuedJoinRequest() { return _i(0x6CE50E47F5543D0C); } // 0x6ce50e47f5543d0cB573 - inline Void NetworkSendQueuedJoinRequest() { return _i(0xFA2888E3833C8E96); } // 0xfa2888e3833c8e960x7f70c15aB323 - inline Void NetworkRemoveAllQueuedJoinRequests() { return _i(0x25D990F8E0E3F13C); } // 0x25d990f8e0e3f13c0x4fd83f5bB323 - inline Void NetworkSeedRandomNumberGenerator(int seed) { return _i(0xF1B84178F8674195, seed); } // 0xf1b84178f86741950x41702c8aB323 - inline int NetworkGetRandomInt() { return _i(0x599E4FA1F87EB5FF); } // 0x599e4fa1f87eb5ff0x208dd848B323 - // Same as GetRandomIntInRange - inline int NetworkGetRandomIntRanged(int rangeStart, int rangeEnd) { return _i(0xE30CF56F1EFA5F43, rangeStart, rangeEnd); } // 0xe30cf56f1efa5f430xf9b6426dB323 - inline float NetworkGetRandomFloatRanged(float rangeStart, float rangeEnd) { return _i(0x04BD27B5ACB67067, rangeStart, rangeEnd); } // 0x04bd27b5acb67067B2802 - inline BOOL NetworkPlayerIsCheater() { return _i(0x655B91F1495A9090); } // 0x655b91f1495a90900xa51dc214B323 - inline int NetworkPlayerGetCheaterReason() { return _i(0x172F75B6EE2233BA); } // 0x172f75b6ee2233ba0x1720aba6B323 - inline BOOL NetworkPlayerIsBadsport() { return _i(0x19D8DA0E5A68045A); } // 0x19d8da0e5a68045a0xa19708e3B323 - inline BOOL RemoteCheaterPlayerDetected(Player player, int a, int b) { return _i(0x472841A026D26D8B, player, a, b); } // 0x472841a026d26d8bB1103 - inline BOOL BadSportPlayerLeftDetected(Any* gamerHandle, int event, int amountReceived) { return _i(0xEC5E3AF5289DCA81, gamerHandle, event, amountReceived); } // 0xec5e3af5289dca810x4c2c6b6aB323 - inline Void NetworkAddInvalidObjectModel(Hash modelHash) { return _i(0x7F562DBC212E81F9, modelHash); } // 0x7f562dbc212e81f9B2545 - inline Void NetworkRemoveInvalidObjectModel(Hash modelHash) { return _i(0x791EDB5803B2F468, modelHash); } // 0x791edb5803b2f468B2545 - inline Void NetworkClearInvalidObjectModels() { return _i(0x03B2F03A53D85E41); } // 0x03b2f03a53d85e41B2545 - inline Void NetworkApplyPedScarData(Ped ped, int p1) { return _i(0xE66C690248F11150, ped, p1); } // 0xe66c690248f111500x4818acd0B323 - inline Void NetworkSetThisScriptIsNetworkScript(int maxNumMissionParticipants, BOOL p1, int instanceId) { return _i(0x1CA59E306ECB80A5, maxNumMissionParticipants, p1, instanceId); } // 0x1ca59e306ecb80a50x470810edB323 - inline BOOL NetworkTryToSetThisScriptIsNetworkScript(Any p0, BOOL p1, Any p2) { return _i(0xD1110739EEADB592, p0, p1, p2); } // 0xd1110739eeadb592B323 - inline BOOL NetworkGetThisScriptIsNetworkScript() { return _i(0x2910669969E9535E); } // 0x2910669969e9535e0xd9bf6549B323 - inline int NetworkGetMaxNumParticipants() { return _i(0xA6C90FBC38E395EE); } // 0xa6c90fbc38e395ee0xccd8c02dB323 - inline int NetworkGetNumParticipants() { return _i(0x18D0456E86604654); } // 0x18d0456e866046540x3e25a3c5B323 - inline int NetworkGetScriptStatus() { return _i(0x57D158647A6BFABF); } // 0x57d158647a6bfabf0x2be9235aB323 - inline Void NetworkRegisterHostBroadcastVariables(int* vars, int numVars, String debugName) { return _i(0x3E9B2F01C50DF595, vars, numVars, debugName); } // 0x3e9b2f01c50df5950xdaf3b0aeB323 - inline Void NetworkRegisterPlayerBroadcastVariables(int* vars, int numVars, String debugName) { return _i(0x3364AA97340CA215, vars, numVars, debugName); } // 0x3364aa97340ca2150xbe3d32b4B323 - inline Void NetworkRegisterHighFrequencyHostBroadcastVariables(Any p0, Any p1, Any p2) { return _i(0xEA8C0DDB10E2822A, p0, p1, p2); } // 0xea8c0ddb10e2822aB1868 - inline Void NetworkRegisterHighFrequencyPlayerBroadcastVariables(Any p0, Any p1, Any p2) { return _i(0xD6D7478CA62B8D41, p0, p1, p2); } // 0xd6d7478ca62b8d41B1868 - inline Void NetworkFinishBroadcastingData() { return _i(0x64F62AFB081E260D); } // 0x64f62afb081e260d0xa71a1d2aB323 - inline BOOL NetworkHasReceivedHostBroadcastData() { return _i(0x5D10B3795F3FC886); } // 0x5d10b3795f3fc8860x0b739f53B323 - inline Player NetworkGetPlayerIndex(Player player) { return _i(0x24FB80D107371267, player); } // 0x24fb80d1073712670xbe1c1506B323 - inline int NetworkGetParticipantIndex(int index) { return _i(0x1B84DF6AF2A46938, index); } // 0x1b84df6af2a469380xc4d91094B323 - // Returns the Player associated to a given Ped when in an online session. - inline Player NetworkGetPlayerIndexFromPed(Ped ped) { return _i(0x6C0E2E0125610278, ped); } // 0x6c0e2e01256102780x40dbf464B323 - // Returns the amount of players connected in the current session. Only works when connected to a session/server. - inline int NetworkGetNumConnectedPlayers() { return _i(0xA4A79DD2D9600654); } // 0xa4a79dd2d96006540xf7952e62B323 - inline BOOL NetworkIsPlayerConnected(Player player) { return _i(0x93DC1BE4E1ABE9D1, player); } // 0x93dc1be4e1abe9d10x168ee2c2B323 - inline int NetworkGetTotalNumPlayers() { return _i(0xCF61D4B4702EE9EB); } // 0xcf61d4b4702ee9eb0xf4f13b06B323 - inline BOOL NetworkIsParticipantActive(int p0) { return _i(0x6FF8FF40B6357D45, p0); } // 0x6ff8ff40b6357d450x4e2c348bB323 - inline BOOL NetworkIsPlayerActive(Player player) { return _i(0xB8DFD30D6973E135, player); } // 0xb8dfd30d6973e1350x43657b17B323 - inline BOOL NetworkIsPlayerAParticipant(Player player) { return _i(0x3CA58F6CB7CBD784, player); } // 0x3ca58f6cb7cbd7840xb08b6992B323 - inline BOOL NetworkIsHostOfThisScript() { return _i(0x83CD99A1E6061AB5); } // 0x83cd99a1e6061ab50x6970ba94B323 - inline Player NetworkGetHostOfThisScript() { return _i(0xC7B4D79B01FA7A5C); } // 0xc7b4d79b01fa7a5c0x89ea7b54B323 - // scriptName examples: - // "freemode", "AM_CR_SecurityVan", ... - // - // Most of the time, these values are used: - // instance_id = -1 - // position_hash = 0 - inline Player NetworkGetHostOfScript(String scriptName, int instance_id, int position_hash) { return _i(0x1D6A14F1F9A736FC, scriptName, instance_id, position_hash); } // 0x1d6a14f1f9a736fc0x9c95d0bbB323 - inline Void NetworkSetMissionFinished() { return _i(0x3B3D11CD9FFCDFC9); } // 0x3b3d11cd9ffcdfc90x3083fad7B323 - inline BOOL NetworkIsScriptActive(String scriptName, int instance_id, BOOL p2, int position_hash) { return _i(0x9D40DF90FAD26098, scriptName, instance_id, p2, position_hash); } // 0x9d40df90fad260980x4a65250cB323 - inline BOOL NetworkIsScriptActiveByHash(Hash scriptHash, int p1, BOOL p2, int p3) { return _i(0xDA7DE67F5FE5EE13, scriptHash, p1, p2, p3); } // 0xda7de67f5fe5ee13B2245 - inline BOOL NetworkIsThreadANetworkScript(int threadId) { return _i(0x560B423D73015E77, threadId); } // 0x560b423d73015e77B1604 - inline int NetworkGetNumScriptParticipants(String scriptName, int instance_id, int position_hash) { return _i(0x3658E8CD94FC121A, scriptName, instance_id, position_hash); } // 0x3658e8cd94fc121a0x8f7d9f46B323 - inline int NetworkGetInstanceIdOfThisScript() { return _i(0x638A3A81733086DB); } // 0x638a3a81733086db0xdb8b5d71B323 - inline Hash NetworkGetPositionHashOfThisScript() { return _i(0x257ED0FADF750BCF); } // 0x257ed0fadf750bcfB2372 - inline BOOL NetworkIsPlayerAParticipantOnScript(Player player, String script, int instance_id) { return _i(0x1AD5B71586B94820, player, script, instance_id); } // 0x1ad5b71586b948200xcea55f4cB323 - inline Void NetworkPreventScriptHostMigration() { return _i(0x2302C0264EA58D31); } // 0x2302c0264ea58d310x8dcfe77dB323 - inline Void NetworkRequestToBeHostOfThisScript() { return _i(0x741A3D8380319A81); } // 0x741a3d8380319a810x331d9a27B323 - // Return the local Participant ID - inline Player ParticipantId() { return _i(0x90986E8876CE0A83); } // 0x90986e8876ce0a830x9c35a221B323 - // Return the local Participant ID. - // - // This native is exactly the same as 'ParticipantId' native. - inline int ParticipantIdToInt() { return _i(0x57A3BDDAD8E5AA0A); } // 0x57a3bddad8e5aa0a0x907498b0B323 - inline Player NetworkGetKillerOfPlayer(Player player, Hash* weaponHash) { return _i(0x2DA41ED6E1FCD7A5, player, weaponHash); } // 0x2da41ed6e1fcd7a5B463 - inline Player NetworkGetDestroyerOfNetworkId(int netId, Hash* weaponHash) { return _i(0x7A1ADEEF01740A24, netId, weaponHash); } // 0x7a1adeef01740a240x4fca6436B323 - inline Player NetworkGetDestroyerOfEntity(Entity entity, Hash* weaponHash) { return _i(0xC434133D9BA52777, entity, weaponHash); } // 0xc434133d9ba52777B463 - // NetworkGetAssistedDamageOfEntity that ensures the entity is dead (IsEntityDead) - inline BOOL NetworkGetAssistedKillOfEntity(Player player, Entity entity, int* p2) { return _i(0x83660B734994124D, player, entity, p2); } // 0x83660b734994124dB463 - inline BOOL NetworkGetAssistedDamageOfEntity(Player player, Entity entity, int* p2) { return _i(0x4CACA84440FA26F6, player, entity, p2); } // 0x4caca84440fa26f60x28a45454B323 - inline Entity NetworkGetEntityKillerOfPlayer(Player player, Hash* weaponHash) { return _i(0x42B2DAA6B596F5F8, player, weaponHash); } // 0x42b2daa6b596f5f80xa7e7e04fB323 - inline Void NetworkSetCurrentPublicContentId(String missionId) { return _i(0x2C863ACDCD12B3DB, missionId); } // 0x2c863acdcd12b3dbB2699 - inline Void NetworkSetCurrentChatOption(int newChatOption) { return _i(0x3DAD00265FBF356B, newChatOption); } // 0x3dad00265fbf356bB2802 - // mpSettingSpawn: - // - // enum eMpSettingSpawn - // { - // MP_SETTING_SPAWN_NULL, - // MP_SETTING_SPAWN_PROPERTY, - // MP_SETTING_SPAWN_LAST_POSITION, - // MP_SETTING_SPAWN_GARAGE, - // MP_SETTING_SPAWN_RANDOM, - // MP_SETTING_SPAWN_PRIVATE_YACHT, - // MP_SETTING_SPAWN_OFFICE, - // MP_SETTING_SPAWN_CLUBHOUSE, - // MP_SETTING_SPAWN_IE_WAREHOUSE, - // MP_SETTING_SPAWN_BUNKER, - // MP_SETTING_SPAWN_HANGAR, - // MP_SETTING_SPAWN_DEFUNCT_BASE, - // MP_SETTING_SPAWN_NIGHTCLUB, - // MP_SETTING_SPAWN_ARENA_GARAGE, - // MP_SETTING_SPAWN_CASINO_APARTMENT, - // MP_SETTING_SPAWN_ARCADE, - // MP_SETTING_SPAWN_SUBMARINE, - // MP_SETTING_SPAWN_CAR_MEET, - // MP_SETTING_SPAWN_AUTO_SHOP, - // MP_SETTING_SPAWN_FIXER_HQ, - // MP_SETTING_SPAWN_MAX, - // }; - inline Void NetworkSetCurrentSpawnLocationOption(Hash mpSettingSpawn) { return _i(0xAA6D5451DC3448B6, mpSettingSpawn); } // 0xaa6d5451dc3448b6B2699 - // Used by MetricVEHICLE_DIST_DRIVEN - inline Void NetworkSetVehicleDrivenInTestDrive(BOOL toggle) { return _i(0x8C70252FC40F320B, toggle); } // 0x8c70252fc40f320bB2699 - // Sets 'loc' variable used in MetricVEHICLE_DIST_DRIVEN - inline Void NetworkSetVehicleDrivenLocation(Hash location) { return _i(0xA0CE91E47531D3BB, location); } // 0xa0ce91e47531d3bbB2944 - inline Void NetworkResurrectLocalPlayer(float x, float y, float z, float heading, BOOL p4, BOOL changetime, BOOL p6, int p7, int p8) { return _i(0xEA23C49EAA83ACFB, x, y, z, heading, p4, changetime, p6, p7, p8); } // 0xea23c49eaa83acfb0xf1f9d4b4B323 - inline Void NetworkSetLocalPlayerInvincibleTime(int time) { return _i(0x2D95C7E2D7E07307, time); } // 0x2d95c7e2d7e073070xfea9b85cB323 - inline BOOL NetworkIsLocalPlayerInvincible() { return _i(0x8A8694B48715B000); } // 0x8a8694b48715b0000x8de13b36B323 - inline Void NetworkDisableInvincibleFlashing(Player player, BOOL toggle) { return _i(0x9DD368BF06983221, player, toggle); } // 0x9dd368bf069832210x8d27280eB323 - inline Void NetworkPatchPostCutsceneHs4fTunEnt(Ped ped) { return _i(0xF0BC9BCD24A511D5, ped); } // 0xf0bc9bcd24a511d5B2372 - inline Void NetworkSetLocalPlayerSyncLookAt(BOOL toggle) { return _i(0x524FF0AEFF9C3973, toggle); } // 0x524ff0aeff9c39730xb72f086dB323 - inline BOOL NetworkHasEntityBeenRegisteredWithThisThread(Entity entity) { return _i(0xB07D3185E11657A5, entity); } // 0xb07d3185e11657a50xeda68956B323 - inline int NetworkGetNetworkIdFromEntity(Entity entity) { return _i(0xA11700682F3AD45C, entity); } // 0xa11700682f3ad45c0x9e35dab6B323 - inline Entity NetworkGetEntityFromNetworkId(int netId) { return _i(0xCE4E5D9B0A4FF560, netId); } // 0xce4e5d9b0a4ff5600x5b912c3fB323 - inline BOOL NetworkGetEntityIsNetworked(Entity entity) { return _i(0xC7827959479DCC78, entity); } // 0xc7827959479dcc780xd7f934f4B323 - inline BOOL NetworkGetEntityIsLocal(Entity entity) { return _i(0x0991549DE4D64762, entity); } // 0x0991549de4d647620x813353edB323 - inline Void NetworkRegisterEntityAsNetworked(Entity entity) { return _i(0x06FAACD625D80CAA, entity); } // 0x06faacd625d80caa0x31a630a4B323 - inline Void NetworkUnregisterNetworkedEntity(Entity entity) { return _i(0x7368E683BB9038D6, entity); } // 0x7368e683bb9038d60x5c645f64B323 - inline BOOL NetworkDoesNetworkIdExist(int netId) { return _i(0x38CE16C96BD11344, netId); } // 0x38ce16c96bd113440xb8d2c99eB323 - inline BOOL NetworkDoesEntityExistWithNetworkId(int netId) { return _i(0x18A47D074708FD68, netId); } // 0x18a47d074708fd680x1e2e3177B323 - inline BOOL NetworkRequestControlOfNetworkId(int netId) { return _i(0xA670B3662FAFFBD0, netId); } // 0xa670b3662faffbd00x9262a60aB323 - inline BOOL NetworkHasControlOfNetworkId(int netId) { return _i(0x4D36070FE0215186, netId); } // 0x4d36070fe02151860x92e77d21B323 - // Returns true if the specified network id is controlled by someone else. - inline BOOL NetworkIsNetworkIdRemotelyControlled(int netId) { return _i(0x7242F8B741CE1086, netId); } // 0x7242f8b741ce1086B678 - inline BOOL NetworkRequestControlOfEntity(Entity entity) { return _i(0xB69317BF5E782347, entity); } // 0xb69317bf5e7823470xa05febd7B323 - inline BOOL NetworkRequestControlOfDoor(int doorID) { return _i(0x870DDFD5A4A796E4, doorID); } // 0x870ddfd5a4a796e40xf60daaf6B323 - inline BOOL NetworkHasControlOfEntity(Entity entity) { return _i(0x01BF60A500E28887, entity); } // 0x01bf60a500e288870x005fd797B323 - inline BOOL NetworkHasControlOfPickup(Pickup pickup) { return _i(0x5BC9495F0B3B6FA6, pickup); } // 0x5bc9495f0b3b6fa60xf7784fc8B323 - inline BOOL NetworkHasControlOfDoor(Hash doorHash) { return _i(0xCB3C68ADB06195DF, doorHash); } // 0xcb3c68adb06195df0x136326ecB323 - inline BOOL NetworkIsDoorNetworked(Hash doorHash) { return _i(0xC01E93FAC20C3346, doorHash); } // 0xc01e93fac20c33460xd14d9c07B323 - // calls from vehicle to net. - // - inline int VehToNet(Vehicle vehicle) { return _i(0xB4C94523F023419C, vehicle); } // 0xb4c94523f023419c0xf17634ebB323 - // gets the network id of a ped - inline int PedToNet(Ped ped) { return _i(0x0EDEC3C276198689, ped); } // 0x0edec3c2761986890x86a0b759B323 - // Lets objects spawn online simply do it like this: - // - // int createdObject = ObjToNet(CreateObjectNoOffset(oball, pCoords.x, pCoords.y, pCoords.z, 1, 0, 0)); - inline int ObjToNet(Object object) { return _i(0x99BFDC94A603E541, object); } // 0x99bfdc94a603e5410x1e05f29fB323 - inline Vehicle NetToVeh(int netHandle) { return _i(0x367B936610BA360C, netHandle); } // 0x367b936610ba360c0x7e02faeaB323 - // gets the ped id of a network id - inline Ped NetToPed(int netHandle) { return _i(0xBDCD95FC216A8B3E, netHandle); } // 0xbdcd95fc216a8b3e0x87717dd4B323 - // gets the object id of a network id - inline Object NetToObj(int netHandle) { return _i(0xD8515F5FEA14CB3F, netHandle); } // 0xd8515f5fea14cb3f0x27aa14d8B323 - // gets the entity id of a network id - inline Entity NetToEnt(int netHandle) { return _i(0xBFFEAB45A9A9094A, netHandle); } // 0xbffeab45a9a9094a0x5e149683B323 - inline Void NetworkGetLocalHandle(Any* gamerHandle, int gamerHandleSize) { return _i(0xE86051786B66CD8E, gamerHandle, gamerHandleSize); } // 0xe86051786b66cd8e0x08023b16B323 - inline Void NetworkHandleFromUserId(String userId, Any* gamerHandle, int gamerHandleSize) { return _i(0xDCD51DD8F87AEC5C, userId, gamerHandle, gamerHandleSize); } // 0xdcd51dd8f87aec5c0x74c2c1b7B323 - inline Void NetworkHandleFromMemberId(String memberId, Any* gamerHandle, int gamerHandleSize) { return _i(0xA0FD21BED61E5C4C, memberId, gamerHandle, gamerHandleSize); } // 0xa0fd21bed61e5c4c0x9bfc9fe2B323 - inline Void NetworkHandleFromPlayer(Player player, Any* gamerHandle, int gamerHandleSize) { return _i(0x388EB2B86C73B6B3, player, gamerHandle, gamerHandleSize); } // 0x388eb2b86c73b6b30xd3498917B323 - inline Hash NetworkHashFromPlayerHandle(Player player) { return _i(0xBC1D768F2F5D6C05, player); } // 0xbc1d768f2f5d6c050xf8d7af3bB323 - inline Hash NetworkHashFromGamerHandle(Any* gamerHandle) { return _i(0x58575AC3CF2CA8EC, gamerHandle); } // 0x58575ac3cf2ca8ec0x5ac9f04dB323 - inline Void NetworkHandleFromFriend(int friendIndex, Any* gamerHandle, int gamerHandleSize) { return _i(0xD45CB817D7E177D2, friendIndex, gamerHandle, gamerHandleSize); } // 0xd45cb817d7e177d20x3b0bb3a3B323 - inline BOOL NetworkGamertagFromHandleStart(Any* gamerHandle) { return _i(0x9F0C0A981D73FA56, gamerHandle); } // 0x9f0c0a981d73fa560xeba00c2aB323 - inline BOOL NetworkGamertagFromHandlePending() { return _i(0xB071E27958EF4CF0); } // 0xb071e27958ef4cf00xf000828eB323 - inline BOOL NetworkGamertagFromHandleSucceeded() { return _i(0xFD00798DBA7523DD); } // 0xfd00798dba7523dd0x89c2b5eaB323 - inline String NetworkGetGamertagFromHandle(Any* gamerHandle) { return _i(0x426141162EBE5CDB, gamerHandle); } // 0x426141162EBE5CDB 0xA18A1B26 b323 - // Hardcoded to return -1. - inline int NetworkDisplaynamesFromHandlesStart(Any* p0, Any p1) { return _i(0xD66C9E72B3CC4982, p0, p1); } // 0xd66c9e72b3cc4982B323 - // This function is hard-coded to always return 0. - inline int NetworkGetDisplaynamesFromHandles(Any p0, Any p1, Any p2) { return _i(0x58CC181719256197, p0, p1, p2); } // 0x58cc181719256197B323 - inline BOOL NetworkAreHandlesTheSame(Any* gamerHandle1, Any* gamerHandle2) { return _i(0x57DBA049E110F217, gamerHandle1, gamerHandle2); } // 0x57dba049e110f2170x45975ae3B323 - inline BOOL NetworkIsHandleValid(Any* gamerHandle, int gamerHandleSize) { return _i(0x6F79B93B0A8E4133, gamerHandle, gamerHandleSize); } // 0x6f79b93b0a8e41330xf0996c6eB323 - inline Player NetworkGetPlayerFromGamerHandle(Any* gamerHandle) { return _i(0xCE5F689CF5A0A49D, gamerHandle); } // 0xce5f689cf5a0a49d0x2e96ef1eB323 - inline String NETWORK_MEMBER_ID_FROM_GAMER_HANDLE(Any* gamerHandle) { return _i(0xC82630132081BB6F, gamerHandle); } // 0xC82630132081BB6F 0x62EF0A63 b323 - inline BOOL NetworkIsGamerInMySession(Any* gamerHandle) { return _i(0x0F10B05DDF8D16E9, gamerHandle); } // 0x0f10b05ddf8d16e90x59127716B323 - inline Void NetworkShowProfileUi(Any* gamerHandle) { return _i(0x859ED1CEA343FCA8, gamerHandle); } // 0x859ed1cea343fca80xf00a20b0B323 - // Returns the name of a given player. Returns "**Invalid**" if rlGamerInfo of the given player cannot be retrieved or the player doesn't exist. - inline String NETWORK_PLAYER_GET_NAME(Player player) { return _i(0x7718D2E2060837D2, player); } // 0x7718D2E2060837D2 0xCE48F260 b323 - // Returns a string of the player's Rockstar Id. - // Takes a 24 char buffer. Returns the buffer or "**Invalid**" if rlGamerInfo of the given player cannot be retrieved or the player doesn't exist. - inline String NETWORK_PLAYER_GET_USERID(Player player, int* userID) { return _i(0x4927FC39CD0869A0, player, userID); } // 0x4927FC39CD0869A0 0x4EC0D983 b323 - // Checks if a specific value (BYTE) in CNetGamePlayer is nonzero. - // Returns always false in Singleplayer. - // - // No longer used for dev checks since first mods were released on PS3 & 360. - // R* now checks with the IsDlcPresent native for the dlc hash 2532323046, - // if that is present it will unlock dev stuff. - inline BOOL NetworkPlayerIsRockstarDev(Player player) { return _i(0x544ABDDA3B409B6D, player); } // 0x544abdda3b409b6d0xf6659045B323 - inline BOOL NetworkPlayerIndexIsCheater(Player player) { return _i(0x565E430DB3B05BEC, player); } // 0x565e430db3b05bec0xd265b049B323 - inline int NetworkEntityGetObjectId(Entity entity) { return _i(0x815F18AD865F057F, entity); } // 0x815f18ad865f057fB463 - // I've had this return the player's ped handle sometimes, but also other random entities. - // Whatever p0 is, it's at least not synced to other players. - // At least not all the time, some p0 values actually output the same entity, (different handle of course, but same entity). - // But another p0 value may return an entity for player x, but not for player y (it'll just return -1 even if the entity exists on both clients). - // - // Returns an entity handle or -1, value changes based on p0's value. - inline Entity NetworkGetEntityFromObjectId(Any p0) { return _i(0x37D5F739FD494675, p0); } // 0x37d5f739fd494675B505 - inline BOOL NetworkIsInactiveProfile(Any* p0) { return _i(0x7E58745504313A2E, p0); } // 0x7e58745504313a2e0x95481343B323 - inline int NetworkGetMaxFriends() { return _i(0xAFEBB0D5D8F687D2); } // 0xafebb0d5d8f687d20x048171bcB323 - inline int NetworkGetFriendCount() { return _i(0x203F1CFD823B27A4); } // 0x203f1cfd823b27a40xa396acdeB323 - inline String NetworkGetFriendName(int friendIndex) { return _i(0xE11EBBB2A783FE8B, friendIndex); } // 0xE11EBBB2A783FE8B 0x97420B6D b323 - inline String NETWORK_GET_FRIEND_DISPLAY_NAME(int friendIndex) { return _i(0x4164F227D052E293, friendIndex); } // 0x4164F227D052E293 b323 - inline BOOL NetworkIsFriendOnline(String name) { return _i(0x425A44533437B64D, name); } // 0x425a44533437b64d0xe0a42430B323 - inline BOOL NetworkIsFriendHandleOnline(Any* gamerHandle) { return _i(0x87EB7A3FFCB314DB, gamerHandle); } // 0x87eb7a3ffcb314dbB323 - // In scripts R* calls 'NETWORK_GET_FRIEND_NAME' in this param. - inline BOOL NetworkIsFriendInSameTitle(String friendName) { return _i(0x2EA9A3BEDF3F17B8, friendName); } // 0x2ea9a3bedf3f17b80xc54365c2B323 - inline BOOL NetworkIsFriendInMultiplayer(String friendName) { return _i(0x57005C18827F3A28, friendName); } // 0x57005c18827f3a280x400bddd9B323 - inline BOOL NetworkIsFriend(Any* gamerHandle) { return _i(0x1A24A179F9B31654, gamerHandle); } // 0x1a24a179f9b316540x2da4c282B323 - // This function is hard-coded to always return 0. - inline BOOL NetworkIsPendingFriend(Any p0) { return _i(0x0BE73DA6984A6E33, p0); } // 0x0be73da6984a6e330x5c85ff81B323 - inline BOOL NetworkIsAddingFriend() { return _i(0x6EA101606F6E4D81); } // 0x6ea101606f6e4d810xbb7ec8c4B323 - inline BOOL NetworkAddFriend(Any* gamerHandle, String message) { return _i(0x8E02D73914064223, gamerHandle, message); } // 0x8e02d739140642230x20e5b3eeB323 - inline BOOL NetworkIsFriendIndexOnline(int friendIndex) { return _i(0xBAD8F2A42B844821, friendIndex); } // 0xbad8f2a42b8448210x94ae7172B323 - inline Void NetworkSetPlayerIsPassive(BOOL toggle) { return _i(0x1B857666604B1A74, toggle); } // 0x1b857666604b1a740x76a9feb6B323 - inline BOOL NetworkGetPlayerOwnsWaypoint(Player player) { return _i(0x82377B65E943F72D, player); } // 0x82377b65e943f72d0xb802b671B323 - inline BOOL NetworkCanSetWaypoint() { return _i(0xC927EC229934AF60); } // 0xc927ec229934af600x009e68f3B323 - inline Void NetworkIgnoreRemoteWaypoints() { return _i(0x4C2A9FDC22377075); } // 0x4c2a9fdc22377075B372 - inline BOOL NetworkIsPlayerOnBlocklist(Any* gamerHandle) { return _i(0xAD4326FCA30D62F8, gamerHandle); } // 0xad4326fca30d62f8B2802 - inline BOOL NetworkSetScriptAutomuted(Any p0) { return _i(0xB309EBEA797E001F, p0); } // 0xb309ebea797e001f0x5c0ab2a9B323 - inline BOOL NetworkHasAutomuteOverride() { return _i(0x26F07DD83A5F7F98); } // 0x26f07dd83a5f7f980x9a176b6eB323 - inline BOOL NetworkHasHeadset() { return _i(0xE870F9F1F7B4F1FA); } // 0xe870f9f1f7b4f1fa0xa7dc5657B323 - inline Void NetworkSetLookAtTalkers(BOOL p0) { return _i(0x7D395EA61622E116, p0); } // 0x7d395ea61622e1160x5c05b7e1B323 - inline BOOL NetworkIsPushToTalkActive() { return _i(0xC0D2AF00BCC234CA); } // 0xc0d2af00bcc234caB323 - inline BOOL NetworkGamerHasHeadset(Any* gamerHandle) { return _i(0xF2FD55CB574BCC55, gamerHandle); } // 0xf2fd55cb574bcc550xd036da4aB323 - inline BOOL NetworkIsGamerTalking(Any* gamerHandle) { return _i(0x71C33B22606CD88A, gamerHandle); } // 0x71c33b22606cd88a0x99b58dbcB323 - inline BOOL NetworkPermissionsHasGamerRecord(Any* gamerHandle) { return _i(0x559EBF901A8C68E0, gamerHandle); } // 0x559ebf901a8c68e0B2699 - inline BOOL NetworkCanCommunicateWithGamer(Any* gamerHandle) { return _i(0x8F5D1AD832AEB06C, gamerHandle); } // 0x8f5d1ad832aeb06c0xd05eb7f6B323 - inline BOOL NetworkCanTextChatWithGamer(Any* gamerHandle) { return _i(0xA150A4F065806B1F, gamerHandle); } // 0xa150a4f065806b1fB944 - inline BOOL NetworkIsGamerMutedByMe(Any* gamerHandle) { return _i(0xCE60DE011B6C7978, gamerHandle); } // 0xce60de011b6c79780x001b4046B323 - inline BOOL NetworkAmIMutedByGamer(Any* gamerHandle) { return _i(0xDF02A2C93F1F26DA, gamerHandle); } // 0xdf02a2c93f1f26da0x7685b333B323 - inline BOOL NetworkIsGamerBlockedByMe(Any* gamerHandle) { return _i(0xE944C4F5AF1B5883, gamerHandle); } // 0xe944c4f5af1b58830x3fdcc8d7B323 - inline BOOL NetworkAmIBlockedByGamer(Any* gamerHandle) { return _i(0x15337C7C268A27B2, gamerHandle); } // 0x15337c7c268a27b20xd19b312cB323 - inline BOOL NetworkCanViewGamerUserContent(Any* gamerHandle) { return _i(0xB57A49545BA53CE7, gamerHandle); } // 0xb57a49545ba53ce7B323 - inline BOOL NetworkHasViewGamerUserContentResult(Any* gamerHandle) { return _i(0xCCA4318E1AB03F1F, gamerHandle); } // 0xcca4318e1ab03f1fB323 - inline BOOL NetworkCanPlayMultiplayerWithGamer(Any* gamerHandle) { return _i(0x07DD29D5E22763F1, gamerHandle); } // 0x07dd29d5e22763f1B323 - inline BOOL NetworkCanGamerPlayMultiplayerWithMe(Any* gamerHandle) { return _i(0x135F9B7B7ADD2185, gamerHandle); } // 0x135f9b7b7add2185B323 - inline BOOL NetworkCanSendLocalInvite(Any* gamerHandle) { return _i(0x021ABCBD98EC4320, gamerHandle); } // 0x021abcbd98ec4320B2612 - inline BOOL NetworkCanReceiveLocalInvite(Any* gamerHandle) { return _i(0x421E34C55F125964, gamerHandle); } // 0x421e34c55f125964B2612 - // returns true if someone is screaming or talking in a microphone - inline BOOL NetworkIsPlayerTalking(Player player) { return _i(0x031E11F3D447647E, player); } // 0x031e11f3d447647e0xda9fd9dbB323 - inline BOOL NetworkPlayerHasHeadset(Player player) { return _i(0x3FB99A8B08D18FD6, player); } // 0x3fb99a8b08d18fd60x451fb6b6B323 - inline BOOL NetworkIsPlayerMutedByMe(Player player) { return _i(0x8C71288AE68EDE39, player); } // 0x8c71288ae68ede390x7a21050eB323 - inline BOOL NetworkAmIMutedByPlayer(Player player) { return _i(0x9D6981DFC91A8604, player); } // 0x9d6981dfc91a86040xe128f2b0B323 - inline BOOL NetworkIsPlayerBlockedByMe(Player player) { return _i(0x57AF1F8E27483721, player); } // 0x57af1f8e274837210xae4f4560B323 - inline BOOL NetworkAmIBlockedByPlayer(Player player) { return _i(0x87F395D957D4353D, player); } // 0x87f395d957d4353d0x953ef45eB323 - inline float NetworkGetPlayerLoudness(Player player) { return _i(0x21A1684A25C2867F, player); } // 0x21a1684a25c2867f0xf2f67014B323 - inline Void NetworkSetTalkerProximity(float value) { return _i(0xCBF12D65F95AD686, value); } // 0xcbf12d65f95ad6860x67555c66B323 - inline float NetworkGetTalkerProximity() { return _i(0x84F0F13120B4E098); } // 0x84f0f13120b4e0980x19991addB323 - inline Void NetworkSetVoiceActive(BOOL toggle) { return _i(0xBABEC9E69A91C57B, toggle); } // 0xbabec9e69a91c57b0x8011247fB323 - inline Void NetworkRemainInGameChat(BOOL p0) { return _i(0xCFEB46DCD7D8D5EB, p0); } // 0xcfeb46dcd7d8d5eb0x1a3ea6cdB323 - inline Void NetworkOverrideTransitionChat(BOOL p0) { return _i(0xAF66059A131AA269, p0); } // 0xaf66059a131aa2690xcab21090B323 - inline Void NetworkSetTeamOnlyChat(BOOL toggle) { return _i(0xD5B4883AC32F24C3, toggle); } // 0xd5b4883ac32f24c30x3813019aB323 - inline Void NetworkSetScriptControllingTeams(Any p0) { return _i(0x265559DA40B3F327, p0); } // 0x265559da40b3f327B573 - inline BOOL NetworkSetSameTeamAsLocalPlayer(Any p0, Any p1) { return _i(0x4348BFDA56023A2F, p0, p1); } // 0x4348bfda56023a2fB573 - inline Void NetworkOverrideTeamRestrictions(int team, BOOL toggle) { return _i(0x6F697A66CE78674E, team, toggle); } // 0x6f697a66ce78674e0xc8cc9e75B323 - inline Void NetworkSetOverrideSpectatorMode(BOOL toggle) { return _i(0x70DA3BF8DACD3210, toggle); } // 0x70da3bf8dacd32100xa0fd42d3B323 - inline Void NetworkSetOverrideTutorialSessionChat(BOOL toggle) { return _i(0x3C5C1E2C2FF814B1, toggle); } // 0x3c5c1e2c2ff814b10xc9dda85bB323 - inline Void NetworkSetProximityAffectsTeam(BOOL toggle) { return _i(0x9D7AFCBF21C51712, toggle); } // 0x9d7afcbf21c517120xe5219410B323 - inline Void NetworkSetNoSpectatorChat(BOOL toggle) { return _i(0xF46A1E03E8755980, toggle); } // 0xf46a1e03e87559800xd33aff79B323 - inline Void NetworkSetIgnoreSpectatorChatLimitsSameTeam(BOOL toggle) { return _i(0x6A5D89D7769A40D8, toggle); } // 0x6a5d89d7769a40d80x4ffefe43B323 - // Could possibly bypass being muted or automatically muted - inline Void NetworkOverrideChatRestrictions(Player player, BOOL toggle) { return _i(0x3039AE5AD2C9C0C4, player, toggle); } // 0x3039ae5ad2c9c0c40x74ee2d8bB323 - // This is used alongside the native, - // 'NetworkOverrideReceiveRestrictions'. Read its description for more info. - inline Void NetworkOverrideSendRestrictions(Player player, BOOL toggle) { return _i(0x97DD4C5944CC2E6A, player, toggle); } // 0x97dd4c5944cc2e6a0x6c344ae3B323 - inline Void NetworkOverrideSendRestrictionsAll(BOOL toggle) { return _i(0x57B192B4D4AD23D5, toggle); } // 0x57b192b4d4ad23d50x2f98b405B323 - // R* uses this to hear all player when spectating. - // It allows you to hear other online players when their chat is on none, crew and or friends - inline Void NetworkOverrideReceiveRestrictions(Player player, BOOL toggle) { return _i(0xDDF73E2B1FEC5AB4, player, toggle); } // 0xddf73e2b1fec5ab40x95f1c60dB323 - // p0 is always false in scripts. - inline Void NetworkOverrideReceiveRestrictionsAll(BOOL toggle) { return _i(0x0FF2862B61A58AF9, toggle); } // 0x0ff2862b61a58af90x1bcd3ddfB323 - inline Void NetworkSetVoiceChannel(int channel) { return _i(0xEF6212C2EFEF1A23, channel); } // 0xef6212c2efef1a230x3974879fB323 - inline Void NetworkClearVoiceChannel() { return _i(0xE036A705F989E049); } // 0xe036a705f989e0490x9ecf722aB323 - inline Void NetworkApplyVoiceProximityOverride(float x, float y, float z) { return _i(0xDBD2056652689917, x, y, z); } // 0xdbd20566526899170xf1e84832B323 - inline Void NetworkClearVoiceProximityOverride() { return _i(0xF03755696450470C); } // 0xf03755696450470c0x7f9b9052B323 - inline Void NetworkEnableVoiceBandwidthRestriction(Player player) { return _i(0x5E3AA4CA2B6FB0EE, player); } // 0x5e3aa4ca2b6fb0ee0x7bbea8cfB323 - inline Void NetworkDisableVoiceBandwidthRestriction(Player player) { return _i(0xCA575C391FEA25CC, player); } // 0xca575c391fea25cc0xe797a4b6B323 - // NETWORK_GET_M[A-U] - inline Void NetworkGetMuteCountForPlayer(Player p0, float* p1, float* p2) { return _i(0xADB57E5B663CCA8B, p0, p1, p2); } // 0xadb57e5b663cca8b0x92268bb5B323 - inline Void NetworkSetSpectatorToNonSpectatorTextChat(BOOL toggle) { return _i(0x8EF52ACAECC51D9C, toggle); } // 0x8ef52acaecc51d9cB1734 - // Same as _IS_TEXT_CHAT_ACTIVE, except it does not check if the text chat HUD component is initialized, and therefore may crash. - inline BOOL NetworkTextChatIsTyping() { return _i(0x5FCF4D7069B09026); } // 0x5fcf4d7069b09026B323 - // Starts a new singleplayer game (at the prologue). - inline Void ShutdownAndLaunchSinglePlayerGame() { return _i(0x593850C16A36B692); } // 0x593850c16a36b6920x92b7351cB323 - // In singleplayer this will re-load your game. - // - // In FiveM / GTA:Online this disconnects you from the session, and starts loading single player, however you still remain connected to the server (only if you're the host, if you're not then you also (most likely) get disconnected from the server) and other players will not be able to join until you exit the game. - // - // You might need to DoScreenFadeIn and ShutdownLoadingScreen otherwise you probably won't end up loading into SP at all. - // - // Somewhat related note: opening the pause menu after loading into this 'singleplayer' mode crashes the game. - inline BOOL ShutdownAndLoadMostRecentSave() { return _i(0x9ECA15ADFE141431); } // 0x9eca15adfe141431B505 - inline Void NetworkSetFriendlyFireOption(BOOL toggle) { return _i(0xF808475FA571D823, toggle); } // 0xf808475fa571d8230x6baf95faB323 - // This native does absolutely nothing, just a nullsub - inline Void NetworkSetRichPresence(int p0, int p1, Any p2, Any p3) { return _i(0x1DCCACDCFC569362, p0, p1, p2, p3); } // 0x1dccacdcfc5693620x932a6cedB323 - // This native does absolutely nothing, just a nullsub - inline Void NetworkSetRichPresenceString(int p0, String textLabel) { return _i(0x3E200C2BCF4164EB, p0, textLabel); } // 0x3e200c2bcf4164eb0x017e6777B323 - inline int NetworkGetTimeoutTime() { return _i(0x5ED0356A0CE3A34F); } // 0x5ed0356a0ce3a34f0xe1f86c6aB323 - // p4 and p5 are always 0 in scripts - inline Void NetworkLeavePedBehindBeforeWarp(Player player, float x, float y, float z, BOOL p4, BOOL p5) { return _i(0x9769F811D1785B03, player, x, y, z, p4, p5); } // 0x9769f811d1785b030xbe6a30c3B323 - inline Void NetworkLeavePedBehindBeforeCutscene(Player player, BOOL p1) { return _i(0xBF22E0F32968E967, player, p1); } // 0xbf22e0f32968e9670x22e03ad0B323 - // entity must be a valid entity; ped can be NULL - inline Void RemoveAllStickyBombsFromEntity(Entity entity, Ped ped) { return _i(0x715135F4B82AC90D, entity, ped); } // 0x715135f4b82ac90d0xceae5afcB323 - inline Void NetworkKeepEntityCollisionDisabledAfterAnimScene(Any p0, Any p1) { return _i(0x17C9E241111A674D, p0, p1); } // 0x17c9e241111a674dB2060 - inline BOOL NetworkIsAnyPlayerNear(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6) { return _i(0x2E4C123D1C8A710E, p0, p1, p2, p3, p4, p5, p6); } // 0x2e4c123d1c8a710eB505 - inline BOOL NetworkClanServiceIsValid() { return _i(0x579CCED0265D4896); } // 0x579cced0265d48960xf5f4bd95B323 - inline BOOL NetworkClanPlayerIsActive(Any* gamerHandle) { return _i(0xB124B57F571D8F18, gamerHandle); } // 0xb124b57f571d8f180xab8319a3B323 - // bufferSize is 35 in the scripts. - // - // bufferSize is the elementCount of p0(desc), sizeof(p0) == 280 == p1*8 == 35 * 8, p2(netHandle) is obtained from NETWORK::NetworkHandleFromPlayer. And no, I can't explain why 35 * sizeof(int) == 280 and not 140, but I'll get back to you on that. - // - // the answer is: because p0 an int64_t* / int64_t[35]. and FYI p2 is an int64_t[13] - // - // https://pastebin.com/cSZniHak - inline BOOL NetworkClanPlayerGetDesc(Any* clanDesc, int bufferSize, Any* gamerHandle) { return _i(0xEEE6EACBE8874FBA, clanDesc, bufferSize, gamerHandle); } // 0xeee6eacbe8874fba0x6ee4a282B323 - // bufferSize is 35 in the scripts. - inline BOOL NetworkClanIsRockstarClan(Any* clanDesc, int bufferSize) { return _i(0x7543BB439F63792B, clanDesc, bufferSize); } // 0x7543bb439f63792b0x54e79e9cB323 - // bufferSize is 35 in the scripts. - inline Void NetworkClanGetUiFormattedTag(Any* clanDesc, int bufferSize, char* formattedTag) { return _i(0xF45352426FF3A4F0, clanDesc, bufferSize, formattedTag); } // 0xf45352426ff3a4f00xf633805aB323 - inline int NetworkClanGetLocalMembershipsCount() { return _i(0x1F471B79ACC90BEF); } // 0x1f471b79acc90bef0x807b3450B323 - inline BOOL NetworkClanGetMembershipDesc(Any* memberDesc, int p1) { return _i(0x48DE78AF2C8885B8, memberDesc, p1); } // 0x48de78af2c8885b80x3369dd1fB323 - inline BOOL NetworkClanDownloadMembership(Any* gamerHandle) { return _i(0xA989044E70010ABE, gamerHandle); } // 0xa989044e70010abe0x8e8cb520B323 - inline BOOL NetworkClanDownloadMembershipPending(Any* p0) { return _i(0x5B9E023DC6EBEDC0, p0); } // 0x5b9e023dc6ebedc00x1fdb590fB323 - inline BOOL NetworkClanAnyDownloadMembershipPending() { return _i(0xB3F64A6A91432477); } // 0xb3f64a6a914324770x83ed8e08B323 - inline BOOL NetworkClanRemoteMembershipsAreInCache(int* p0) { return _i(0xBB6E6FEE99D866B2, p0); } // 0xbb6e6fee99d866b20x40202867B323 - inline int NetworkClanGetMembershipCount(int* p0) { return _i(0xAAB11F6C4ADBC2C1, p0); } // 0xaab11f6c4adbc2c10x25924010B323 - inline BOOL NetworkClanGetMembershipValid(int* p0, Any p1) { return _i(0x48A59CF88D43DF0E, p0, p1); } // 0x48a59cf88d43df0e0x48914f6aB323 - inline BOOL NetworkClanGetMembership(int* p0, Any* clanMembership, int p2) { return _i(0xC8BC2011F67B3411, p0, clanMembership, p2); } // 0xc8bc2011f67b34110xcdc4a590B323 - inline BOOL NetworkClanJoin(int clanDesc) { return _i(0x9FAAA4F4FC71F87F, clanDesc); } // 0x9faaa4f4fc71f87f0x79c916c5B323 - // Only documented... - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline BOOL NetworkClanCrewinfoGetStringValue(String animDict, String animName) { return _i(0x729E3401F0430686, animDict, animName); } // 0x729e3401f04306860xbda90bacB323 - inline BOOL NetworkClanCrewinfoGetCrewranktitle(int p0, String p1) { return _i(0x2B51EDBEFC301339, p0, p1); } // 0x2b51edbefc3013390x8e952b12B323 - inline BOOL NetworkClanHasCrewinfoMetadataBeenReceived() { return _i(0xC32EA7A2F6CA7557); } // 0xc32ea7a2f6ca75570x966c90fdB323 - inline BOOL NetworkClanGetEmblemTxdName(Any* netHandle, char* txdName) { return _i(0x5835D9CD92E83184, netHandle, txdName); } // 0x5835d9cd92e831840xba672146B323 - inline BOOL NetworkClanRequestEmblem(Any p0) { return _i(0x13518FF1C6B28938, p0); } // 0x13518ff1c6b289380x7963fa4dB323 - inline BOOL NetworkClanIsEmblemReady(Any p0, Any* p1) { return _i(0xA134777FF7F33331, p0, p1); } // 0xa134777ff7f333310x88b13cdcB323 - inline Void NetworkClanReleaseEmblem(Any p0) { return _i(0x113E6E3E50E286B0, p0); } // 0x113e6e3e50e286b00xd6e3d5eaB323 - inline BOOL NetworkGetPrimaryClanDataClear() { return _i(0x9AA46BADAD0E27ED); } // 0x9aa46badad0e27ed0xe22445daB323 - inline Void NetworkGetPrimaryClanDataCancel() { return _i(0x042E4B70B93E6054); } // 0x042e4b70b93e60540x455ddf5cB323 - inline BOOL NetworkGetPrimaryClanDataStart(Any* p0, Any p1) { return _i(0xCE86D8191B762107, p0, p1); } // 0xce86d8191b7621070x89db0ec7B323 - inline BOOL NetworkGetPrimaryClanDataPending() { return _i(0xB5074DB804E28CE7); } // 0xb5074db804e28ce70xa4ef02f3B323 - inline BOOL NetworkGetPrimaryClanDataSuccess() { return _i(0x5B4F04F19376A0BA); } // 0x5b4f04f19376a0ba0x068a054eB323 - inline BOOL NetworkGetPrimaryClanDataNew(Any* p0, Any* p1) { return _i(0xC080FF658B2E41DA, p0, p1); } // 0xc080ff658b2e41da0x9b8631ebB323 - // Whether or not another player is allowed to take control of the entity - inline Void SetNetworkIdCanMigrate(int netId, BOOL toggle) { return _i(0x299EEB23175895FC, netId, toggle); } // 0x299eeb23175895fc0x47c8e5ffB323 - inline Void SetNetworkIdExistsOnAllMachines(int netId, BOOL toggle) { return _i(0xE05E81A888FA63C8, netId, toggle); } // 0xe05e81a888fa63c80x68d486b2B323 - inline Void SetNetworkIdAlwaysExistsForPlayer(int netId, Player player, BOOL toggle) { return _i(0xA8A024587329F36A, netId, player, toggle); } // 0xa8a024587329f36a0x4d15fdb1B323 - // "No Reassign" in CPhysicalScriptGameStateDataNode - inline Void SetNetworkIdCanBeReassigned(int netId, BOOL toggle) { return _i(0x9D724B400A7E8FFC, netId, toggle); } // 0x9d724b400a7e8ffcB2189 - inline Void NetworkSetEntityCanBlend(Entity entity, BOOL toggle) { return _i(0xD830567D88A1E873, entity, toggle); } // 0xd830567d88a1e8730xde8c0db8B323 - inline Void NetworkSetObjectCanBlendWhenFixed(Object object, BOOL toggle) { return _i(0x0379DAF89BA09AA5, object, toggle); } // 0x0379daf89ba09aa5B944 - // if set to true other network players can't see it - // if set to false other network player can see it - // ========================================= - // ^^ I attempted this by grabbing an object with GetEntityPlayerIsFreeAimingAt and setting this naive no matter the toggle he could still see it. - // - // pc or last gen? - // - // ^^ last-gen - inline Void NetworkSetEntityOnlyExistsForParticipants(Entity entity, BOOL toggle) { return _i(0xF1CA12B18AEF5298, entity, toggle); } // 0xf1ca12b18aef52980x09cbc4b0B323 - inline Void SetNetworkIdVisibleInCutscene(int netId, BOOL p1, BOOL p2) { return _i(0xA6928482543022B4, netId, p1, p2); } // 0xa6928482543022b40x199e75efB323 - inline Void SetNetworkIdVisibleInCutsceneHack(int netId, BOOL p1, BOOL p2) { return _i(0x32EBD154CB6B8B99, netId, p1, p2); } // 0x32ebd154cb6b8b99B505 - inline Void SetNetworkIdVisibleInCutsceneRemainHack(Any p0, Any p1) { return _i(0x76B3F29D3F967692, p0, p1); } // 0x76b3f29d3f967692B2189 - inline Void SetNetworkCutsceneEntities(BOOL toggle) { return _i(0xAAA553E7DD28A457, toggle); } // 0xaaa553e7dd28a4570xfd0f7eddB323 - // Getter for SetNetworkCutsceneEntities. - inline BOOL AreCutsceneEntitiesNetworked() { return _i(0x66D6A5E9C511214A); } // 0x66d6a5e9c511214aB2699 - inline Void SetNetworkIdPassControlInTutorial(int netId, BOOL state) { return _i(0x3FA36981311FA4FF, netId, state); } // 0x3fa36981311fa4ff0x00ae4e17B323 - inline BOOL IsNetworkIdOwnedByParticipant(int netId) { return _i(0xA1607996431332DF, netId); } // 0xa1607996431332df0xea5176c0B323 - inline Void SetRemotePlayerVisibleInCutscene(Player player, BOOL locallyVisible) { return _i(0x96320E6549DAE7B4, player, locallyVisible); } // 0x96320e6549dae7b4B2802 - inline Void SetLocalPlayerVisibleInCutscene(BOOL p0, BOOL p1) { return _i(0xD1065D68947E7B6E, p0, p1); } // 0xd1065d68947e7b6e0x59f3479bB323 - inline Void SetLocalPlayerInvisibleLocally(BOOL bIncludePlayersVehicle) { return _i(0xE5F773C1A1D9D168, bIncludePlayersVehicle); } // 0xe5f773c1a1d9d1680x764f6222B323 - inline Void SetLocalPlayerVisibleLocally(BOOL bIncludePlayersVehicle) { return _i(0x7619364C82D3BF14, bIncludePlayersVehicle); } // 0x7619364c82d3bf140x324b56dbB323 - inline Void SetPlayerInvisibleLocally(Player player, BOOL bIncludePlayersVehicle) { return _i(0x12B37D54667DB0B8, player, bIncludePlayersVehicle); } // 0x12b37d54667db0b80x18227209B323 - inline Void SetPlayerVisibleLocally(Player player, BOOL bIncludePlayersVehicle) { return _i(0xFAA10F1FAFB11AF2, player, bIncludePlayersVehicle); } // 0xfaa10f1fafb11af20xba2bb4b4B323 - // Hardcoded to not work in SP. - inline Void FadeOutLocalPlayer(BOOL p0) { return _i(0x416DBD4CD6ED8DD2, p0); } // 0x416dbd4cd6ed8dd20x8fa7cebdB323 - // normal - transition like when your coming out of LSC - // slow - transition like when you walk into a mission - // - inline Void NetworkFadeOutEntity(Entity entity, BOOL normal, BOOL slow) { return _i(0xDE564951F95E09ED, entity, normal, slow); } // 0xde564951f95e09ed0x47edee56B323 - // state - 0 does 5 fades - // state - 1 does 6 fades - // - // p3: setting to 1 made vehicle fade in slower, probably "slow" as per NetworkFadeOutEntity - inline Void NetworkFadeInEntity(Entity entity, BOOL state, Any p2) { return _i(0x1F4ED342ACEFE62D, entity, state, p2); } // 0x1f4ed342acefe62d0x9b9fcd02B323 - inline BOOL NetworkIsPlayerFading(Player player) { return _i(0x631DC5DFF4B110E3, player); } // 0x631dc5dff4b110e30x065c597bB323 - inline BOOL NetworkIsEntityFading(Entity entity) { return _i(0x422F32CC7E56ABAD, entity); } // 0x422f32cc7e56abad0xb5087acfB323 - inline BOOL IsPlayerInCutscene(Player player) { return _i(0xE73092F4157CD126, player); } // 0xe73092f4157cd1260xe0a619bdB323 - inline Void SetEntityVisibleInCutscene(Any p0, BOOL p1, BOOL p2) { return _i(0xE0031D3C8F36AB82, p0, p1, p2); } // 0xe0031d3c8f36ab820xdbfb067bB323 - // Makes the provided entity visible for yourself for the current frame. - inline Void SetEntityLocallyInvisible(Entity entity) { return _i(0xE135A9FF3F5D05D8, entity); } // 0xe135a9ff3f5d05d80x51adcc5fB323 - inline Void SetEntityLocallyVisible(Entity entity) { return _i(0x241E289B5C059EDC, entity); } // 0x241e289b5c059edc0x235a57b3B323 - inline BOOL IsDamageTrackerActiveOnNetworkId(int netID) { return _i(0x6E192E33AD436366, netID); } // 0x6e192e33ad4363660x597063baB323 - inline Void ActivateDamageTrackerOnNetworkId(int netID, BOOL toggle) { return _i(0xD45B1FFCCD52FF19, netID, toggle); } // 0xd45b1ffccd52ff190x95d07ba5B323 - inline BOOL IsDamageTrackerActiveOnPlayer(Player player) { return _i(0xB2092A1EAA7FD45F, player); } // 0xb2092a1eaa7fd45fB757 - inline Void ActivateDamageTrackerOnPlayer(Player player, BOOL toggle) { return _i(0xBEC0816FF5ACBCDA, player, toggle); } // 0xbec0816ff5acbcdaB757 - inline BOOL IsSphereVisibleToAnotherMachine(float p0, float p1, float p2, float p3) { return _i(0xD82CF8E64C8729D8, p0, p1, p2, p3); } // 0xd82cf8e64c8729d80x23c5274eB323 - inline BOOL IsSphereVisibleToPlayer(Any p0, float p1, float p2, float p3, float p4) { return _i(0xDC3A310219E5DA62, p0, p1, p2, p3, p4); } // 0xdc3a310219e5da620xe9fcfb32B323 - inline Void ReserveNetworkMissionObjects(int amount) { return _i(0x4E5C93BD0C32FBF8, amount); } // 0x4e5c93bd0c32fbf80x391df4f3B323 - inline Void ReserveNetworkMissionPeds(int amount) { return _i(0xB60FEBA45333D36F, amount); } // 0xb60feba45333d36f0x54998c37B323 - inline Void ReserveNetworkMissionVehicles(int amount) { return _i(0x76B02E21ED27A469, amount); } // 0x76b02e21ed27a4690x5062875eB323 - inline Void ReserveLocalNetworkMissionObjects(int amount) { return _i(0x797F9C5E661D920E, amount); } // 0x797f9c5e661d920eB1290 - inline Void ReserveLocalNetworkMissionPeds(int amount) { return _i(0x2C8DF5D129595281, amount); } // 0x2c8df5d129595281B1493 - inline Void ReserveLocalNetworkMissionVehicles(int amount) { return _i(0x42613035157E4208, amount); } // 0x42613035157e4208B1103 - inline BOOL CanRegisterMissionObjects(int amount) { return _i(0x800DD4721A8B008B, amount); } // 0x800dd4721a8b008b0x7f85dfdeB323 - inline BOOL CanRegisterMissionPeds(int amount) { return _i(0xBCBF4FEF9FA5D781, amount); } // 0xbcbf4fef9fa5d7810xccaa5ce9B323 - inline BOOL CanRegisterMissionVehicles(int amount) { return _i(0x7277F1F2E085EE74, amount); } // 0x7277f1f2e085ee740x818b6830B323 - inline BOOL CanRegisterMissionPickups(int amount) { return _i(0x0A49D1CB6E34AF72, amount); } // 0x0a49d1cb6e34af72B757 - inline BOOL CanRegisterMissionDoors(Any p0) { return _i(0xE16AA70CE9BEEDC3, p0); } // 0xe16aa70ce9beedc3B877 - inline BOOL CanRegisterMissionEntities(int ped_amt, int vehicle_amt, int object_amt, int pickup_amt) { return _i(0x69778E7564BADE6D, ped_amt, vehicle_amt, object_amt, pickup_amt); } // 0x69778e7564bade6d0x83794008B323 - // p0 appears to be for MP - inline int GetNumReservedMissionObjects(BOOL p0, Any p1) { return _i(0xAA81B5F10BC43AC2, p0, p1); } // 0xaa81b5f10bc43ac20x16a80cd6B323 - // p0 appears to be for MP - inline int GetNumReservedMissionPeds(BOOL p0, Any p1) { return _i(0x1F13D5AE5CB17E17, p0, p1); } // 0x1f13d5ae5cb17e170x6c25975cB323 - // p0 appears to be for MP - inline int GetNumReservedMissionVehicles(BOOL p0, Any p1) { return _i(0xCF3A965906452031, p0, p1); } // 0xcf3a9659064520310xa9a308f3B323 - inline int GetNumCreatedMissionObjects(BOOL p0) { return _i(0x12B6281B6C6706C0, p0); } // 0x12b6281b6c6706c00x603fa104B323 - inline int GetNumCreatedMissionPeds(BOOL p0) { return _i(0xCB215C4B56A7FAE7, p0); } // 0xcb215c4b56a7fae70xd8fec4f8B323 - inline int GetNumCreatedMissionVehicles(BOOL p0) { return _i(0x0CD9AB83489430EA, p0); } // 0x0cd9ab83489430ea0x20527695B323 - inline Void GetReservedMissionEntitiesInArea(float x, float y, float z, Any p3, Any* out1, Any* out2, Any* out3) { return _i(0xE42D626EEC94E5D9, x, y, z, p3, out1, out2, out3); } // 0xe42d626eec94e5d9B1290 - inline int GetMaxNumNetworkObjects() { return _i(0xC7BE335216B5EC7C); } // 0xc7be335216b5ec7c0x8687e285B323 - inline int GetMaxNumNetworkPeds() { return _i(0x0C1F7D49C39D2289); } // 0x0c1f7d49c39d22890x744ac008B323 - inline int GetMaxNumNetworkVehicles() { return _i(0x0AFCE529F69B21FF); } // 0x0afce529f69b21ff0xc3a12135B323 - inline int GetMaxNumNetworkPickups() { return _i(0xA72835064DD63E4C); } // 0xa72835064dd63e4c0x6a036061B323 - inline Void NetworkSetObjectScopeDistance(Object object, float range) { return _i(0xBA7F0B77D80A4EB7, object, range); } // 0xba7f0b77d80a4eb7B372 - inline Void NetworkAllowCloningWhileInTutorial(Any p0, Any p1) { return _i(0x0F1A4B45B7693B95, p0, p1); } // 0x0f1a4b45b7693b95B2189 - // A value between 1.0 and 5.0 - // - // _NETWORK_SET_TASK_CUTSCENE_PROXIMITY_SCALE? - inline Void NetworkSetTaskCutsceneInscopeMultipler(Any p0) { return _i(0xC6FCEE21C6FCEE21, p0); } // 0xc6fcee21c6fcee21B2545 - inline int GetNetworkTime() { return _i(0x7A5487FE9FAA6B48); } // 0x7a5487fe9faa6b480x998103c2B323 - // Returns the same value as GetNetworkTime in freemode, but as opposed to `GetNetworkTime` it always gets the most recent time, instead of once per tick. - // Could be used for benchmarking since it can return times in ticks. - inline int GetNetworkTimeAccurate() { return _i(0x89023FBBF9200E9F); } // 0x89023fbbf9200e9f0x98aa48e5B323 - inline BOOL HasNetworkTimeStarted() { return _i(0x46718ACEEDEAFC84); } // 0x46718aceedeafc840x4538c4a2B323 - // Adds the first argument to the second. - inline int GetTimeOffset(int timeA, int timeB) { return _i(0x017008CCDAD48503, timeA, timeB); } // 0x017008ccdad485030x2e079ae6B323 - // Subtracts the second argument from the first, then returns whether the result is negative. - inline BOOL IsTimeLessThan(int timeA, int timeB) { return _i(0xCB2CF5148012C8D0, timeA, timeB); } // 0xcb2cf5148012c8d00x50ef8fc6B323 - // Subtracts the first argument from the second, then returns whether the result is negative. - inline BOOL IsTimeMoreThan(int timeA, int timeB) { return _i(0xDE350F8651E4346C, timeA, timeB); } // 0xde350f8651e4346c0xbbb6df61B323 - // Returns true if the two times are equal; otherwise returns false. - inline BOOL IsTimeEqualTo(int timeA, int timeB) { return _i(0xF5BC95857BD6D512, timeA, timeB); } // 0xf5bc95857bd6d5120x8b4d1c06B323 - // Subtracts the second argument from the first. - inline int GetTimeDifference(int timeA, int timeB) { return _i(0xA2C6FC031D46FFF0, timeA, timeB); } // 0xa2c6fc031d46fff00x5666a837B323 - inline String GetTimeAsString(int time) { return _i(0x9E23B1777A927DAD, time); } // 0x9E23B1777A927DAD 0x8218944E b323 - // Same as GetCloudTimeAsInt but returns the value as a hex string (%I64X). - inline String GetCloudTimeAsString() { return _i(0xF12E6CD06C73D69E); } // 0xF12E6CD06C73D69E b1103 - // Returns POSIX timestamp, an int representing the cloud time. - inline int GetCloudTimeAsInt() { return _i(0x9A73240B49945C76); } // 0x9a73240b49945c760xf2fdf2e0B323 - // Takes the specified time and writes it to the structure specified in the second argument. - // - // struct date_time - // { - // int year; - // int PADDING1; - // int month; - // int PADDING2; - // int day; - // int PADDING3; - // int hour; - // int PADDING4; - // int minute; - // int PADDING5; - // int second; - // int PADDING6; - // }; - inline Void ConvertPosixTime(int posixTime, Any* timeStructure) { return _i(0xAC97AF97FA68E5D5, posixTime, timeStructure); } // 0xac97af97fa68e5d50xbb7cce49B323 - inline Void NetworkSetInSpectatorMode(BOOL toggle, Ped playerPed) { return _i(0x423DE3854BB50894, toggle, playerPed); } // 0x423de3854bb508940x5c4c8458B323 - inline Void NetworkSetInSpectatorModeExtended(BOOL toggle, Ped playerPed, BOOL p2) { return _i(0x419594E137637120, toggle, playerPed, p2); } // 0x419594e1376371200x54058f5fB323 - inline Void NetworkSetInFreeCamMode(BOOL toggle) { return _i(0xFC18DB55AE19E046, toggle); } // 0xfc18db55ae19e0460xa7e36020B323 - inline Void NetworkSetAntagonisticToPlayer(BOOL toggle, Player player) { return _i(0x5C707A667DF8B9FA, toggle, player); } // 0x5c707a667df8b9fa0x64235620B323 - inline BOOL NetworkIsInSpectatorMode() { return _i(0x048746E388762E11); } // 0x048746e388762e110x3ead9db8B323 - inline Void NetworkSetInMpCutscene(BOOL p0, BOOL p1) { return _i(0x9CA5DE655269FEC4, p0, p1); } // 0x9ca5de655269fec40x8434cb43B323 - inline BOOL NetworkIsInMpCutscene() { return _i(0x6CC27C9FA2040220); } // 0x6cc27c9fa20402200x4bb33316B323 - inline BOOL NetworkIsPlayerInMpCutscene(Player player) { return _i(0x63F9EE203C3619F2, player); } // 0x63f9ee203c3619f20x56f961e4B323 - inline Void NetworkHideProjectileInCutscene() { return _i(0xFAC18E7356BD3210); } // 0xfac18e7356bd3210B1180 - inline Void SetNetworkVehicleRespotTimer(int netId, int time, Any p2, Any p3) { return _i(0xEC51713AB6EC36E8, netId, time, p2, p3); } // 0xec51713ab6ec36e80x2c30912dB323 - inline BOOL IsNetworkVehicleRunningRespotTimer(int networkID) { return _i(0xDD7CEF5B3A4DA8A6, networkID); } // 0xdd7cef5b3a4da8a6B2802 - inline Void SetNetworkVehicleAsGhost(Vehicle vehicle, BOOL toggle) { return _i(0x6274C4712850841E, vehicle, toggle); } // 0x6274c4712850841e0xea235081B323 - // rage::netBlenderLinInterp::GetPositionMaxForUpdateLevel - inline Void SetNetworkVehicleMaxPositionDeltaMultiplier(Vehicle vehicle, float multiplier) { return _i(0xA2A707979FE754DC, vehicle, multiplier); } // 0xa2a707979fe754dcB877 - // Enables a periodic ShapeTest within the NetBlender and invokes rage::netBlenderLinInterp::GoStraightToTarget (or some functional wrapper). - inline Void SetNetworkEnableHighSpeedEdgeFallDetection(Vehicle vehicle, BOOL toggle) { return _i(0x838DA0936A24ED4D, vehicle, toggle); } // 0x838da0936a24ed4dB944 - inline Void SetLocalPlayerAsGhost(BOOL toggle, BOOL p1) { return _i(0x5FFE9B4144F9712F, toggle, p1); } // 0x5ffe9b4144f9712fB323 - inline BOOL IsEntityAGhost(Entity entity) { return _i(0x21D04D7BC538C146, entity); } // 0x21d04d7bc538c146B323 - inline Void SetNonParticipantsOfThisScriptAsGhosts(BOOL p0) { return _i(0x13F1FCB111B820B0, p0); } // 0x13f1fcb111b820b0B877 - // Enables ghosting between specific players - inline Void SetRemotePlayerAsGhost(Player player, BOOL p1) { return _i(0xA7C511FA1C5BDA38, player, p1); } // 0xa7c511fa1c5bda38B463 - // Must be a value between 1 and 254 - inline Void SetGhostAlpha(int alpha) { return _i(0x658500AE6D723A7E, alpha); } // 0x658500ae6d723a7eB791 - // Resets the entity ghost alpha to the default value (128) - inline Void ResetGhostAlpha() { return _i(0x17330EBF2F2124A8); } // 0x17330ebf2f2124a8B791 - inline Void SetEntityGhostedForGhostPlayers(Entity entity, BOOL toggle) { return _i(0x4BA166079D658ED4, entity, toggle); } // 0x4ba166079d658ed4B944 - inline Void SetInvertGhosting(BOOL p0) { return _i(0xD7B6C73CAD419BCF, p0); } // 0xd7b6c73cad419bcfB944 - inline BOOL IsEntityInGhostCollision(Entity entity) { return _i(0x7EF7649B64D7FF10, entity); } // 0x7ef7649b64d7ff10B944 - inline Void UsePlayerColourInsteadOfTeamColour(BOOL toggle) { return _i(0x77758139EC9B66C7, toggle); } // 0x77758139ec9b66c70x4dd46daeB323 - inline int NetworkCreateSynchronisedScene(float x, float y, float z, float xRot, float yRot, float zRot, int rotationOrder, BOOL useOcclusionPortal, BOOL looped, float p9, float animTime, float p11) { return _i(0x7CD6BC4C2BBDD526, x, y, z, xRot, yRot, zRot, rotationOrder, useOcclusionPortal, looped, p9, animTime, p11); } // 0x7cd6bc4c2bbdd5260xb06fe3feB323 - inline Void NetworkAddPedToSynchronisedScene(Ped ped, int netScene, String animDict, String animnName, float speed, float speedMultiplier, int duration, int flag, float playbackRate, Any p9) { return _i(0x742A637471BCECD9, ped, netScene, animDict, animnName, speed, speedMultiplier, duration, flag, playbackRate, p9); } // 0x742a637471bcecd90xb386713eB323 - inline Void NetworkAddPedToSynchronisedSceneWithIk(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9) { return _i(0xA5EAFE473E45C442, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); } // 0xa5eafe473e45c442B1290 - inline Void NetworkAddEntityToSynchronisedScene(Entity entity, int netScene, String animDict, String animName, float speed, float speedMulitiplier, int flag) { return _i(0xF2404D68CBC855FA, entity, netScene, animDict, animName, speed, speedMulitiplier, flag); } // 0xf2404d68cbc855fa0x10dd636cB323 - // Similar structure as NetworkAddEntityToSynchronisedScene but it includes this time a hash. - // In casino_slots it is used one time in a synced scene involving a ped and the slot machine? - inline Void NetworkAddMapEntityToSynchronisedScene(int netScene, Hash modelHash, float x, float y, float z, float p5, String p6, float p7, float p8, int flags) { return _i(0x45F35C0EDC33B03B, netScene, modelHash, x, y, z, p5, p6, p7, p8, flags); } // 0x45f35c0edc33b03bB1734 - inline Void NetworkAddSynchronisedSceneCamera(int netScene, String animDict, String animName) { return _i(0xCF8BD3B0BD6D42D7, netScene, animDict, animName); } // 0xcf8bd3b0bd6d42d70xbffe8b5cB323 - inline Void NetworkAttachSynchronisedSceneToEntity(int netScene, Entity entity, int bone) { return _i(0x478DCBD2A98B705A, netScene, entity, bone); } // 0x478dcbd2a98b705a0x3fe5b222B323 - inline Void NetworkStartSynchronisedScene(int netScene) { return _i(0x9A1B3FCDB36C8697, netScene); } // 0x9a1b3fcdb36c86970xa9dfdc40B323 - inline Void NetworkStopSynchronisedScene(int netScene) { return _i(0xC254481A4574CB2F, netScene); } // 0xc254481a4574cb2f0x97b1cdf6B323 - inline int NetworkGetLocalSceneFromNetworkId(int netId) { return _i(0x02C40BF885C567B6, netId); } // 0x02c40bf885c567b60x16aed87bB323 - inline Void NetworkForceLocalUseOfSyncedSceneCamera(int netScene) { return _i(0xC9B43A33D09CADA7, netScene); } // 0xc9b43a33d09cada70xc3aa2ec7B323 - inline Void NetworkAllowRemoteSyncedSceneLocalPlayerRequests(Any p0) { return _i(0x144DA052257AE7D8, p0); } // 0x144da052257ae7d8B1103 - // p0 is always 0. p1 is pointing to a global. - inline BOOL NetworkFindLargestBunchOfPlayers(int p0, Any p1) { return _i(0xFB1F9381E80FA13F, p0, p1); } // 0xfb1f9381e80fa13f0x0679ce71B323 - // One of the first things it does is get the players ped. - // Then it calls a function that is used in some tasks and ped based functions. - // p5, p6, p7 is another coordinate (or zero), often related to `GetBlipCoords, in the decompiled scripts. - inline BOOL NetworkStartRespawnSearchForPlayer(Player player, float x, float y, float z, float radius, float p5, float p6, float p7, int flags) { return _i(0x5A6FFA2433E2F14C, player, x, y, z, radius, p5, p6, p7, flags); } // 0x5a6ffa2433e2f14c0xc62e77b3B323 - // p8, p9, p10 is another coordinate, or zero, often related to `GetBlipCoords in the decompiled scripts. - inline BOOL NetworkStartRespawnSearchInAngledAreaForPlayer(Player player, float x1, float y1, float z1, float x2, float y2, float z2, float width, float p8, float p9, float p10, int flags) { return _i(0x4BA92A18502BCA61, player, x1, y1, z1, x2, y2, z2, width, p8, p9, p10, flags); } // 0x4ba92a18502bca610x74d6b13cB323 - inline int NetworkQueryRespawnResults(Any* p0) { return _i(0x3C891A251567DFCE, p0); } // 0x3c891a251567dfce0x90700c7dB323 - inline Void NetworkCancelRespawnSearch() { return _i(0xFB8F2A6F3DF08CBE); } // 0xfb8f2a6f3df08cbe0x44bfb619B323 - // Based on scripts such as in freemode.c how they call their vars vVar and fVar the 2nd and 3rd param it a Vector3 and Float, but the first is based on get_random_int_in_range.. - inline Void NetworkGetRespawnResult(int randomInt, Vector3* coordinates, float* heading) { return _i(0x371EA43692861CF1, randomInt, coordinates, heading); } // 0x371ea43692861cf10xddfe9fbcB323 - inline int NetworkGetRespawnResultFlags(int p0) { return _i(0x6C34F1208B8923FD, p0); } // 0x6c34f1208b8923fd0x03287fd2B323 - inline Void NetworkStartSoloTutorialSession() { return _i(0x17E0198B3882C2CB); } // 0x17e0198b3882c2cb0x408a9436B323 - // teamId must be < 3, instanceId must be < 64 - inline Void NetworkAllowGangToJoinTutorialSession(int teamId, int instanceId) { return _i(0xFB680D403909DC70, teamId, instanceId); } // 0xfb680d403909dc700xffb2ada1B323 - inline Void NetworkEndTutorialSession() { return _i(0xD0AFAFF5A51D72F7); } // 0xd0afaff5a51d72f70xba57e53eB323 - inline BOOL NetworkIsInTutorialSession() { return _i(0xADA24309FE08DACF); } // 0xada24309fe08dacf0x34dd7b28B323 - inline BOOL NetworkWaitingPopClearTutorialSession() { return _i(0xB37E4E6A2388CA7B); } // 0xb37e4e6a2388ca7b0x755a2b3eB323 - inline BOOL NetworkIsTutorialSessionChangePending() { return _i(0x35F0B98A8387274D); } // 0x35f0b98a8387274d0xa003c40bB323 - inline int NetworkGetPlayerTutorialSessionInstance(Player player) { return _i(0x3B39236746714134, player); } // 0x3b392367467141340x5e1020ccB323 - inline BOOL NetworkArePlayersInSameTutorialSession(Player player, int index) { return _i(0x9DE986FC9A87C474, player, index); } // 0x9de986fc9a87c4740xe66a0b40B323 - inline Void NetworkBlockProxyMigrationBetweenTutorialSessions(Any p0) { return _i(0xFEA7A352DDB34D52, p0); } // 0xfea7a352ddb34d52B2545 - inline Void NetworkConcealPlayer(Player player, BOOL toggle, BOOL p2) { return _i(0xBBDF066252829606, player, toggle, p2); } // 0xbbdf0662528296060x72052db3B323 - inline BOOL NetworkIsPlayerConcealed(Player player) { return _i(0x919B3C98ED8292F9, player); } // 0x919b3c98ed8292f90xb0313590B323 - inline Void NetworkConcealEntity(Entity entity, BOOL toggle) { return _i(0x1632BE0AC1E62876, entity, toggle); } // 0x1632be0ac1e62876B877 - // Note: This only works for vehicles, which appears to be a bug (since the setter _does_ work for every entity type and the name is 99% correct). - inline BOOL NetworkIsEntityConcealed(Entity entity) { return _i(0x71302EC70689052A, entity); } // 0x71302ec70689052aB877 - // Works in Singleplayer too. - // Passing wrong data (e.g. hours above 23) will cause the game to crash. - inline Void NetworkOverrideClockTime(int hours, int minutes, int seconds) { return _i(0xE679E3E06E363892, hours, minutes, seconds); } // 0xe679e3e06e3638920xc077bcd6B323 - inline Void NetworkOverrideClockRate(int ms) { return _i(0x42BF1D2E723B6D7E, ms); } // 0x42bf1d2e723b6d7eB2189 - inline Void NetworkClearClockTimeOverride() { return _i(0xD972DF67326F966E); } // 0xd972df67326f966e0xc4aeaf49B323 - inline BOOL NetworkIsClockTimeOverridden() { return _i(0xD7C95D322FF57522); } // 0xd7c95d322ff575220x2465296dB323 - inline int NetworkAddEntityArea(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x494C8FB299290269, x1, y1, z1, x2, y2, z2); } // 0x494c8fb2992902690x51030e5bB323 - // To remove, see: NetworkRemoveEntityArea - // See IsPointInAngledArea for the definition of an angled area. - inline int NetworkAddEntityAngledArea(float x1, float y1, float z1, float x2, float y2, float z2, float width) { return _i(0x376C6375BA60293A, x1, y1, z1, x2, y2, z2, width); } // 0x376c6375ba60293a0xcd69bea1B323 - inline int NetworkAddClientEntityArea(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x25B99872D588A101, x1, y1, z1, x2, y2, z2); } // 0x25b99872d588a1010x4c2c2b12B323 - inline int NetworkAddClientEntityAngledArea(float x1, float y1, float z1, float x2, float y2, float z2, float radius) { return _i(0x2B1C623823DB0D9D, x1, y1, z1, x2, y2, z2, radius); } // 0x2b1c623823db0d9dB1103 - inline BOOL NetworkRemoveEntityArea(int areaHandle) { return _i(0x93CF869BAA0C4874, areaHandle); } // 0x93cf869baa0c48740xeab97f25B323 - inline BOOL NetworkEntityAreaDoesExist(int areaHandle) { return _i(0xE64A3CA08DFA37A9, areaHandle); } // 0xe64a3ca08dfa37a90x69956127B323 - inline BOOL NetworkEntityAreaHaveAllReplied(int areaHandle) { return _i(0x4DF7CFFF471A7FB1, areaHandle); } // 0x4df7cfff471a7fb10xcb1cd6d3B323 - inline BOOL NetworkEntityAreaIsOccupied(int areaHandle) { return _i(0x4A2D4E8BF4265B0F, areaHandle); } // 0x4a2d4e8bf4265b0f0xc6d53aa0B323 - inline Void NetworkUseHighPrecisionBlending(int netID, BOOL toggle) { return _i(0x2B1813ABA29016C5, netID, toggle); } // 0x2b1813aba29016c50x155465eeB323 - inline Void NetworkSetCustomArenaBallParams(int netId) { return _i(0xA6FCECCF4721D679, netId); } // 0xa6fceccf4721d679B1604 - inline Void NetworkEntityUseHighPrecisionRotation(int netId, BOOL toggle) { return _i(0x95BAF97C82464629, netId, toggle); } // 0x95baf97c82464629B1604 - inline BOOL NetworkRequestCloudBackgroundScripts() { return _i(0x924426BFFD82E915); } // 0x924426bffd82e9150x98efb921B323 - inline BOOL NetworkIsCloudBackgroundScriptRequestPending() { return _i(0x8132C0EB8B2B3293); } // 0x8132c0eb8b2b32930x20ab933aB323 - inline Void NetworkRequestCloudTunables() { return _i(0x42FB3B532D526E6C); } // 0x42fb3b532d526e6c0xd760cad5B323 - inline BOOL NetworkIsTunableCloudRequestPending() { return _i(0x0467C11ED88B7D28); } // 0x0467c11ed88b7d280x47978d7fB323 - // Actually returns the version (TUNABLE_VERSION) - inline int NetworkGetTunableCloudCrc() { return _i(0x10BD227A753B0D84); } // 0x10bd227a753b0d840x231cfd12B323 - inline BOOL NetworkDoesTunableExist(String tunableContext, String tunableName) { return _i(0x85E5F8B9B898B20A, tunableContext, tunableName); } // 0x85e5f8b9b898b20a0x9fce9c9aB323 - inline BOOL NetworkAccessTunableInt(String tunableContext, String tunableName, int* value) { return _i(0x8BE1146DFD5D4468, tunableContext, tunableName, value); } // 0x8be1146dfd5d44680xe4b3726aB323 - inline BOOL NetworkAccessTunableFloat(String tunableContext, String tunableName, float* value) { return _i(0xE5608CA7BC163A5F, tunableContext, tunableName, value); } // 0xe5608ca7bc163a5f0x41e8912aB323 - inline BOOL NetworkAccessTunableBool(String tunableContext, String tunableName) { return _i(0xAA6A47A573ABB75A, tunableContext, tunableName); } // 0xaa6a47a573abb75a0x8a04e1feB323 - inline BOOL NetworkDoesTunableExistHash(Hash tunableContext, Hash tunableName) { return _i(0xE4E53E1419D81127, tunableContext, tunableName); } // 0xe4e53e1419d811270x25915cb9B323 - inline BOOL NetworkAccessTunableModificationDetectionClear() { return _i(0xFAFC23AEE23868DB); } // 0xfafc23aee23868dbB393 - inline BOOL NetworkAccessTunableIntHash(Hash tunableContext, Hash tunableName, int* value) { return _i(0x40FCE03E50E8DBE8, tunableContext, tunableName, value); } // 0x40fce03e50e8dbe80xb2e83b75B323 - inline BOOL NetworkAccessTunableIntModificationDetectionRegistrationHash(Hash contextHash, Hash nameHash, int* value) { return _i(0x3A8B55FDA4C8DDEF, contextHash, nameHash, value); } // 0x3a8b55fda4c8ddefB393 - inline BOOL NetworkAccessTunableFloatHash(Hash tunableContext, Hash tunableName, float* value) { return _i(0x972BC203BBC4C4D5, tunableContext, tunableName, value); } // 0x972bc203bbc4c4d50x3972551fB323 - inline BOOL NetworkAccessTunableFloatModificationDetectionRegistrationHash(Hash contextHash, Hash nameHash, float* value) { return _i(0x1950DAE9848A4739, contextHash, nameHash, value); } // 0x1950dae9848a4739B393 - inline BOOL NetworkAccessTunableBoolHash(Hash tunableContext, Hash tunableName) { return _i(0xEA16B69D93D71A45, tunableContext, tunableName); } // 0xea16b69d93d71a450x18867c61B323 - inline BOOL NetworkAccessTunableBoolModificationDetectionRegistrationHash(Hash contextHash, Hash nameHash, BOOL* value) { return _i(0x697F508861875B42, contextHash, nameHash, value); } // 0x697f508861875b42B393 - // Returns defaultValue if the tunable doesn't exist. - inline BOOL NetworkTryAccessTunableBoolHash(Hash tunableContext, Hash tunableName, BOOL defaultValue) { return _i(0xC7420099936CE286, tunableContext, tunableName, defaultValue); } // 0xc7420099936ce2860x8afe3d90B323 - // Return the content modifier id (the tunables context if you want) of a specific content. - // - // It takes the content hash (which is the mission id hash), and return the content modifier id, used as the tunables context. - // - // The mission id can be found on the Social club, for example, 'socialclub.rockstargames.com/games/gtav/jobs/job/A8M6Bz8MLEC5xngvDCzGwA' - // - // 'A8M6Bz8MLEC5xngvDCzGwA' is the mission id, so the game hash this and use it as the parameter for this native. - // - inline int NetworkGetContentModifierListId(Hash contentHash) { return _i(0x187382F8A3E0A6C3, contentHash); } // 0x187382f8a3e0a6c30xa78571caB323 - inline int NetworkGetBoneIdOfFatalHit() { return _i(0x7DB53B37A2F211A0); } // 0x7db53b37a2f211a00x053bb329B323 - inline Void NetworkResetBodyTracker() { return _i(0x72433699B4E6DD64); } // 0x72433699b4e6dd640x3914463fB323 - inline int NetworkGetNumberBodyTrackerHits() { return _i(0xD38C4A6D047C019D); } // 0xd38c4a6d047c019d0x17cbc608B323 - inline BOOL NetworkHasBoneBeenHitByKiller(int boneIndex) { return _i(0x2E0BF682CC778D49, boneIndex); } // 0x2e0bf682cc778d490xbfaa349bB323 - inline BOOL NetworkSetAttributeDamageToPlayer(Ped ped, Player player) { return _i(0x0EDE326D47CD0F3E, ped, player); } // 0x0ede326d47cd0f3e0xbeb7281aB323 - // Allows vehicle wheels to be destructible even when the vehicle entity is invincible. - inline Void NetworkTriggerDamageEventForZeroDamage(Entity entity, BOOL toggle) { return _i(0x890E2C5ABED7236D, entity, toggle); } // 0x890e2c5abed7236dB1365 - inline Void NetworkTriggerDamageEventForZeroWeaponHash(Entity entity, BOOL toggle) { return _i(0x38B7C51AB1EDC7D8, entity, toggle); } // 0x38b7c51ab1edc7d8B1734 - inline Void NetworkSetNoLongerNeeded(Entity entity, BOOL toggle) { return _i(0x3FC795691834481D, entity, toggle); } // 0x3fc795691834481dB1868 - // In the console script dumps, this is only referenced once. - // NETWORK::NetworkExplodeVehicle(vehicle, 1, 0, 0); - // - // ^^^^^ That must be PC script dumps? In X360 Script Dumps it is reference a few times with 2 differences in the parameters. - // Which as you see below is 1, 0, 0 + 1, 1, 0 + 1, 0, and a *param? - // - // am_plane_takedown.c - // network_explode_vehicle(net_to_veh(Local_40.imm_2), 1, 1, 0); - // - // armenian2.c - // network_explode_vehicle(Local_80[6 <2>], 1, 0, 0); - // - // fm_horde_controler.c - // network_explode_vehicle(net_to_veh(*uParam0), 1, 0, *uParam0); - // - // fm_mission_controller.c, has 6 hits so not going to list them. - // - // Side note, setting the first parameter to 0 seems to mute sound or so? - // - // Seems it's like AddExplosion, etc. the first 2 params. The 3rd atm no need to worry since it always seems to be 0. - // - inline BOOL NetworkExplodeVehicle(Vehicle vehicle, BOOL isAudible, BOOL isInvisible, int netId) { return _i(0x301A42153C9AD707, vehicle, isAudible, isInvisible, netId); } // 0x301a42153c9ad7070x0e1b38aeB323 - inline Void NetworkExplodeHeli(Vehicle vehicle, BOOL isAudible, BOOL isInvisible, int netId) { return _i(0x2A5E0621DD815A9A, vehicle, isAudible, isInvisible, netId); } // 0x2a5e0621dd815a9a0x955b31bfB463 - inline Void NetworkUseLogarithmicBlendingThisFrame(Entity entity) { return _i(0xCD71A4ECAB22709E, entity); } // 0xcd71a4ecab22709e0xbc54371bB323 - inline Void NetworkOverrideCoordsAndHeading(Entity entity, float x, float y, float z, float heading) { return _i(0xA7E30DE9272B6D49, entity, x, y, z, heading); } // 0xa7e30de9272b6d490x644141c5B323 - inline Void NetworkEnableExtraVehicleOrientationBlendChecks(int netId, BOOL toggle) { return _i(0xE6717E652B8C8D8A, netId, toggle); } // 0xe6717e652b8c8d8aB617 - inline Void NetworkDisableProximityMigration(int netID) { return _i(0x407091CF6037118E, netID); } // 0x407091cf6037118e0x9f82917fB323 - // value must be < 255 - inline Void NetworkSetPropertyId(int id) { return _i(0x1775961C2FBBCB5C, id); } // 0x1775961c2fbbcb5c0x5a74e873B323 - inline Void NetworkClearPropertyId() { return _i(0xC2B82527CA77053E); } // 0xc2b82527ca77053e0x38bc35c8B323 - // p0 in the decompiled scripts is always the stat mesh_texblend * 0.07 to int - inline Void NetworkSetPlayerMentalState(int p0) { return _i(0x367EF5E2F439B4C6, p0); } // 0x367ef5e2f439b4c60x53c9563cB323 - inline Void NetworkSetMinimumRankForMission(BOOL p0) { return _i(0x94538037EE44F5CF, p0); } // 0x94538037ee44f5cf0x6b97075bB323 - inline Void NetworkCacheLocalPlayerHeadBlendData() { return _i(0xBD0BE0BFC927EAC1); } // 0xbd0be0bfc927eac10x94ab35a9B323 - inline BOOL NetworkHasCachedPlayerHeadBlendData(Player player) { return _i(0x237D5336A9A54108, player); } // 0x237d5336a9a541080x7b2a0337B323 - inline BOOL NetworkApplyCachedPlayerHeadBlendData(Ped ped, Player player) { return _i(0x99B72C7ABDE5C910, ped, player); } // 0x99b72c7abde5c9100x99f58a07B323 - inline int GetNumCommerceItems() { return _i(0xF2EAC213D5EA0623); } // 0xf2eac213d5ea06230x965ea007B323 - inline BOOL IsCommerceDataValid() { return _i(0xEA14EEF5B7CD2C30); } // 0xea14eef5b7cd2c300xeefc8a55B323 - // Does nothing (it's a nullsub). - inline Void TriggerCommerceDataFetch(Any p0) { return _i(0xB606E6CC59664972, p0); } // 0xb606e6cc596649720x866d1b67B323 - inline BOOL IsCommerceDataFetchInProgress() { return _i(0x1D4DC17C38FEAFF0); } // 0x1d4dc17c38feaff00xed4a272fB323 - inline String GET_COMMERCE_ITEM_ID(int index) { return _i(0x662635855957C411, index); } // 0x662635855957C411 0x4ACF110C b323 - inline String GET_COMMERCE_ITEM_NAME(int index) { return _i(0xB4271092CA7EDF48, index); } // 0xB4271092CA7EDF48 0x1AA3A0D5 b323 - inline String GET_COMMERCE_PRODUCT_PRICE(int index) { return _i(0xCA94551B50B4932C, index); } // 0xCA94551B50B4932C 0x37877757 b323 - inline int GetCommerceItemNumCats(int index) { return _i(0x2A7776C709904AB0, index); } // 0x2a7776c709904ab00x1cf89da5B323 - // index2 is unused - inline String GET_COMMERCE_ITEM_CAT(int index, int index2) { return _i(0x6F44CBF56D79FAC0, index, index2); } // 0x6F44CBF56D79FAC0 0x16E53875 b323 - inline Void OpenCommerceStore(String p0, String p1, int p2) { return _i(0x58C21165F6545892, p0, p1, p2); } // 0x58c21165f65458920x365c50eeB323 - inline BOOL IsCommerceStoreOpen() { return _i(0x2EAC52B4019E2782); } // 0x2eac52b4019e27820x25e2dba9B323 - // Access to the store for shark cards etc... - inline Void SetStoreEnabled(BOOL toggle) { return _i(0x9641A9FF718E9C5E, toggle); } // 0x9641a9ff718e9c5e0xc1f6443bB323 - inline BOOL RequestCommerceItemImage(int index) { return _i(0xA2F952104FC6DD4B, index); } // 0xa2f952104fc6dd4b0x1fdc75dcB323 - inline Void ReleaseAllCommerceItemImages() { return _i(0x72D0706CD6CCDB58); } // 0x72d0706cd6ccdb580xca7a0a49B323 - inline String GET_COMMERCE_ITEM_TEXTURENAME(int index) { return _i(0x722F5D28B61C5EA8, index); } // 0x722F5D28B61C5EA8 0x44A58B0A b323 - inline BOOL IsStoreAvailableToUser() { return _i(0x883D79C4071E18B3); } // 0x883d79c4071e18b30xd32fa11fB323 - inline Void DelayMpStoreOpen() { return _i(0x265635150FB0D82E); } // 0x265635150fb0d82e0xa7fa70aeB323 - inline Void ResetStoreNetworkGameTracking() { return _i(0x444C4525ECE0A4B9); } // 0x444c4525ece0a4b90xcc7dce24B323 - inline BOOL IsUserOldEnoughToAccessStore() { return _i(0x59328EB08C5CEB2B); } // 0x59328eb08c5ceb2b0x70f6d3adB323 - inline Void SetLastViewedShopItem(Hash p0, int p1, Hash p2) { return _i(0xFAE628F1E9ADB239, p0, p1, p2); } // 0xfae628f1e9adb2390xd59a822bB323 - // Checks some commerce stuff - inline int GetUserPremiumAccess() { return _i(0x754615490A029508); } // 0x754615490a029508B1290 - // Checks some commerce stuff - inline int GetUserStarterAccess() { return _i(0x155467ACA0F55705); } // 0x155467aca0f55705B1290 - inline int CloudDeleteMemberFile(String p0) { return _i(0xC64DED7EF0D2FE37, p0); } // 0xc64ded7ef0d2fe370x2b7b57b3B323 - inline BOOL CloudHasRequestCompleted(int requestId) { return _i(0x4C61B39930D045DA, requestId); } // 0x4c61b39930d045da0xbaf52dd8B323 - inline BOOL CloudDidRequestSucceed(int requestId) { return _i(0x3A3D5568AF297CD5, requestId); } // 0x3a3d5568af297cd50x9b9afff1B323 - // Downloads prod.cloud.rockstargames.com/titles/gta5/[platform]/check.json - inline Void CloudCheckAvailability() { return _i(0x4F18196C8D38768D); } // 0x4f18196c8d38768d0xc38e9db0B323 - inline BOOL CloudIsCheckingAvailability() { return _i(0xC7ABAC5DE675EE3B); } // 0xc7abac5de675ee3b0x32a4eb22B323 - inline BOOL CloudGetAvailabilityCheckResult() { return _i(0x0B0CC10720653F3B); } // 0x0b0cc10720653f3b0x9262744cB323 - // This function is hard-coded to always return 0. - inline int GetContentToLoadType() { return _i(0x8B0C2964BA471961); } // 0x8b0c2964ba471961B323 - // This function is hard-coded to always return 0. - inline BOOL GetIsLaunchFromLiveArea() { return _i(0x88B588B41FF7868E); } // 0x88b588b41ff7868eB323 - // This function is hard-coded to always return 0. - inline BOOL GetIsLiveAreaLaunchWithContent() { return _i(0x67FC09BC554A75E5); } // 0x67fc09bc554a75e5B323 - // This native does absolutely nothing, just a nullsub - inline Void ClearServiceEventArguments() { return _i(0x966DD84FB6A46017); } // 0x966dd84fb6a46017B323 - inline BOOL UgcCopyContent(Any* p0, Any* p1) { return _i(0x152D90E4C1B4738A, p0, p1); } // 0x152d90e4c1b4738a0x08243b79B323 - inline BOOL UgcIsCreating() { return _i(0x9FEDF86898F100E9); } // 0x9fedf86898f100e90x798d6c27B323 - inline BOOL UgcHasCreateFinished() { return _i(0x5E24341A7F92A74B); } // 0x5e24341a7f92a74b0xe69e8d0dB323 - inline BOOL UgcDidCreateSucceed() { return _i(0x24E4E51FC16305F9); } // 0x24e4e51fc16305f90x742075feB323 - inline int UgcGetCreateResult() { return _i(0xFBC5E768C7A77A6A); } // 0xfbc5e768c7a77a6a0xce569932B323 - inline String UGC_GET_CREATE_CONTENT_ID() { return _i(0xC55A0B40FFB1ED23); } // 0xC55A0B40FFB1ED23 0x82146BE9 b323 - inline Void UgcClearCreateResult() { return _i(0x17440AA15D1D3739); } // 0x17440aa15d1d37390x133ff2d5B323 - inline BOOL UgcQueryMyContent(Any p0, Any p1, Any* p2, Any p3, Any p4, Any p5) { return _i(0x9BF438815F5D96EA, p0, p1, p2, p3, p4, p5); } // 0x9bf438815f5d96ea0xcba7242fB323 - inline BOOL UgcQueryByCategory(Any p0, Any p1, Any p2, String p3, Any p4, BOOL p5) { return _i(0x692D58DF40657E8C, p0, p1, p2, p3, p4, p5); } // 0x692d58df40657e8cB323 - inline BOOL UgcQueryByContentId(String contentId, BOOL latestVersion, String contentTypeName) { return _i(0x158EC424F35EC469, contentId, latestVersion, contentTypeName); } // 0x158ec424f35ec4690xded82a6eB323 - inline BOOL UgcQueryByContentIds(Any* data, int count, BOOL latestVersion, String contentTypeName) { return _i(0xC7397A83F7A2A462, data, count, latestVersion, contentTypeName); } // 0xc7397a83f7a2a4620x47b3c35eB323 - inline BOOL UgcQueryMostRecentlyCreatedContent(int offset, int count, String contentTypeName, int p3) { return _i(0x6D4CB481FAC835E8, offset, count, contentTypeName, p3); } // 0x6d4cb481fac835e80x40cf0783B323 - inline BOOL UgcGetBookmarkedContent(Any p0, Any p1, String p2, Any* p3) { return _i(0xD5A4B59980401588, p0, p1, p2, p3); } // 0xd5a4b599804015880x4609d596B323 - inline BOOL UgcGetMyContent(Any p0, Any p1, String p2, Any* p3) { return _i(0x3195F8DD0D531052, p0, p1, p2, p3); } // 0x3195f8dd0d5310520x4c2c0d1fB323 - inline BOOL UgcGetFriendContent(Any p0, Any p1, String p2, Any* p3) { return _i(0xF9E1CCAE8BA4C281, p0, p1, p2, p3); } // 0xf9e1ccae8ba4c2810x9efbd5d1B323 - inline BOOL UgcGetCrewContent(Any p0, Any p1, Any p2, String p3, Any* p4) { return _i(0x9F6E2821885CAEE2, p0, p1, p2, p3, p4); } // 0x9f6e2821885caee20xa6d8b798B323 - inline BOOL UgcGetGetByCategory(Any p0, Any p1, Any p2, String p3, Any* p4) { return _i(0x678BB03C1A3BD51E, p0, p1, p2, p3, p4); } // 0x678bb03c1a3bd51e0x67e74842B323 - inline BOOL UgcGetGetByContentId(String contentId, String contentTypeName) { return _i(0x815E5E3073DA1D67, contentId, contentTypeName); } // 0x815e5e3073da1d670xe123c7acB323 - inline BOOL UgcGetGetByContentIds(Any* data, int dataCount, String contentTypeName) { return _i(0xB8322EEB38BE7C26, data, dataCount, contentTypeName); } // 0xb8322eeb38be7c260x22c33603B323 - inline BOOL UgcGetMostRecentlyCreatedContent(Any p0, Any p1, Any* p2, Any* p3) { return _i(0xA7862BC5ED1DFD7E, p0, p1, p2, p3); } // 0xa7862bc5ed1dfd7e0x37f5bd93B323 - inline BOOL UgcGetMostRecentlyPlayedContent(Any p0, Any p1, Any* p2, Any* p3) { return _i(0x97A770BEEF227E2B, p0, p1, p2, p3); } // 0x97a770beef227e2b0x1cfb3f51B323 - inline BOOL UgcGetTopRatedContent(Any p0, Any p1, Any* p2, Any* p3) { return _i(0x5324A0E3E4CE3570, p0, p1, p2, p3); } // 0x5324a0e3e4ce35700x87d1e6bdB323 - inline Void UgcCancelQuery() { return _i(0xE9B99B6853181409); } // 0xe9b99b68531814090x021d5a94B323 - inline BOOL UgcIsGetting() { return _i(0xD53ACDBEF24A46E8); } // 0xd53acdbef24a46e80x4908a514B323 - inline BOOL UgcHasGetFinished() { return _i(0x02ADA21EA2F6918F); } // 0x02ada21ea2f6918f0x50296140B323 - inline BOOL UgcDidGetSucceed() { return _i(0x941E5306BCD7C2C7); } // 0x941e5306bcd7c2c70x3970b0daB323 - inline BOOL UgcWasQueryForceCancelled() { return _i(0xC87E740D9F3872CC); } // 0xc87e740d9f3872cc0xc1487110B323 - inline int UgcGetQueryResult() { return _i(0xEDF7F927136C224B); } // 0xedf7f927136c224b0xcc2356e3B323 - inline int UgcGetContentNum() { return _i(0xE0A6138401BCB837); } // 0xe0a6138401bcb8370x2de69817B323 - inline int UgcGetContentTotal() { return _i(0x769951E2455E2EB5); } // 0x769951e2455e2eb50x81bd8d3bB323 - inline Hash UgcGetContentHash() { return _i(0x3A17A27D75C74887); } // 0x3a17a27d75c748870x8e1d8f78B323 - inline Void UgcClearQueryResults() { return _i(0xBA96394A0EECFA65); } // 0xba96394a0eecfa650x0d35dd93B323 - inline String UGC_GET_CONTENT_USER_ID(int p0) { return _i(0xCD67AD041A394C9C, p0); } // 0xCD67AD041A394C9C 0x8F3137E6 b323 - inline BOOL UgcGetContentCreatorGamerHandle(int p0, Any* p1) { return _i(0x584770794D758C18, p0, p1); } // 0x584770794d758c18B323 - inline BOOL UgcGetContentCreatedByLocalPlayer(Any p0) { return _i(0x8C8D2739BA44AF0F, p0); } // 0x8c8d2739ba44af0fB323 - inline String UGC_GET_CONTENT_USER_NAME(Any p0) { return _i(0x703F12425ECA8BF5, p0); } // 0x703F12425ECA8BF5 0xB9137BA7 b323 - inline BOOL UgcGetContentIsUsingScNickname(Any p0) { return _i(0xAEAB987727C5A8A4, p0); } // 0xaeab987727c5a8a40x9feeaa9cB323 - inline int UgcGetContentCategory(int p0) { return _i(0xA7BAB11E7C9C6C5A, p0); } // 0xa7bab11e7c9c6c5a0x5e8a7559B323 - // Return the mission id of a job. - inline String UGC_GET_CONTENT_ID(int p0) { return _i(0x55AA95F481D694D2, p0); } // 0x55AA95F481D694D2 0x331AEABF b323 - // Return the root content id of a job. - inline String UGC_GET_ROOT_CONTENT_ID(int p0) { return _i(0xC0173D6BFF4E0348, p0); } // 0xC0173D6BFF4E0348 0x0E5E8E5C b323 - inline String UGC_GET_CONTENT_NAME(Any p0) { return _i(0xBF09786A7FCAB582, p0); } // 0xBF09786A7FCAB582 0xA5A0C695 b323 - inline int UgcGetContentDescriptionHash(Any p0) { return _i(0x7CF0448787B23758, p0); } // 0x7cf0448787b237580x91534c6eB323 - inline String UGC_GET_CONTENT_PATH(int p0, int p1) { return _i(0xBAF6BABF9E7CCC13, p0, p1); } // 0xBAF6BABF9E7CCC13 0x744A9EA5 b323 - inline Void UgcGetContentUpdatedDate(Any p0, Any* p1) { return _i(0xCFD115B373C0DF63, p0, p1); } // 0xcfd115b373c0df630xa19a238dB323 - inline int UgcGetContentFileVersion(Any p0, Any p1) { return _i(0x37025B27D9B658B1, p0, p1); } // 0x37025b27d9b658b10xff7d44e6B323 - inline BOOL UgcGetContentHasLoResPhoto(int p0) { return _i(0x1D610EB0FEA716D9, p0); } // 0x1d610eb0fea716d9B323 - inline BOOL UgcGetContentHasHiResPhoto(int p0) { return _i(0x7FCC39C46C3C03BD, p0); } // 0x7fcc39c46c3c03bdB323 - inline int UgcGetContentLanguage(Any p0) { return _i(0x32DD916F3F7C9672, p0); } // 0x32dd916f3f7c96720xa2c5bd9dB323 - inline BOOL UgcGetContentIsPublished(Any p0) { return _i(0x3054F114121C21EA, p0); } // 0x3054f114121c21ea0xa850dde1B323 - inline BOOL UgcGetContentIsVerified(Any p0) { return _i(0xA9240A96C74CCA13, p0); } // 0xa9240a96c74cca130x8f6754aeB323 - inline float UgcGetContentRating(Any p0, Any p1) { return _i(0x1ACCFBA3D8DAB2EE, p0, p1); } // 0x1accfba3d8dab2ee0x1e34953fB323 - inline int UgcGetContentRatingCount(Any p0, Any p1) { return _i(0x759299C5BB31D2A9, p0, p1); } // 0x759299c5bb31d2a90x771fe190B323 - inline int UgcGetContentRatingPositiveCount(Any p0, Any p1) { return _i(0x87E5C46C187FE0AE, p0, p1); } // 0x87e5c46c187fe0ae0x3276d9d3B323 - inline int UgcGetContentRatingNegativeCount(Any p0, Any p1) { return _i(0x4E548C0D7AE39FF9, p0, p1); } // 0x4e548c0d7ae39ff90x41a0fb02B323 - inline BOOL UgcGetContentHasPlayerRecord(Any p0) { return _i(0x70EA8DA57840F9BE, p0); } // 0x70ea8da57840f9be0x11dc0f27B323 - inline BOOL UgcGetContentHasPlayerBookmarked(Any p0) { return _i(0x993CBE59D350D225, p0); } // 0x993cbe59d350d2250x0deb3f5aB323 - inline int UgcRequestContentDataFromIndex(int p0, int p1) { return _i(0x171DF6A0C07FB3DC, p0, p1); } // 0x171df6a0c07fb3dc0x84315226B323 - inline int UgcRequestContentDataFromParams(String contentTypeName, String contentId, int p2, int p3, int p4) { return _i(0x7FD2990AF016795E, contentTypeName, contentId, p2, p3, p4); } // 0x7fd2990af016795e0x38fc2eebB323 - inline int UgcRequestCachedDescription(int p0) { return _i(0x5E0165278F6339EE, p0); } // 0x5e0165278f6339ee0x1c4f9fdbB323 - inline BOOL UgcIsDescriptionRequestInProgress(Any p0) { return _i(0x2D5DC831176D0114, p0); } // 0x2d5dc831176d01140xa69ae16cB323 - inline BOOL UgcHasDescriptionRequestFinished(Any p0) { return _i(0xEBFA8D50ADDC54C4, p0); } // 0xebfa8d50addc54c40xf50bc67aB323 - inline BOOL UgcDidDescriptionRequestSucceed(Any p0) { return _i(0x162C23CA83ED0A62, p0); } // 0x162c23ca83ed0a620xb3bbd241B323 - inline String UGC_GET_CACHED_DESCRIPTION(Any p0, Any p1) { return _i(0x40F7E66472DF3E5C, p0, p1); } // 0x40F7E66472DF3E5C 0x70A2845C b323 - inline BOOL UgcReleaseCachedDescription(Any p0) { return _i(0x5A34CD9C3C5BEC44, p0); } // 0x5a34cd9c3c5bec440x346b506cB323 - inline Void UgcReleaseAllCachedDescriptions() { return _i(0x68103E2247887242); } // 0x68103e22478872420x0095db71B323 - inline BOOL UgcPublish(String contentId, String baseContentId, String contentTypeName) { return _i(0x1DE0F5F50D723CAA, contentId, baseContentId, contentTypeName); } // 0x1de0f5f50d723caa0xad334b40B323 - inline BOOL UgcSetBookmarked(String contentId, BOOL bookmarked, String contentTypeName) { return _i(0x274A1519DFC1094F, contentId, bookmarked, contentTypeName); } // 0x274a1519dfc1094f0x980d45d7B323 - inline BOOL UgcSetDeleted(Any* p0, BOOL p1, String p2) { return _i(0xD05D1A6C74DA3498, p0, p1, p2); } // 0xd05d1a6c74da34980x48ccc328B323 - inline BOOL UgcIsModifying() { return _i(0x45E816772E93A9DB); } // 0x45e816772e93a9db0x8e664efdB323 - inline BOOL UgcHasModifyFinished() { return _i(0x299EF3C576773506); } // 0x299ef3c5767735060x611e0be2B323 - inline BOOL UgcDidModifySucceed() { return _i(0x793FF272D5B365F4); } // 0x793ff272d5b365f40xf0211ac1B323 - inline int UgcGetModifyResult() { return _i(0x5A0A3D1A186A5508); } // 0x5a0a3d1a186a55080x1f0dd8afB323 - inline Void UgcClearModifyResult() { return _i(0xA1E5E0204A6FCC70); } // 0xa1e5e0204a6fcc700x405eca16B323 - inline BOOL UgcGetCreatorsByUserId(Any* p0, Any* p1) { return _i(0xB746D20B17F2A229, p0, p1); } // 0xb746d20b17f2a2290x9567392bB323 - inline BOOL UgcHasQueryCreatorsFinished() { return _i(0x63B406D7884BFA95); } // 0x63b406d7884bfa950xf79fff3cB323 - inline BOOL UgcDidQueryCreatorsSucceed() { return _i(0x4D02279C83BE69FE); } // 0x4d02279c83be69fe0xa7f3f82bB323 - inline int UgcGetCreatorNum() { return _i(0x597F8DBA9B206FC7); } // 0x597f8dba9b206fc70x410c61d1B323 - inline BOOL UgcLoadOfflineQuery(Any p0) { return _i(0x5CAE833B0EE0C500, p0); } // 0x5cae833b0ee0c5000x0d4f845dB323 - inline Void UgcClearOfflineQuery() { return _i(0x61A885D3F7CFEE9A); } // 0x61a885d3f7cfee9a0xe13c1f7fB323 - inline Void UgcSetQueryDataFromOffline(BOOL p0) { return _i(0xF98DDE0A8ED09323, p0); } // 0xf98dde0a8ed093230x213c6d36B323 - inline Void UgcSetUsingOfflineContent(BOOL p0) { return _i(0xFD75DABC0957BF33, p0); } // 0xfd75dabc0957bf330x511e6f50B323 - inline BOOL UgcIsLanguageSupported(Any p0) { return _i(0xF53E48461B71EECB, p0); } // 0xf53e48461b71eecb0xb4668b23B323 - inline BOOL FacebookPostCompletedHeist(String heistName, int cashEarned, int xpEarned) { return _i(0x098AB65B9ED9A9EC, heistName, cashEarned, xpEarned); } // 0x098ab65b9ed9a9ec0x30b51753B323 - inline BOOL FacebookPostCreateCharacter() { return _i(0xDC48473142545431); } // 0xdc484731425454310x02dad93fB323 - inline BOOL FacebookPostCompletedMilestone(int milestoneId) { return _i(0x0AE1F1653B554AB9, milestoneId); } // 0x0ae1f1653b554ab90x2d947814B323 - inline BOOL FacebookHasPostCompleted() { return _i(0x62B9FEC9A11F10EF); } // 0x62b9fec9a11f10ef0x37a28c26B323 - inline BOOL FacebookDidPostSucceed() { return _i(0xA75E2B6733DA5142); } // 0xa75e2b6733da51420x11e8b5cdB323 - inline BOOL FacebookCanPostToFacebook() { return _i(0x43865688AE10F0D7); } // 0x43865688ae10f0d70x429aeab3B323 - inline int TextureDownloadRequest(Any* gamerHandle, String filePath, String name, BOOL p3) { return _i(0x16160DA74A8E74A2, gamerHandle, filePath, name, p3); } // 0x16160da74a8e74a20xad546cc3B323 - inline int TitleTextureDownloadRequest(String filePath, String name, BOOL p2) { return _i(0x0B203B4AFDE53A4F, filePath, name, p2); } // 0x0b203b4afde53a4f0x1856d008B323 - inline int UgcTextureDownloadRequest(String p0, int p1, int p2, int p3, String p4, BOOL p5) { return _i(0x308F96458B7087CC, p0, p1, p2, p3, p4, p5); } // 0x308f96458b7087cc0x68c9af69B323 - inline Void TextureDownloadRelease(int p0) { return _i(0x487EB90B98E9FB19, p0); } // 0x487eb90b98e9fb190xee8d9e70B323 - inline BOOL TextureDownloadHasFailed(int p0) { return _i(0x5776ED562C134687, p0); } // 0x5776ed562c1346870xe4547765B323 - inline String TEXTURE_DOWNLOAD_GET_NAME(int p0) { return _i(0x3448505B6E35262D, p0); } // 0x3448505B6E35262D 0xA40EF65A b323 - // 0 = succeeded - // 1 = pending - // 2 = failed - inline int GetStatusOfTextureDownload(int p0) { return _i(0x8BD6C6DEA20E82C6, p0); } // 0x8bd6c6dea20e82c60x03225ba3B323 - // Returns true if profile setting 901 is set to true and sets it to false. - inline BOOL NetworkCheckRosLinkWentdownNotNet() { return _i(0x60EDD13EB3AC1FF3); } // 0x60edd13eb3ac1ff30x4debc227B323 - // Returns true if the NAT type is Strict (3) and a certain number of connections have failed. - inline BOOL NetworkShouldShowStrictNatWarning() { return _i(0x82A2B386716608F1); } // 0x82a2b386716608f1B393 - inline BOOL NetworkIsCableConnected() { return _i(0xEFFB25453D8600F9); } // 0xeffb25453d8600f90x5c065d55B323 - inline BOOL NetworkHaveScsPrivateMsgPriv() { return _i(0x66B59CFFD78467AF); } // 0x66b59cffd78467af0x0ca1167fB323 - inline BOOL NetworkHaveRosSocialClubPriv() { return _i(0x606E4D3E3CCCF3EB); } // 0x606e4d3e3cccf3eb0x424c6e27B323 - inline BOOL NetworkHaveRosBannedPriv() { return _i(0x8020A73847E0CA7D); } // 0x8020a73847e0ca7d0xd3bbe42fB323 - inline BOOL NetworkHaveRosCreateTicketPriv() { return _i(0xA0AD7E2AF5349F61); } // 0xa0ad7e2af5349f610xbdbb5948B323 - inline BOOL NetworkHaveRosMultiplayerPriv() { return _i(0x5F91D5D0B36AA310); } // 0x5f91d5d0b36aa3100x97287d68B323 - inline BOOL NetworkHaveRosLeaderboardWritePriv() { return _i(0x422D396F80A96547); } // 0x422d396f80a965470xc6ea802eB323 - // index is always 18 in scripts - inline BOOL NetworkHasRosPrivilege(int index) { return _i(0xA699957E60D80214, index); } // 0xa699957e60d802140xfd261e30B323 - inline BOOL NetworkHasRosPrivilegeEndDate(int privilege, int* banType, Any* timeData) { return _i(0xC22912B1D85F26B1, privilege, banType, timeData); } // 0xc22912b1d85f26b10x8570dd34B323 - inline BOOL NetworkHasRosPrivilegePlayedLastGen() { return _i(0x593570C289A77688); } // 0x593570c289a77688B323 - inline BOOL NetworkHasRosPrivilegeSpecialEditionContent() { return _i(0x91B87C55093DE351); } // 0x91b87c55093de351B323 - inline int NetworkStartCommunicationPermissionsCheck(Any p0) { return _i(0x36391F397731595D, p0); } // 0x36391f397731595dB323 - // Always returns -1. Seems to be XB1 specific. - inline int NetworkStartUserContentPermissionsCheck(Any* netHandle) { return _i(0xDEB2B99A1AF1A2A6, netHandle); } // 0xdeb2b99a1af1a2a6B323 - inline Void NetworkSkipRadioResetNextClose() { return _i(0x9465E683B12D3F6B); } // 0x9465e683b12d3f6b0x273c6180B323 - inline Void NetworkSkipRadioResetNextOpen() { return _i(0xCA59CCAE5D01E4CE); } // 0xca59ccae5d01e4ceB1734 - // Returns true if dinput8.dll is present in the game directory. - // You will get following error message if that is true: "You are attempting to access GTA Online servers with an altered version of the game." - inline BOOL NetworkSkipRadioWarning() { return _i(0x659CF2EF7F550C4F); } // 0x659cf2ef7f550c4fB1011 - // NETWORK_F[I-O] - inline Void NetworkForceLocalPlayerScarSync() { return _i(0xB7C7F6AD6424304B); } // 0xb7c7f6ad6424304b0x371bba08B323 - inline Void NetworkDisableLeaveRemotePedBehind(BOOL toggle) { return _i(0xC505036A35AFD01B, toggle); } // 0xc505036a35afd01b0xa100cc97B323 - inline Void NetworkAllowRemoteAttachmentModification(Entity entity, BOOL toggle) { return _i(0x267C78C60E806B9A, entity, toggle); } // 0x267c78c60e806b9a0xbb2d33d3B323 - // Does nothing (it's a nullsub). - inline Void NetworkShowChatRestrictionMsc(Player player) { return _i(0x6BFF5F84102DF80A, player); } // 0x6bff5f84102df80aB323 - // This native does absolutely nothing, just a nullsub - inline Void NetworkShowPsnUgcRestriction() { return _i(0x5C497525F803486B); } // 0x5c497525f803486bB323 - // This function is hard-coded to always return 0. - inline BOOL NetworkIsTitleUpdateRequired() { return _i(0x6FB7BB3607D27FA2); } // 0x6fb7bb3607d27fa2B323 - inline Void NetworkQuitMpToDesktop() { return _i(0x45A83257ED02D9BC); } // 0x45a83257ed02d9bcB323 - inline BOOL NetworkIsConnectedViaRelay(Player player) { return _i(0x16D3D49902F697BB, player); } // 0x16d3d49902f697bbB323 - inline float NetworkGetAverageLatency(Player player) { return _i(0xD414BE129BB81B32, player); } // 0xd414be129bb81b32B323 - // Same as NetworkGetAverageLatency - inline float NetworkGetAveragePing(Player player) { return _i(0x0E3A041ED6AC2B45, player); } // 0x0e3a041ed6ac2b45B323 - inline float NetworkGetAveragePacketLoss(Player player) { return _i(0x350C23949E43686C, player); } // 0x350c23949e43686cB323 - inline int NetworkGetNumUnackedReliables(Player player) { return _i(0xFF8FCF9FFC458A1C, player); } // 0xff8fcf9ffc458a1cB323 - inline int NetworkGetUnreliableResendCount(Player player) { return _i(0x3765C3A3E8192E10, player); } // 0x3765c3a3e8192e10B323 - inline int NetworkGetHighestReliableResendCount(Player player) { return _i(0x52C1EADAF7B10302, player); } // 0x52c1eadaf7b10302B323 - inline Void NetworkReportCodeTamper() { return _i(0x5626D9D6810730D5); } // 0x5626d9d6810730d5B350 - inline Vector3 NetworkGetLastEntityPosReceivedOverNetwork(Entity entity) { return _i(0x64D779659BC37B19, entity); } // 0x64d779659bc37b19B393 - // Returns the coordinates of another player. - // Does not work if you enter your own player id as p0 (will return `(0.0, 0.0, 0.0)` in that case). - inline Vector3 NetworkGetLastPlayerPosReceivedOverNetwork(Player player) { return _i(0x125E6D638B8605D4, player); } // 0x125e6d638b8605d4B393 - // Used by NetBlender - inline Vector3 NetworkGetLastVelReceivedOverNetwork(Entity entity) { return _i(0x33DE49EDF4DDE77A, entity); } // 0x33de49edf4dde77aB1103 - inline Vector3 NetworkGetPredictedVelocity(Entity entity, float maxSpeedToPredict) { return _i(0xAA5FAFCD2C5F5E47, entity, maxSpeedToPredict); } // 0xaa5fafcd2c5f5e47B1103 - // Does nothing (it's a nullsub). - inline Void NetworkDumpNetIfConfig() { return _i(0xAEDF1BC1C133D6E3); } // 0xaedf1bc1c133d6e3B323 - // Does nothing (it's a nullsub). - inline Void NetworkGetSignallingInfo(Any* p0) { return _i(0x2555CF7DA5473794, p0); } // 0x2555cf7da5473794B323 - // Does nothing (it's a nullsub). - inline Void NetworkGetNetStatisticsInfo(Any* p0) { return _i(0x6FD992C4A1C1B986, p0); } // 0x6fd992c4a1c1b986B323 - inline int NetworkGetPlayerAccountId(Player player) { return _i(0xDB663CC9FF3407A9, player); } // 0xdb663cc9ff3407a9B1734 - inline Void NetworkUgcNav(Any p0, Any p1) { return _i(0xC1447451DDB512F0, p0, p1); } // 0xc1447451ddb512f0B2372 + // Online version is defined here: update\update.rpf\common\data\version.txt + // + // Example: + // + // [ONLINE_VERSION_NUMBER] + // 1.33 + // + // _GET_ONLINE_VERSION() will return "1.33" + inline String GetOnlineVersion() { return _i(0xFCA9373EF340AC0A); } // 0xfca9373ef340ac0aB323 + // Returns whether the player is signed into Social Club. + inline BOOL NetworkIsSignedIn() { return _i(0x054354A99211EB96); } // 0x054354a99211eb960xadd0b40fB323 + // Returns whether the game is not in offline mode. + // + // seemed not to work for some ppl + inline BOOL NetworkIsSignedOnline() { return _i(0x1077788E268557C2); } // 0x1077788e268557c20x6e5bdce2B323 + // This function is hard-coded to always return 1. + inline BOOL NetworkIsNpAvailable() { return _i(0xBD545D44CCE70597); } // 0xbd545d44cce70597B323 + // This function is hard-coded to always return 1. + inline BOOL NetworkIsNpPending() { return _i(0xEBCAB9E5048434F4); } // 0xebcab9e5048434f4B323 + // Hardcoded to return zero. + // + // ==== PS4 specific info ==== + // + // Returns some sort of unavailable reason: + // -1 = REASON_INVALID + // 0 = REASON_OTHER + // 1 = REASON_SYSTEM_UPDATE + // 2 = REASON_GAME_UPDATE + // 3 = REASON_SIGNED_OUT + // 4 = REASON_AGE + // 5 = REASON_CONNECTION + // + // ================================= + inline int NetworkGetNpUnavailableReason() { return _i(0x74FB3E29E6D10FA9); } // 0x74fb3e29e6d10fa9B323 + // This function is hard-coded to always return 1. + inline BOOL NetworkIsConnetedToNpPresence() { return _i(0x7808619F31FF22DB); } // 0x7808619f31ff22dbB323 + // This function is hard-coded to always return 0. + inline BOOL NetworkIsLoggedInToPsn() { return _i(0xA0FA4EC6A05DA44E); } // 0xa0fa4ec6a05da44eB323 + // Returns whether the signed-in user has valid Rockstar Online Services (ROS) credentials. + inline BOOL NetworkHasValidRosCredentials() { return _i(0x85443FF4C328F53B); } // 0x85443ff4c328f53b0x3fb40673B323 + inline BOOL NetworkIsRefreshingRosCredentials() { return _i(0x8D11E61A4ABF49CC); } // 0x8d11e61a4abf49cc0xbdc8f63eB323 + inline BOOL NetworkIsCloudAvailable() { return _i(0x9A4CF4F48AD77302); } // 0x9a4cf4f48ad773020xc7ff5afcB323 + inline BOOL NetworkHasSocialClubAccount() { return _i(0x67A5589628E0CFF6); } // 0x67a5589628e0cff60x66ec713fB323 + inline BOOL NetworkAreSocialClubPoliciesCurrent() { return _i(0xBA9775570DB788CF); } // 0xba9775570db788cf0x358d1d77B323 + // If you are host, returns true else returns false. + inline BOOL NetworkIsHost() { return _i(0x8DB296B814EDDA07); } // 0x8db296b814edda070xe46ac10fB323 + inline Player NetworkGetHostPlayerIndex() { return _i(0x8251FB94DC4FDFC8); } // 0x8251fb94dc4fdfc8B2612 + inline BOOL NetworkWasGameSuspended() { return _i(0x4237E822315D8BA9); } // 0x4237e822315d8ba9B323 + inline BOOL NetworkHaveOnlinePrivileges() { return _i(0x25CB5A9F37BFD063); } // 0x25cb5a9f37bfd0630xef63bfdfB323 + inline BOOL NetworkHasAgeRestrictions() { return _i(0x1353F87E89946207); } // 0x1353f87e89946207B323 + inline BOOL NetworkHaveUserContentPrivileges(int p0) { return _i(0x72D918C99BCACC54, p0); } // 0x72d918c99bcacc540x1f88819dB323 + inline BOOL NetworkHaveCommunicationPrivileges(int p0, Player player) { return _i(0xAEEF48CDF5B6CE7C, p0, player); } // 0xaeef48cdf5b6ce7c0x2d817a5eB323 + // Appears to be PlayStation-specific. Always returns true on other platforms if signed in with the primary user profile + inline BOOL NetworkHavePlatformCommunicationPrivileges() { return _i(0xE1E02509169C124E); } // 0xe1e02509169c124eB3095 + inline BOOL NetworkCheckOnlinePrivileges(Any p0, BOOL p1) { return _i(0x78321BEA235FD8CD, p0, p1); } // 0x78321bea235fd8cdB323 + inline BOOL NetworkCheckUserContentPrivileges(int p0, int p1, BOOL p2) { return _i(0x595F028698072DD9, p0, p1, p2); } // 0x595f028698072dd90xbb54aa3dB323 + inline BOOL NetworkCheckCommunicationPrivileges(int p0, int p1, BOOL p2) { return _i(0x83F28CE49FBBFFBA, p0, p1, p2); } // 0x83f28ce49fbbffba0xa79e5b05B323 + inline BOOL NetworkCheckTextCommunicationPrivileges(Any p0, Any p1, Any p2) { return _i(0x07EAB372C8841D99, p0, p1, p2); } // 0x07eab372c8841d99B1011 + inline BOOL NetworkIsUsingOnlinePromotion() { return _i(0x906CA41A4B74ECA4); } // 0x906ca41a4b74eca4B1493 + inline BOOL NetworkShouldShowPromotionAlertScreen() { return _i(0x023ACAB2DC9DC4A4); } // 0x023acab2dc9dc4a4B1493 + inline BOOL NetworkHasSocialNetworkingSharingPriv() { return _i(0x76BF03FADBF154F5); } // 0x76bf03fadbf154f50xeb864288B323 + inline int NetworkGetAgeGroup() { return _i(0x9614B71F8ADB982B); } // 0x9614b71f8adb982b0xab07cbbeB323 + inline BOOL NetworkCheckPrivileges(Any p0, Any p1, Any p2) { return _i(0x0CF6CC51AA18F0F8, p0, p1, p2); } // 0x0cf6cc51aa18f0f8B1180 + // Hardcoded to return false. + inline BOOL NetworkIsPrivilegeCheckInProgress() { return _i(0x64E5C4CC82847B73); } // 0x64e5c4cc82847b73B1734 + inline Void NetworkSetPrivilegeCheckResultNotNeeded() { return _i(0x1F7BC3539F9E0224); } // 0x1f7bc3539f9e0224B1180 + // Hardcoded to return true. + inline BOOL NetworkResolvePrivilegeUserContent() { return _i(0xDE9225854F37BF72); } // 0xde9225854f37bf72B2612 + inline BOOL NetworkHavePlatformSubscription() { return _i(0x5EA784D197556507); } // 0x5ea784d197556507B323 + inline BOOL NetworkIsPlatformSubscriptionCheckPending() { return _i(0xA8ACB6459542A8C8); } // 0xa8acb6459542a8c8B323 + inline Void NetworkShowAccountUpgradeUi() { return _i(0x83FE8D7229593017); } // 0x83fe8d7229593017B323 + inline BOOL NetworkIsShowingSystemUiOrRecentlyRequestedUpsell() { return _i(0x7788DFE15016A182); } // 0x7788dfe15016a182B2612 + inline BOOL NetworkNeedToStartNewGameButBlocked() { return _i(0x53C10C8BD774F2C9); } // 0x53c10c8bd774f2c9B1011 + inline BOOL NetworkCanBail() { return _i(0x580CE4438479CC61); } // 0x580ce4438479cc610x60e1fedfB323 + inline Void NetworkBail(int p0, int p1, int p2) { return _i(0x95914459A87EBA28, p0, p1, p2); } // 0x95914459a87eba280x87d79a04B323 + inline Void NetworkOnReturnToSinglePlayer() { return _i(0x283B6062A2C01E9B); } // 0x283b6062a2c01e9b0x96e28fe2B323 + inline BOOL NetworkTransitionStart(int p0, Any p1, Any p2, Any p3) { return _i(0x8B4FFC790CA131EF, p0, p1, p2, p3); } // 0x8b4ffc790ca131efB617 + inline BOOL NetworkTransitionAddStage(Hash hash, int p1, int p2, int state, int p4) { return _i(0xC3BFED92026A2AAD, hash, p1, p2, state, p4); } // 0xc3bfed92026a2aadB617 + inline BOOL NetworkTransitionFinish(Any p0, Any p1, Any p2) { return _i(0x04918A41BC9B8157, p0, p1, p2); } // 0x04918a41bc9b8157B617 + // 11 - Need to download tunables. + // 12 - Need to download background script. + // + // Returns 1 if the multiplayer is loaded, otherwhise 0. + inline BOOL NetworkCanAccessMultiplayer(int* loadingState) { return _i(0xAF50DA1A3F8B1BA4, loadingState); } // 0xaf50da1a3f8b1ba40xa520b982B323 + inline BOOL NetworkIsMultiplayerDisabled() { return _i(0x9747292807126EDA); } // 0x9747292807126eda0x05518c0fB323 + inline BOOL NetworkCanEnterMultiplayer() { return _i(0x7E782A910C362C25); } // 0x7e782a910c362c250x4a23b9c9B323 + inline BOOL NetworkSessionDoFreeroamQuickmatch(Any p0, Any p1, Any p2) { return _i(0x330ED4D05491934F, p0, p1, p2); } // 0x330ed4d05491934fB323 + inline BOOL NetworkSessionDoFriendMatchmaking(int p0, int p1, int p2) { return _i(0x2CFC76E0D087C994, p0, p1, p2); } // 0x2cfc76e0d087c994B323 + // p4 seems to be unused in 1.60/build 2628 + inline BOOL NetworkSessionDoCrewMatchmaking(int crewId, int p1, int p2, int maxPlayers) { return _i(0x94BC51E9449D917F, crewId, p1, p2, maxPlayers); } // 0x94bc51e9449d917fB323 + inline BOOL NetworkSessionDoActivityQuickmatch(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xBE3E347A87ACEB82, p0, p1, p2, p3, p4); } // 0xbe3e347a87aceb82B323 + // Does nothing in online but in offline it will cause the screen to fade to black. Nothing happens past then, the screen will sit at black until you restart GTA. Other stuff must be needed to actually host a session. + inline BOOL NetworkSessionHost(int p0, int maxPlayers, BOOL p2) { return _i(0x6F3D4ED9BEE4E61D, p0, maxPlayers, p2); } // 0x6f3d4ed9bee4e61d0x6716460fB323 + inline BOOL NetworkSessionHostClosed(int p0, int maxPlayers) { return _i(0xED34C0C02C098BB7, p0, maxPlayers); } // 0xed34c0c02c098bb70x8ac9ea19B323 + // Does nothing in online but in offline it will cause the screen to fade to black. Nothing happens past then, the screen will sit at black until you restart GTA. Other stuff must be needed to actually host a session. + inline BOOL NetworkSessionHostFriendsOnly(int p0, int maxPlayers) { return _i(0xB9CFD27A5D578D83, p0, maxPlayers); } // 0xb9cfd27a5d578d830x26864403B323 + inline BOOL NetworkSessionIsClosedFriends() { return _i(0xFBCFA2EA2E206890); } // 0xfbcfa2ea2e2068900x56e75fe4B323 + inline BOOL NetworkSessionIsClosedCrew() { return _i(0x74732C6CA90DA2B4); } // 0x74732c6ca90da2b40xa95299b9B323 + inline BOOL NetworkSessionIsSolo() { return _i(0xF3929C2379B60CCE); } // 0xf3929c2379b60cce0x3d2c1916B323 + inline BOOL NetworkSessionIsPrivate() { return _i(0xCEF70AA5B3F89BA1); } // 0xcef70aa5b3f89ba10xdb67785dB323 + inline BOOL NetworkSessionLeaveIncludingReason(int leaveFlags, int leaveReason) { return _i(0xE0128328CF1FD9F4, leaveFlags, leaveReason); } // 0xe0128328cf1fd9f4B3095 + // p0 is always false and p1 varies. + // NetworkSessionEnd(0, 1) + // NetworkSessionEnd(0, 0) + // Results in: "Connection to session lost due to an unknown network error. Please return to Grand Theft Auto V and try again later." + inline BOOL NetworkSessionEnd(BOOL p0, BOOL p1) { return _i(0xA02E59562D711006, p0, p1); } // 0xa02e59562d7110060xbcacbea2B323 + inline BOOL NetworkSessionLeave(Any p0) { return _i(0xB9351A07A0D458B1, p0); } // 0xb9351a07a0d458b1B2060 + // Only works as host. + inline Void NetworkSessionKickPlayer(Player player) { return _i(0xFA8904DC5F304220, player); } // 0xfa8904dc5f3042200x1e20138aB323 + inline BOOL NetworkSessionGetKickVote(Player player) { return _i(0xD6D09A6F32F49EF1, player); } // 0xd6d09a6f32f49ef10x8a559d26B323 + inline BOOL NetworkSessionReserveSlotsTransition(Any p0, Any p1, Any p2) { return _i(0x041C7F2A6C9894E6, p0, p1, p2); } // 0x041c7f2a6c9894e6B463 + inline BOOL NetworkJoinPreviouslyFailedSession() { return _i(0x59DF79317F85A7E0); } // 0x59df79317f85a7e00x6cdaa7d2B323 + inline BOOL NetworkJoinPreviouslyFailedTransition() { return _i(0xFFE1E5B792D92B34); } // 0xffe1e5b792d92b340xbf21818eB323 + inline Void NetworkSessionSetMatchmakingGroup(int matchmakingGroup) { return _i(0x49EC8030F5015F8B, matchmakingGroup); } // 0x49ec8030f5015f8b0x3c3e2ab6B323 + // playerType is an unsigned int from 0 to 4 + // 0 = regular joiner + // 4 = spectator + inline Void NetworkSessionSetMatchmakingGroupMax(int playerType, int playerCount) { return _i(0x8B6A4DD0AF9CE215, playerType, playerCount); } // 0x8b6a4dd0af9ce2150x5f29a7e0B323 + inline int NetworkSessionGetMatchmakingGroupFree(int p0) { return _i(0x56CE820830EF040B, p0); } // 0x56ce820830ef040b0x36ead960B323 + // groupId range: [0, 4] + inline Void NetworkSessionAddActiveMatchmakingGroup(int groupId) { return _i(0xCAE55F48D3D7875C, groupId); } // 0xcae55f48d3d7875c0x5be529f7B323 + inline Void NetworkSessionSetUniqueCrewLimit(Any p0) { return _i(0xF49ABC20D8552257, p0); } // 0xf49abc20d85522570x454c7b67B323 + inline int NetworkSessionGetUniqueCrewLimit() { return _i(0xCDC936BF35EDCB73); } // 0xcdc936bf35edcb73B3095 + inline Void NetworkSessionSetUniqueCrewLimitTransition(Any p0) { return _i(0x4811BBAC21C5FCD5, p0); } // 0x4811bbac21c5fcd50xe5961511B323 + inline Void NetworkSessionSetUniqueCrewOnlyCrewsTransition(BOOL p0) { return _i(0x5539C3EBF104A53A, p0); } // 0x5539c3ebf104a53a0xae396263B323 + inline Void NetworkSessionSetCrewLimitMaxMembersTransition(Any p0) { return _i(0x702BC4D605522539, p0); } // 0x702bc4d6055225390x913fd7d6B323 + inline Void NetworkSessionSetMatchmakingPropertyId(BOOL p0) { return _i(0x3F52E880AAF6C8CA, p0); } // 0x3f52e880aaf6c8ca0xb3d9a67fB323 + // p0 in the decompiled scripts is always the stat mesh_texblend * 0.07 to int + inline Void NetworkSessionSetMatchmakingMentalState(int p0) { return _i(0xF1EEA2DDA9FFA69D, p0); } // 0xf1eea2dda9ffa69d0x6cc062fcB323 + inline Void NetworkSessionSetNumBosses(int num) { return _i(0x59D421683D31835A, num); } // 0x59d421683d31835aB573 + inline Void NetworkSessionSetScriptValidateJoin() { return _i(0x1153FA02A659051C); } // 0x1153fa02a659051c0x57f9bc83B323 + inline Void NetworkSessionValidateJoin(BOOL p0) { return _i(0xC19F6C8E7865A6FF, p0); } // 0xc19f6c8e7865a6ff0xf3768f90B323 + // .. + inline Void NetworkAddFollowers(int* p0, int p1) { return _i(0x236406F60CF216D6, p0, p1); } // 0x236406f60cf216d60x0ec62629B323 + inline Void NetworkClearFollowers() { return _i(0x058F43EC59A8631A); } // 0x058f43ec59a8631a0x5e557307B323 + inline Void NetworkGetGlobalMultiplayerClock(int* hours, int* minutes, int* seconds) { return _i(0x6D03BFBD643B2A02, hours, minutes, seconds); } // 0x6d03bfbd643b2a020x74e8c53eB323 + inline Void NetworkSessionSetGamemode(Any p0) { return _i(0x600F8CB31C7AAB6E, p0); } // 0x600f8cb31c7aab6e0x959e43a3B323 + inline int NetworkSessionGetHostAimPreference() { return _i(0xDFFA5BE8381C3314); } // 0xdffa5be8381c3314B463 + inline BOOL NetworkFindGamersInCrew(int crewId) { return _i(0xE532D6811B3A4D2A, crewId); } // 0xe532d6811b3a4d2a0x7771ab83B323 + // Uses attributes to find players with similar stats. Upper/Lower limit must be above zero or the fallback limit +/-0.1 is used. + // There can be up to 15 attributes, they are as follows: + // + // 0 = Races + // 1 = Parachuting + // 2 = Horde + // 3 = Darts + // 4 = Arm Wrestling + // 5 = Tennis + // 6 = Golf + // 7 = Shooting Range + // 8 = Deathmatch + // 9 = MPPLY_MCMWIN/MPPLY_CRMISSION + inline BOOL NetworkFindMatchedGamers(int attribute, float fallbackLimit, float lowerLimit, float upperLimit) { return _i(0xF7B2CFDE5C9F700D, attribute, fallbackLimit, lowerLimit, upperLimit); } // 0xf7b2cfde5c9f700d0xa13045d4B323 + inline BOOL NetworkIsFindingGamers() { return _i(0xDDDF64C91BFCF0AA); } // 0xdddf64c91bfcf0aa0xa6daa79fB323 + inline BOOL NetworkDidFindGamersSucceed() { return _i(0xF9B83B77929D8863); } // 0xf9b83b77929d88630xbedc4503B323 + inline int NetworkGetNumFoundGamers() { return _i(0xA1B043EE79A916FB); } // 0xa1b043ee79a916fb0xf4b80c7eB323 + inline BOOL NetworkGetFoundGamer(Any* p0, Any p1) { return _i(0x9DCFF2AFB68B3476, p0, p1); } // 0x9dcff2afb68b34760xa08c9141B323 + inline Void NetworkClearFoundGamers() { return _i(0x6D14CCEE1B40381A); } // 0x6d14ccee1b40381a0x6aa9a154B323 + inline BOOL NetworkQueueGamerForStatus(Any* p0) { return _i(0x85A0EF54A500882C, p0); } // 0x85a0ef54a500882c0x42bd0780B323 + inline BOOL NetworkGetGamerStatusFromQueue() { return _i(0x2CC848A861D01493); } // 0x2cc848a861d014930xbeb98840B323 + inline BOOL NetworkIsGettingGamerStatus() { return _i(0x94A8394D150B013A); } // 0x94a8394d150b013a0x08029970B323 + inline BOOL NetworkDidGetGamerStatusSucceed() { return _i(0x5AE17C6B0134B7F1); } // 0x5ae17c6b0134b7f10xc871e745B323 + inline BOOL NetworkGetGamerStatusResult(Any* p0, Any p1) { return _i(0x02A8BEC6FD9AF660, p0, p1); } // 0x02a8bec6fd9af6600xb5abc4b4B323 + inline Void NetworkClearGetGamerStatus() { return _i(0x86E0660E4F5C956D); } // 0x86e0660e4f5c956d0x3f7edbbdB323 + inline Void NetworkSessionJoinInvite() { return _i(0xC6F8AB8A4189CF3A); } // 0xc6f8ab8a4189cf3a0x3d6360b5B323 + inline Void NetworkSessionCancelInvite() { return _i(0x2FBF47B1B36D36F9); } // 0x2fbf47b1b36d36f90x20317535B323 + inline Void NetworkSessionForceCancelInvite() { return _i(0xA29177F7703B5644); } // 0xa29177f7703b56440x3fd49d3bB323 + inline BOOL NetworkHasPendingInvite() { return _i(0xAC8C7B9B88C4A668); } // 0xac8c7b9b88c4a6680x0c207d6eB323 + inline BOOL NetworkHasConfirmedInvite() { return _i(0xC42DD763159F3461); } // 0xc42dd763159f34610xfbbac350B323 + // Triggers a CEventNetworkInviteConfirmed event + inline BOOL NetworkRequestInviteConfirmedEvent() { return _i(0x62A0296C1BB1CEB3); } // 0x62a0296c1bb1ceb30x0907a6bfB323 + inline BOOL NetworkSessionWasInvited() { return _i(0x23DFB504655D0CE4); } // 0x23dfb504655d0ce40x6a0bea60B323 + inline Void NetworkSessionGetInviter(Any* gamerHandle) { return _i(0xE57397B4A3429DD0, gamerHandle); } // 0xe57397b4a3429dd00xe9c6b3fdB323 + // Seems to be true while "Getting GTA Online session details" shows up. + inline BOOL NetworkSessionIsAwaitingInviteResponse() { return _i(0xD313DE83394AF134); } // 0xd313de83394af1340x3ea9d44cB323 + inline BOOL NetworkSessionIsDisplayingInviteConfirmation() { return _i(0xBDB6F89C729CF388); } // 0xbdb6f89c729cf3880x9374523fB323 + inline Void NetworkSuppressInvite(BOOL toggle) { return _i(0xA0682D67EF1FBA3D, toggle); } // 0xa0682d67ef1fba3d0x323dc78cB323 + inline Void NetworkBlockInvites(BOOL toggle) { return _i(0x34F9E9049454A7A0, toggle); } // 0x34f9e9049454a7a00xd156fd1aB323 + inline Void NetworkBlockJoinQueueInvites(BOOL toggle) { return _i(0xCFEB8AF24FC1D0BB, toggle); } // 0xcfeb8af24fc1d0bb0x8ab4890bB323 + inline Void NetworkSetCanReceiveRsInvites(BOOL p0) { return _i(0x68980414688F7F9D, p0); } // 0x68980414688f7f9dB2612 + inline Void NetworkStoreInviteThroughRestart() { return _i(0xF814FEC6A19FD6E0); } // 0xf814fec6a19fd6e00x32b7a076B323 + inline Void NetworkAllowInviteProcessInPlayerSwitch(BOOL p0) { return _i(0x6B07B9CE4D390375, p0); } // 0x6b07b9ce4d3903750x0fce995dB323 + inline Void NetworkSetScriptReadyForEvents(BOOL toggle) { return _i(0x7AC752103856FB20, toggle); } // 0x7ac752103856fb200xa639dca2B323 + inline BOOL NetworkIsOfflineInvitePending() { return _i(0x74698374C45701D2); } // 0x74698374c45701d20x70ed476aB323 + inline Void NetworkClearOfflineInvitePending() { return _i(0x140E6A44870A11CE); } // 0x140e6a44870a11ce0x50507bedB323 + // Loads up the map that is loaded when beeing in mission creator + // Player gets placed in a mix between online/offline mode + // p0 is always 2 in R* scripts. + // + // Appears to be patched in gtav b757 (game gets terminated) alonside with most other network natives to prevent online modding ~ghost30812 + inline Void NetworkSessionHostSinglePlayer(int p0) { return _i(0xC74C33FCA52856D5, p0); } // 0xc74c33fca52856d50xf3b1ca85B323 + inline Void NetworkSessionLeaveSinglePlayer() { return _i(0x3442775428FD2DAA); } // 0x3442775428fd2daa0xc692f86aB323 + inline BOOL NetworkIsGameInProgress() { return _i(0x10FAB35428CCC9D7); } // 0x10fab35428ccc9d70x09b88e3eB323 + inline BOOL NetworkIsSessionActive() { return _i(0xD83C2B94E7508980); } // 0xd83c2b94e75089800x715cb8c4B323 + inline BOOL NetworkIsInSession() { return _i(0xCA97246103B63917); } // 0xca97246103b639170x4bc4105eB323 + // Hardcoded to return 0. + inline BOOL NetworkIsAmericasVersion() { return _i(0x0292BD7F3766CEBC); } // 0x0292bd7f3766cebcB3095 + // This checks if player is playing on gta online or not. + // Please add an if and block your mod if this is "true". + inline BOOL NetworkIsSessionStarted() { return _i(0x9DE624D2FC4B603F); } // 0x9de624d2fc4b603f0x9d854a37B323 + inline BOOL NetworkIsSessionBusy() { return _i(0xF4435D66A8E2905E); } // 0xf4435d66a8e2905e0x8592152dB323 + inline BOOL NetworkCanSessionEnd() { return _i(0x4EEBC3694E49C572); } // 0x4eebc3694e49c5720xe1fccdbaB323 + inline int NetworkGetGameMode() { return _i(0x4C9034162368E206); } // 0x4c9034162368e206B2060 + inline Void NetworkSessionMarkVisible(BOOL toggle) { return _i(0x271CC6AB59EBF9A5, toggle); } // 0x271cc6ab59ebf9a50x7017257dB323 + inline BOOL NetworkSessionIsVisible() { return _i(0xBA416D68C631496A); } // 0xba416d68c631496a0x4977ac28B323 + inline Void NetworkSessionBlockJoinRequests(BOOL toggle) { return _i(0xA73667484D7037C3, toggle); } // 0xa73667484d7037c30xe6eef8afB323 + // num player slots allowed in session, seems to work? 32 max + inline Void NetworkSessionChangeSlots(int slots, BOOL p1) { return _i(0xB4AB419E0D86ACAE, slots, p1); } // 0xb4ab419e0d86acae0x6bb93227B323 + inline int NetworkSessionGetPrivateSlots() { return _i(0x53AFD64C6758F2F9); } // 0x53afd64c6758f2f90xe642f2fdB323 + inline BOOL NetworkSessionVoiceHost() { return _i(0x9C1556705F864230); } // 0x9c1556705f8642300x345c2980B323 + inline BOOL NetworkSessionVoiceLeave() { return _i(0x6793E42BE02B575D); } // 0x6793e42be02b575d0xe566c7daB323 + inline Void NetworkSessionVoiceConnectToPlayer(Any* gamerHandle) { return _i(0xABD5E88B8A2D3DB2, gamerHandle); } // 0xabd5e88b8a2d3db20x9dfd89e6B323 + inline Void NetworkSessionVoiceRespondToRequest(BOOL p0, int p1) { return _i(0x7F8413B7FC2AA6B9, p0, p1); } // 0x7f8413b7fc2aa6b90x075321b5B323 + inline Void NetworkSessionVoiceSetTimeout(int timeout) { return _i(0x5B8ED3DB018927B1, timeout); } // 0x5b8ed3db018927b10x6efc2fd0B323 + inline BOOL NetworkSessionIsInVoiceSession() { return _i(0x855BC38818F6F684); } // 0x855bc38818f6f6840x60aa4aa1B323 + inline BOOL NetworkSessionIsVoiceSessionActive() { return _i(0xB5D3453C98456528); } // 0xb5d3453c98456528B323 + inline BOOL NetworkSessionIsVoiceSessionBusy() { return _i(0xEF0912DDF7C4CB4B); } // 0xef0912ddf7c4cb4b0x132ca01eB323 + // Message is limited to 64 characters. + inline BOOL NetworkSendTextMessage(String message, Any* gamerHandle) { return _i(0x3A214F2EC889B100, message, gamerHandle); } // 0x3a214f2ec889b1000xaffea720B323 + inline Void NetworkSetActivitySpectator(BOOL toggle) { return _i(0x75138790B4359A74, toggle); } // 0x75138790b4359a740xfc9ad060B323 + inline BOOL NetworkIsActivitySpectator() { return _i(0x12103B9E0C9F92FB); } // 0x12103b9e0c9f92fb0xaf329720B323 + inline Void NetworkSetActivityPlayerMax(Any p0) { return _i(0x0E4F77F7B9D74D84, p0); } // 0x0e4f77f7b9d74d840x04cb2ab4B573 + inline Void NetworkSetActivitySpectatorMax(int maxSpectators) { return _i(0x9D277B76D1D12222, maxSpectators); } // 0x9d277b76d1d122220x74e0bc0aB323 + inline int NetworkGetActivityPlayerNum(BOOL p0) { return _i(0x73E2B500410DA5A2, p0); } // 0x73e2b500410da5a20x31f951fdB323 + inline BOOL NetworkIsActivitySpectatorFromHandle(Any* gamerHandle) { return _i(0x2763BBAA72A7BCB9, gamerHandle); } // 0x2763bbaa72a7bcb90x58f1df7dB323 + // p0: Unknown int + // p1: Unknown int + // p2: Unknown int + // p3: Unknown int + // p4: Unknown always 0 in decompiled scripts + // p5: BOOL purpose unknown, both 0 and 1 are used in decompiled scripts. + // p6: BOOL purpose unknown, both 0 and 1 are used in decompiled scripts. + // p7: Unknown int, it's an int according to decompiled scripts, however the value is always 0 or 1. + // p8: Unknown int, it's an int according to decompiled scripts, however the value is always 0 or 1. + // p9: Unknown int, sometimes 0, but also 32768 or 16384 appear in decompiled scripst, maybe a flag of some sort? + // + // From what I can tell it looks like it does the following: + // Creates/hosts a new transition to another online session, using this in FiveM will result in other players being disconencted from the server/preventing them from joining. This is most likely because I entered the wrong session parameters since they're pretty much all unknown right now. + // You also need to use `NetworkJoinTransition(Player player)` and `NetworkLaunchTransition()`. + inline BOOL NetworkHostTransition(int p0, int p1, int p2, int p3, Any p4, BOOL p5, BOOL p6, int p7, Any p8, int p9) { return _i(0xA60BB5CE242BB254, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); } // 0xa60bb5ce242bb2540x146764fbB323 + inline BOOL NetworkDoTransitionQuickmatch(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0x71FB0EBCD4915D56, p0, p1, p2, p3, p4, p5); } // 0x71fb0ebcd4915d560x2ff65c0bB323 + inline BOOL NetworkDoTransitionQuickmatchAsync(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0xA091A5E44F0072E5, p0, p1, p2, p3, p4, p5); } // 0xa091a5e44f0072e50x47d61c99B323 + inline BOOL NetworkDoTransitionQuickmatchWithGroup(Any p0, Any p1, Any p2, Any p3, Any* p4, Any p5, Any p6, Any p7) { return _i(0x9C4AB58491FDC98A, p0, p1, p2, p3, p4, p5, p6, p7); } // 0x9c4ab58491fdc98a0x5ce60a11B323 + inline BOOL NetworkJoinGroupActivity() { return _i(0xA06509A691D12BE4); } // 0xa06509a691d12be40x0d7e5cf9B323 + inline Void NetworkClearGroupActivity() { return _i(0x1888694923EF4591); } // 0x1888694923ef45910x157d44d3B393 + inline Void NetworkRetainActivityGroup() { return _i(0xB13E88E655E5A3BC); } // 0xb13e88e655e5a3bc0x36a5f2daB323 + inline BOOL NetworkIsTransitionClosedFriends() { return _i(0x6512765E3BE78C50); } // 0x6512765e3be78c500x95ffacf8B323 + inline BOOL NetworkIsTransitionClosedCrew() { return _i(0x0DBD5D7E3C5BEC3B); } // 0x0dbd5d7e3c5bec3b0xb97a966bB323 + inline BOOL NetworkIsTransitionSolo() { return _i(0x5DC577201723960A); } // 0x5dc577201723960a0x063dc4a5B323 + inline BOOL NetworkIsTransitionPrivate() { return _i(0x5A6AA44FF8E931E6); } // 0x5a6aa44ff8e931e60x104dde8dB323 + inline int NetworkGetNumTransitionNonAsyncGamers() { return _i(0x617F49C2668E6155); } // 0x617f49c2668e6155B757 + inline Void NetworkMarkAsPreferredActivity(BOOL p0) { return _i(0x261E97AD7BCF3D40, p0); } // 0x261e97ad7bcf3d400x7ef353e1B323 + inline Void NetworkMarkAsWaitingAsync(BOOL p0) { return _i(0x39917E1B4CB0F911, p0); } // 0x39917e1b4cb0f9110xf60986fcB323 + inline Void NetworkSetInProgressFinishTime(Any p0) { return _i(0x2CE9D95E4051AECD, p0); } // 0x2ce9d95e4051aecdB678 + inline Void NetworkSetTransitionCreatorHandle(Any* p0) { return _i(0xEF26739BCD9907D5, p0); } // 0xef26739bcd9907d50x1dd01fe7B323 + inline Void NetworkClearTransitionCreatorHandle() { return _i(0xFB3272229A82C759); } // 0xfb3272229a82c7590x8bb336f7B323 + inline BOOL NetworkInviteGamersToTransition(Any* p0, Any p1) { return _i(0x4A595C32F77DFF76, p0, p1); } // 0x4a595c32f77dff760x5332e645B323 + inline Void NetworkSetGamerInvitedToTransition(Any* gamerHandle) { return _i(0xCA2C8073411ECDB6, gamerHandle); } // 0xca2c8073411ecdb60x17f1c69dB323 + inline BOOL NetworkLeaveTransition() { return _i(0xD23A1A815D21DB19); } // 0xd23a1a815d21db190x3a3599b7B323 + inline BOOL NetworkLaunchTransition() { return _i(0x2DCF46CB1A4F0884); } // 0x2dcf46cb1a4f08840xe3570ba2B323 + // Appears to set whether a transition should be started when the session is migrating. + inline Void NetworkSetDoNotLaunchFromJoinAsMigratedHost(BOOL toggle) { return _i(0xA2E9C1AB8A92E8CD, toggle); } // 0xa2e9c1ab8a92e8cd0x8d014b23B323 + inline Void NetworkCancelTransitionMatchmaking() { return _i(0x023782EFC70585EE); } // 0x023782efc70585eeB2699 + inline Void NetworkBailTransition(int p0, int p1, int p2) { return _i(0xEAA572036990CD1B, p0, p1, p2); } // 0xeaa572036990cd1b0xb59d74caB323 + inline BOOL NetworkDoTransitionToGame(BOOL p0, int maxPlayers) { return _i(0x3E9BB38102A589B0, p0, maxPlayers); } // 0x3e9bb38102a589b00x1b2114d2B323 + inline BOOL NetworkDoTransitionToNewGame(BOOL p0, int maxPlayers, BOOL p2) { return _i(0x4665F51EFED00034, p0, maxPlayers, p2); } // 0x4665f51efed000340x58afbe63B323 + // p2 is true 3/4 of the occurrences I found. + // 'players' is the number of players for a session. On PS3/360 it's always 18. On PC it's 32. + inline BOOL NetworkDoTransitionToFreemode(Any* p0, Any p1, BOOL p2, int players, BOOL p4) { return _i(0x3AAD8B2FCA1E289F, p0, p1, p2, players, p4); } // 0x3aad8b2fca1e289f0xc7cb8adfB323 + inline BOOL NetworkDoTransitionToNewFreemode(Any* p0, Any p1, int players, BOOL p3, BOOL p4, BOOL p5) { return _i(0x9E80A5BA8109F974, p0, p1, players, p3, p4, p5); } // 0x9e80a5ba8109f9740xad13375eB323 + inline BOOL NetworkIsTransitionToGame() { return _i(0x9D7696D8F4FA6CB7); } // 0x9d7696d8f4fa6cb70x17146b2bB323 + // Returns count. + inline int NetworkGetTransitionMembers(Any* data, int dataCount) { return _i(0x73B000F7FBC55829, data, dataCount); } // 0x73b000f7fbc558290x31f19263B323 + inline Void NetworkApplyTransitionParameter(int p0, int p1) { return _i(0x521638ADA1BA0D18, p0, p1); } // 0x521638ada1ba0d180xcee79711B323 + inline Void NetworkApplyTransitionParameterString(int p0, String string, BOOL p2) { return _i(0xEBEFC2E77084F599, p0, string, p2); } // 0xebefc2e77084f5990xe0c28db5B323 + inline BOOL NetworkSendTransitionGamerInstruction(Any* gamerHandle, String p1, int p2, int p3, BOOL p4) { return _i(0x31D1D2B858D25E6B, gamerHandle, p1, p2, p3, p4); } // 0x31d1d2b858d25e6b0x468b0884B323 + inline BOOL NetworkMarkTransitionGamerAsFullyJoined(Any* p0) { return _i(0x5728BB6D63E3FF1D, p0); } // 0x5728bb6d63e3ff1d0x03383f57B323 + inline BOOL NetworkIsTransitionHost() { return _i(0x0B824797C9BF2159); } // 0x0b824797c9bf21590x0c0900bcB323 + inline BOOL NetworkIsTransitionHostFromHandle(Any* gamerHandle) { return _i(0x6B5C83BA3EFE6A10, gamerHandle); } // 0x6b5c83ba3efe6a100x0e2854c4B323 + inline BOOL NetworkGetTransitionHost(Any* gamerHandle) { return _i(0x65042B9774C4435E, gamerHandle); } // 0x65042b9774c4435e0x73098d40B323 + inline BOOL NetworkIsInTransition() { return _i(0x68049AEFF83D8F0A); } // 0x68049aeff83d8f0a0xc3cdb626B323 + inline BOOL NetworkIsTransitionStarted() { return _i(0x53FA83401D9C07FE); } // 0x53fa83401d9c07fe0x7917e111B323 + inline BOOL NetworkIsTransitionBusy() { return _i(0x520F3282A53D26B7); } // 0x520f3282a53d26b70xa357a2c6B323 + inline BOOL NetworkIsTransitionMatchmaking() { return _i(0x292564C735375EDF); } // 0x292564c735375edf0x8262c70eB323 + inline BOOL NetworkIsTransitionLeavePostponed() { return _i(0xC571D0E77D8BBC29); } // 0xc571d0e77d8bbc290x4f4bb300B323 + inline Void NetworkTransitionSetInProgress(Any p0) { return _i(0x1398582B7F72B3ED, p0); } // 0x1398582b7f72b3edB505 + inline Void NetworkTransitionSetContentCreator(Any p0) { return _i(0x1F8E00FB18239600, p0); } // 0x1f8e00fb18239600B573 + inline Void NetworkTransitionSetActivityIsland(Any p0) { return _i(0xF6F4383B7C92F11A, p0); } // 0xf6f4383b7c92f11aB573 + inline Void NetworkOpenTransitionMatchmaking() { return _i(0x2B3A8F7CA3A38FDE); } // 0x2b3a8f7ca3a38fde0xc71e607bB323 + inline Void NetworkCloseTransitionMatchmaking() { return _i(0x43F4DBA69710E01E); } // 0x43f4dba69710e01e0x82d32d07B323 + inline BOOL NetworkIsTransitionOpenToMatchmaking() { return _i(0x37A4494483B9F5C9); } // 0x37a4494483b9f5c90xc901aa9fB323 + inline Void NetworkSetTransitionVisibilityLock(BOOL p0, BOOL p1) { return _i(0x0C978FDA19692C2C, p0, p1); } // 0x0c978fda19692c2c0x4af0adf5B323 + inline BOOL NetworkIsTransitionVisibilityLocked() { return _i(0xD0A484CB2F829FBE); } // 0xd0a484cb2f829fbe0xf637166eB323 + inline Void NetworkSetTransitionActivityId(Any p0) { return _i(0x30DE938B516F0AD2, p0); } // 0x30de938b516f0ad20xcca9c022B323 + inline Void NetworkChangeTransitionSlots(Any p0, BOOL p1) { return _i(0xEEEDA5E6D7080987, p0, p1); } // 0xeeeda5e6d70809870x1e5f6aefB323 + inline Void NetworkTransitionBlockJoinRequests(BOOL p0) { return _i(0x973D76AA760A6CB6, p0); } // 0x973d76aa760a6cb60x0532ddd2B323 + inline BOOL NetworkHasPlayerStartedTransition(Player player) { return _i(0x9AC9CCBFA8C29795, player); } // 0x9ac9ccbfa8c297950x4abd1e59B323 + inline BOOL NetworkAreTransitionDetailsValid(Any p0) { return _i(0x2615AA2A695930C1, p0); } // 0x2615aa2a695930c10xcdebcce7B323 + // int handle[76]; + // NetworkHandleFromFriend(iSelectedPlayer, &handle[0], 13); + // Player uVar2 = NetworkGetPlayerFromGamerHandle(&handle[0]); + // NetworkJoinTransition(uVar2); + // nothing doin. + inline BOOL NetworkJoinTransition(Player player) { return _i(0x9D060B08CD63321A, player); } // 0x9d060b08cd63321a0xb054ec4bB323 + inline BOOL NetworkHasInvitedGamerToTransition(Any* p0) { return _i(0x7284A47B3540E6CF, p0); } // 0x7284a47b3540e6cf0x4f41df6bB323 + inline BOOL NetworkHasTransitionInviteBeenAcked(Any* p0) { return _i(0x3F9990BF5F22759C, p0); } // 0x3f9990bf5f22759c0x00f26cdcB323 + inline BOOL NetworkIsActivitySession() { return _i(0x05095437424397FA); } // 0x05095437424397fa0x577daa8aB323 + inline Void NetworkDisableRealtimeMultiplayer() { return _i(0x236905C700FDB54D); } // 0x236905c700fdb54dB2612 + // Does nothing. It's just a nullsub. + inline Void NetworkSetPresenceSessionInvitesBlocked(BOOL toggle) { return _i(0x4A9FDE3A5A6D0437, toggle); } // 0x4a9fde3a5a6d04370x18f03afdB323 + inline BOOL NetworkSendInviteViaPresence(Any* gamerHandle, String p1, int dataCount, int p3) { return _i(0xC3C7A6AFDB244624, gamerHandle, p1, dataCount, p3); } // 0xc3c7a6afdb2446240x8b99b72bB323 + inline BOOL NetworkSendTransitionInviteViaPresence(Any* gamerHandle, String p1, int dataCount, int p3) { return _i(0xC116FF9B4D488291, gamerHandle, p1, dataCount, p3); } // 0xc116ff9b4d4882910x877c0e1cB323 + // Contains the string "NETWORK_SEND_PRESENCE_TRANSITION_INVITE" but so does 0xC116FF9B4D488291; seems to fit alphabetically here, tho. + inline BOOL NetworkSendImportantTransitionInviteViaPresence(Any* gamerHandle, String p1, int dataCount, int p3) { return _i(0x1171A97A3D3981B6, gamerHandle, p1, dataCount, p3); } // 0x1171a97a3d3981b6B323 + inline int NetworkGetPresenceInviteIndexById(int p0) { return _i(0x742B58F723233ED9, p0); } // 0x742b58f723233ed90x5e832444B323 + inline int NetworkGetNumPresenceInvites() { return _i(0xCEFA968912D0F78D); } // 0xcefa968912d0f78d0x3fda00f3B323 + inline BOOL NetworkAcceptPresenceInvite(int p0) { return _i(0xFA91550DF9318B22, p0); } // 0xfa91550df9318b220xe5da4cedB323 + inline BOOL NetworkRemovePresenceInvite(int p0) { return _i(0xF0210268DB0974B1, p0); } // 0xf0210268db0974b10x93c665faB323 + inline int NetworkGetPresenceInviteId(int p0) { return _i(0xDFF09646E12EC386, p0); } // 0xdff09646e12ec3860xd50df46cB323 + inline String NetworkGetPresenceInviteInviter(int p0) { return _i(0x4962CC4AA2F345B7, p0); } // 0x4962cc4aa2f345b70x19ec65d9B323 + inline BOOL NetworkGetPresenceInviteHandle(Any p0, Any* p1) { return _i(0x38D5B0FEBB086F75, p0, p1); } // 0x38d5b0febb086f750xb2451429B323 + inline int NetworkGetPresenceInviteSessionId(Any p0) { return _i(0x26E1CD96B0903D60, p0); } // 0x26e1cd96b0903d600xc5e0c989B323 + inline String NetworkGetPresenceInviteContentId(int p0) { return _i(0x24409FC4C55CB22D, p0); } // 0x24409fc4c55cb22d0xa4302183B323 + inline int NetworkGetPresenceInvitePlaylistLength(int p0) { return _i(0xD39B3FFF8FFDD5BF, p0); } // 0xd39b3fff8ffdd5bf0x51b2d848B323 + inline int NetworkGetPresenceInvitePlaylistCurrent(int p0) { return _i(0x728C4CC7920CD102, p0); } // 0x728c4cc7920cd1020x4677c656B323 + inline BOOL NetworkGetPresenceInviteFromAdmin(int p0) { return _i(0x3DBF2DF0AEB7D289, p0); } // 0x3dbf2df0aeb7d2890xf5e3401cB323 + inline BOOL NetworkGetPresenceInviteIsTournament(Any p0) { return _i(0x8806CEBFABD3CE05, p0); } // 0x8806cebfabd3ce050x7d593b4cB323 + inline BOOL NetworkHasFollowInvite() { return _i(0x76D9B976C4C09FDE); } // 0x76d9b976c4c09fde0xe96cfe7dB323 + inline BOOL NetworkActionFollowInvite() { return _i(0xC88156EBB786F8D5); } // 0xc88156ebb786f8d50xab969f00B323 + inline BOOL NetworkClearFollowInvite() { return _i(0x439BFDE3CD0610F6); } // 0x439bfde3cd0610f60x3242f952B323 + inline Void NetworkRemoveAndCancelAllInvites() { return _i(0xEBF8284D8CADEB53); } // 0xebf8284d8cadeb530x9773f36aB323 + inline Void NetworkRemoveTransitionInvite(Any* p0) { return _i(0x7524B431B2E6F7EE, p0); } // 0x7524b431b2e6f7ee0xfde84cb7B323 + inline Void NetworkRemoveAllTransitionInvite() { return _i(0x726E0375C7A26368); } // 0x726e0375c7a263680xf7134e73B323 + inline Void NetworkRemoveAndCancelAllTransitionInvites() { return _i(0xF083835B70BA9BFE); } // 0xf083835b70ba9bfe0xc47352e7B323 + inline BOOL NetworkInviteGamers(Any* p0, Any p1, Any* p2, Any p3) { return _i(0x9D80CD1D0E6327DE, p0, p1, p2, p3); } // 0x9d80cd1d0e6327de0x52fb8074B323 + inline BOOL NetworkHasInvitedGamer(Any* p0) { return _i(0x4D86CD31E8976ECE, p0); } // 0x4d86cd31e8976ece0xec651bc0B323 + inline BOOL NetworkHasMadeInviteDecision(Any* gamerHandle) { return _i(0x71DC455F5CD1C2B1, gamerHandle); } // 0x71dc455f5cd1c2b1B505 + inline int NetworkGetInviteReplyStatus(Any p0) { return _i(0x3855FB5EB2C5E8B2, p0); } // 0x3855fb5eb2c5e8b2B505 + inline BOOL NetworkGetCurrentlySelectedGamerHandleFromInviteMenu(Any* p0) { return _i(0x74881E6BCAE2327C, p0); } // 0x74881e6bcae2327c0x72ba00ceB323 + inline BOOL NetworkSetCurrentlySelectedGamerHandleFromInviteMenu(Any* p0) { return _i(0x7206F674F2A3B1BB, p0); } // 0x7206f674f2a3b1bb0xfd95899eB323 + inline Void NetworkSetInviteOnCallForInviteMenu(Any* p0) { return _i(0x66F010A4B031A331, p0); } // 0x66f010a4b031a3310x11378777B323 + inline BOOL NetworkCheckDataManagerSucceededForHandle(int p0, Any* gamerHandle) { return _i(0x44B37CDCAE765AAE, p0, gamerHandle); } // 0x44b37cdcae765aae0x13301529B323 + inline BOOL NetworkCheckDataManagerForHandle(Any p0, Any* gamerHandle) { return _i(0x4AD490AE1536933B, p0, gamerHandle); } // 0x4ad490ae1536933bB372 + inline Void NetworkSetInviteFailedMessageForInviteMenu(Any* p0, Any* p1) { return _i(0x0D77A82DC2D0DA59, p0, p1); } // 0x0d77a82dc2d0da590x0808d4ccB323 + inline BOOL FilloutPmPlayerList(Any* gamerHandle, Any p1, Any p2) { return _i(0xCBBD7C4991B64809, gamerHandle, p1, p2); } // 0xcbbd7c4991b648090xce40f423B323 + inline BOOL FilloutPmPlayerListWithNames(Any* p0, Any* p1, Any p2, Any p3) { return _i(0x716B6DB9D1886106, p0, p1, p2, p3); } // 0x716b6db9d18861060xb8df604eB323 + inline BOOL RefreshPlayerListStats(int p0) { return _i(0xE26CCFF8094D8C74, p0); } // 0xe26ccff8094d8c740xf49c1533B323 + inline BOOL NetworkSetCurrentDataManagerHandle(Any* p0) { return _i(0x796A87B3B68D1F3D, p0); } // 0x796a87b3b68d1f3dB323 + // Hardcoded to return false. + inline BOOL NetworkIsInPlatformParty() { return _i(0x2FC5650B0271CB57); } // 0x2fc5650b0271cb570xa812b6cbB323 + inline int NetworkGetPlatformPartyMemberCount() { return _i(0x01ABCE5E7CBDA196); } // 0x01abce5e7cbda196B323 + inline int NetworkGetPlatformPartyMembers(Any* data, int dataSize) { return _i(0x120364DE2845DAF8, data, dataSize); } // 0x120364de2845daf80xf30e5814B323 + // Hardcoded to return false. + inline BOOL NetworkIsInPlatformPartyChat() { return _i(0xFD8B834A8BA05048); } // 0xfd8b834a8ba050480xc6609191B323 + // This would be nice to see if someone is in party chat, but 2 sad notes. + // 1) It only becomes true if said person is speaking in that party at the time. + // 2) It will never, become true unless you are in that party with said person. + inline BOOL NetworkIsChattingInPlatformParty(Any* gamerHandle) { return _i(0x8DE9945BCC9AEC52, gamerHandle); } // 0x8de9945bcc9aec520x51367b34B323 + inline BOOL NetworkCanQueueForPreviousSessionJoin() { return _i(0x2BF66D2E7414F686); } // 0x2bf66d2e7414f6860x9156efc0B323 + inline BOOL NetworkIsQueuingForSessionJoin() { return _i(0x14922ED3E38761F0); } // 0x14922ed3e38761f00x8fa6ee0eB323 + inline Void NetworkClearQueuedJoinRequest() { return _i(0x6CE50E47F5543D0C); } // 0x6ce50e47f5543d0cB573 + inline Void NetworkSendQueuedJoinRequest() { return _i(0xFA2888E3833C8E96); } // 0xfa2888e3833c8e960x7f70c15aB323 + inline Void NetworkRemoveAllQueuedJoinRequests() { return _i(0x25D990F8E0E3F13C); } // 0x25d990f8e0e3f13c0x4fd83f5bB323 + inline Void NetworkSeedRandomNumberGenerator(int seed) { return _i(0xF1B84178F8674195, seed); } // 0xf1b84178f86741950x41702c8aB323 + inline int NetworkGetRandomInt() { return _i(0x599E4FA1F87EB5FF); } // 0x599e4fa1f87eb5ff0x208dd848B323 + // Same as GetRandomIntInRange + inline int NetworkGetRandomIntRanged(int rangeStart, int rangeEnd) { return _i(0xE30CF56F1EFA5F43, rangeStart, rangeEnd); } // 0xe30cf56f1efa5f430xf9b6426dB323 + inline float NetworkGetRandomFloatRanged(float rangeStart, float rangeEnd) { return _i(0x04BD27B5ACB67067, rangeStart, rangeEnd); } // 0x04bd27b5acb67067B2802 + inline BOOL NetworkPlayerIsCheater() { return _i(0x655B91F1495A9090); } // 0x655b91f1495a90900xa51dc214B323 + inline int NetworkPlayerGetCheaterReason() { return _i(0x172F75B6EE2233BA); } // 0x172f75b6ee2233ba0x1720aba6B323 + inline BOOL NetworkPlayerIsBadsport() { return _i(0x19D8DA0E5A68045A); } // 0x19d8da0e5a68045a0xa19708e3B323 + inline BOOL RemoteCheaterPlayerDetected(Player player, int a, int b) { return _i(0x472841A026D26D8B, player, a, b); } // 0x472841a026d26d8bB1103 + inline BOOL BadSportPlayerLeftDetected(Any* gamerHandle, int event, int amountReceived) { return _i(0xEC5E3AF5289DCA81, gamerHandle, event, amountReceived); } // 0xec5e3af5289dca810x4c2c6b6aB323 + inline Void NetworkAddInvalidObjectModel(Hash modelHash) { return _i(0x7F562DBC212E81F9, modelHash); } // 0x7f562dbc212e81f9B2545 + inline Void NetworkRemoveInvalidObjectModel(Hash modelHash) { return _i(0x791EDB5803B2F468, modelHash); } // 0x791edb5803b2f468B2545 + inline Void NetworkClearInvalidObjectModels() { return _i(0x03B2F03A53D85E41); } // 0x03b2f03a53d85e41B2545 + inline Void NetworkApplyPedScarData(Ped ped, int p1) { return _i(0xE66C690248F11150, ped, p1); } // 0xe66c690248f111500x4818acd0B323 + inline Void NetworkSetThisScriptIsNetworkScript(int maxNumMissionParticipants, BOOL p1, int instanceId) { return _i(0x1CA59E306ECB80A5, maxNumMissionParticipants, p1, instanceId); } // 0x1ca59e306ecb80a50x470810edB323 + inline BOOL NetworkTryToSetThisScriptIsNetworkScript(Any p0, BOOL p1, Any p2) { return _i(0xD1110739EEADB592, p0, p1, p2); } // 0xd1110739eeadb592B323 + inline BOOL NetworkGetThisScriptIsNetworkScript() { return _i(0x2910669969E9535E); } // 0x2910669969e9535e0xd9bf6549B323 + inline int NetworkGetMaxNumParticipants() { return _i(0xA6C90FBC38E395EE); } // 0xa6c90fbc38e395ee0xccd8c02dB323 + inline int NetworkGetNumParticipants() { return _i(0x18D0456E86604654); } // 0x18d0456e866046540x3e25a3c5B323 + inline int NetworkGetScriptStatus() { return _i(0x57D158647A6BFABF); } // 0x57d158647a6bfabf0x2be9235aB323 + inline Void NetworkRegisterHostBroadcastVariables(int* vars, int numVars, String debugName) { return _i(0x3E9B2F01C50DF595, vars, numVars, debugName); } // 0x3e9b2f01c50df5950xdaf3b0aeB323 + inline Void NetworkRegisterPlayerBroadcastVariables(int* vars, int numVars, String debugName) { return _i(0x3364AA97340CA215, vars, numVars, debugName); } // 0x3364aa97340ca2150xbe3d32b4B323 + inline Void NetworkRegisterHighFrequencyHostBroadcastVariables(Any p0, Any p1, Any p2) { return _i(0xEA8C0DDB10E2822A, p0, p1, p2); } // 0xea8c0ddb10e2822aB1868 + inline Void NetworkRegisterHighFrequencyPlayerBroadcastVariables(Any p0, Any p1, Any p2) { return _i(0xD6D7478CA62B8D41, p0, p1, p2); } // 0xd6d7478ca62b8d41B1868 + inline Void NetworkFinishBroadcastingData() { return _i(0x64F62AFB081E260D); } // 0x64f62afb081e260d0xa71a1d2aB323 + inline BOOL NetworkHasReceivedHostBroadcastData() { return _i(0x5D10B3795F3FC886); } // 0x5d10b3795f3fc8860x0b739f53B323 + inline Player NetworkGetPlayerIndex(Player player) { return _i(0x24FB80D107371267, player); } // 0x24fb80d1073712670xbe1c1506B323 + inline int NetworkGetParticipantIndex(int index) { return _i(0x1B84DF6AF2A46938, index); } // 0x1b84df6af2a469380xc4d91094B323 + // Returns the Player associated to a given Ped when in an online session. + inline Player NetworkGetPlayerIndexFromPed(Ped ped) { return _i(0x6C0E2E0125610278, ped); } // 0x6c0e2e01256102780x40dbf464B323 + // Returns the amount of players connected in the current session. Only works when connected to a session/server. + inline int NetworkGetNumConnectedPlayers() { return _i(0xA4A79DD2D9600654); } // 0xa4a79dd2d96006540xf7952e62B323 + inline BOOL NetworkIsPlayerConnected(Player player) { return _i(0x93DC1BE4E1ABE9D1, player); } // 0x93dc1be4e1abe9d10x168ee2c2B323 + inline int NetworkGetTotalNumPlayers() { return _i(0xCF61D4B4702EE9EB); } // 0xcf61d4b4702ee9eb0xf4f13b06B323 + inline BOOL NetworkIsParticipantActive(int p0) { return _i(0x6FF8FF40B6357D45, p0); } // 0x6ff8ff40b6357d450x4e2c348bB323 + inline BOOL NetworkIsPlayerActive(Player player) { return _i(0xB8DFD30D6973E135, player); } // 0xb8dfd30d6973e1350x43657b17B323 + inline BOOL NetworkIsPlayerAParticipant(Player player) { return _i(0x3CA58F6CB7CBD784, player); } // 0x3ca58f6cb7cbd7840xb08b6992B323 + inline BOOL NetworkIsHostOfThisScript() { return _i(0x83CD99A1E6061AB5); } // 0x83cd99a1e6061ab50x6970ba94B323 + inline Player NetworkGetHostOfThisScript() { return _i(0xC7B4D79B01FA7A5C); } // 0xc7b4d79b01fa7a5c0x89ea7b54B323 + // scriptName examples: + // "freemode", "AM_CR_SecurityVan", ... + // + // Most of the time, these values are used: + // instance_id = -1 + // position_hash = 0 + inline Player NetworkGetHostOfScript(String scriptName, int instance_id, int position_hash) { return _i(0x1D6A14F1F9A736FC, scriptName, instance_id, position_hash); } // 0x1d6a14f1f9a736fc0x9c95d0bbB323 + inline Void NetworkSetMissionFinished() { return _i(0x3B3D11CD9FFCDFC9); } // 0x3b3d11cd9ffcdfc90x3083fad7B323 + inline BOOL NetworkIsScriptActive(String scriptName, int instance_id, BOOL p2, int position_hash) { return _i(0x9D40DF90FAD26098, scriptName, instance_id, p2, position_hash); } // 0x9d40df90fad260980x4a65250cB323 + inline BOOL NetworkIsScriptActiveByHash(Hash scriptHash, int p1, BOOL p2, int p3) { return _i(0xDA7DE67F5FE5EE13, scriptHash, p1, p2, p3); } // 0xda7de67f5fe5ee13B2245 + inline BOOL NetworkIsThreadANetworkScript(int threadId) { return _i(0x560B423D73015E77, threadId); } // 0x560b423d73015e77B1604 + inline int NetworkGetNumScriptParticipants(String scriptName, int instance_id, int position_hash) { return _i(0x3658E8CD94FC121A, scriptName, instance_id, position_hash); } // 0x3658e8cd94fc121a0x8f7d9f46B323 + inline int NetworkGetInstanceIdOfThisScript() { return _i(0x638A3A81733086DB); } // 0x638a3a81733086db0xdb8b5d71B323 + inline Hash NetworkGetPositionHashOfThisScript() { return _i(0x257ED0FADF750BCF); } // 0x257ed0fadf750bcfB2372 + inline BOOL NetworkIsPlayerAParticipantOnScript(Player player, String script, int instance_id) { return _i(0x1AD5B71586B94820, player, script, instance_id); } // 0x1ad5b71586b948200xcea55f4cB323 + inline Void NetworkPreventScriptHostMigration() { return _i(0x2302C0264EA58D31); } // 0x2302c0264ea58d310x8dcfe77dB323 + inline Void NetworkRequestToBeHostOfThisScript() { return _i(0x741A3D8380319A81); } // 0x741a3d8380319a810x331d9a27B323 + // Return the local Participant ID + inline Player ParticipantId() { return _i(0x90986E8876CE0A83); } // 0x90986e8876ce0a830x9c35a221B323 + // Return the local Participant ID. + // + // This native is exactly the same as 'ParticipantId' native. + inline int ParticipantIdToInt() { return _i(0x57A3BDDAD8E5AA0A); } // 0x57a3bddad8e5aa0a0x907498b0B323 + inline Player NetworkGetKillerOfPlayer(Player player, Hash* weaponHash) { return _i(0x2DA41ED6E1FCD7A5, player, weaponHash); } // 0x2da41ed6e1fcd7a5B463 + inline Player NetworkGetDestroyerOfNetworkId(int netId, Hash* weaponHash) { return _i(0x7A1ADEEF01740A24, netId, weaponHash); } // 0x7a1adeef01740a240x4fca6436B323 + inline Player NetworkGetDestroyerOfEntity(Entity entity, Hash* weaponHash) { return _i(0xC434133D9BA52777, entity, weaponHash); } // 0xc434133d9ba52777B463 + // NetworkGetAssistedDamageOfEntity that ensures the entity is dead (IsEntityDead) + inline BOOL NetworkGetAssistedKillOfEntity(Player player, Entity entity, int* p2) { return _i(0x83660B734994124D, player, entity, p2); } // 0x83660b734994124dB463 + inline BOOL NetworkGetAssistedDamageOfEntity(Player player, Entity entity, int* p2) { return _i(0x4CACA84440FA26F6, player, entity, p2); } // 0x4caca84440fa26f60x28a45454B323 + inline Entity NetworkGetEntityKillerOfPlayer(Player player, Hash* weaponHash) { return _i(0x42B2DAA6B596F5F8, player, weaponHash); } // 0x42b2daa6b596f5f80xa7e7e04fB323 + inline Void NetworkSetCurrentPublicContentId(String missionId) { return _i(0x2C863ACDCD12B3DB, missionId); } // 0x2c863acdcd12b3dbB2699 + inline Void NetworkSetCurrentChatOption(int newChatOption) { return _i(0x3DAD00265FBF356B, newChatOption); } // 0x3dad00265fbf356bB2802 + // mpSettingSpawn: + // + // enum eMpSettingSpawn + // { + // MP_SETTING_SPAWN_NULL, + // MP_SETTING_SPAWN_PROPERTY, + // MP_SETTING_SPAWN_LAST_POSITION, + // MP_SETTING_SPAWN_GARAGE, + // MP_SETTING_SPAWN_RANDOM, + // MP_SETTING_SPAWN_PRIVATE_YACHT, + // MP_SETTING_SPAWN_OFFICE, + // MP_SETTING_SPAWN_CLUBHOUSE, + // MP_SETTING_SPAWN_IE_WAREHOUSE, + // MP_SETTING_SPAWN_BUNKER, + // MP_SETTING_SPAWN_HANGAR, + // MP_SETTING_SPAWN_DEFUNCT_BASE, + // MP_SETTING_SPAWN_NIGHTCLUB, + // MP_SETTING_SPAWN_ARENA_GARAGE, + // MP_SETTING_SPAWN_CASINO_APARTMENT, + // MP_SETTING_SPAWN_ARCADE, + // MP_SETTING_SPAWN_SUBMARINE, + // MP_SETTING_SPAWN_CAR_MEET, + // MP_SETTING_SPAWN_AUTO_SHOP, + // MP_SETTING_SPAWN_FIXER_HQ, + // MP_SETTING_SPAWN_MAX, + // }; + inline Void NetworkSetCurrentSpawnLocationOption(Hash mpSettingSpawn) { return _i(0xAA6D5451DC3448B6, mpSettingSpawn); } // 0xaa6d5451dc3448b6B2699 + // Used by MetricVEHICLE_DIST_DRIVEN + inline Void NetworkSetVehicleDrivenInTestDrive(BOOL toggle) { return _i(0x8C70252FC40F320B, toggle); } // 0x8c70252fc40f320bB2699 + // Sets 'loc' variable used in MetricVEHICLE_DIST_DRIVEN + inline Void NetworkSetVehicleDrivenLocation(Hash location) { return _i(0xA0CE91E47531D3BB, location); } // 0xa0ce91e47531d3bbB2944 + inline Void NetworkResurrectLocalPlayer(float x, float y, float z, float heading, BOOL p4, BOOL changetime, BOOL p6, int p7, int p8) { return _i(0xEA23C49EAA83ACFB, x, y, z, heading, p4, changetime, p6, p7, p8); } // 0xea23c49eaa83acfb0xf1f9d4b4B323 + inline Void NetworkSetLocalPlayerInvincibleTime(int time) { return _i(0x2D95C7E2D7E07307, time); } // 0x2d95c7e2d7e073070xfea9b85cB323 + inline BOOL NetworkIsLocalPlayerInvincible() { return _i(0x8A8694B48715B000); } // 0x8a8694b48715b0000x8de13b36B323 + inline Void NetworkDisableInvincibleFlashing(Player player, BOOL toggle) { return _i(0x9DD368BF06983221, player, toggle); } // 0x9dd368bf069832210x8d27280eB323 + inline Void NetworkPatchPostCutsceneHs4fTunEnt(Ped ped) { return _i(0xF0BC9BCD24A511D5, ped); } // 0xf0bc9bcd24a511d5B2372 + inline Void NetworkSetLocalPlayerSyncLookAt(BOOL toggle) { return _i(0x524FF0AEFF9C3973, toggle); } // 0x524ff0aeff9c39730xb72f086dB323 + inline BOOL NetworkHasEntityBeenRegisteredWithThisThread(Entity entity) { return _i(0xB07D3185E11657A5, entity); } // 0xb07d3185e11657a50xeda68956B323 + inline int NetworkGetNetworkIdFromEntity(Entity entity) { return _i(0xA11700682F3AD45C, entity); } // 0xa11700682f3ad45c0x9e35dab6B323 + inline Entity NetworkGetEntityFromNetworkId(int netId) { return _i(0xCE4E5D9B0A4FF560, netId); } // 0xce4e5d9b0a4ff5600x5b912c3fB323 + inline BOOL NetworkGetEntityIsNetworked(Entity entity) { return _i(0xC7827959479DCC78, entity); } // 0xc7827959479dcc780xd7f934f4B323 + inline BOOL NetworkGetEntityIsLocal(Entity entity) { return _i(0x0991549DE4D64762, entity); } // 0x0991549de4d647620x813353edB323 + inline Void NetworkRegisterEntityAsNetworked(Entity entity) { return _i(0x06FAACD625D80CAA, entity); } // 0x06faacd625d80caa0x31a630a4B323 + inline Void NetworkUnregisterNetworkedEntity(Entity entity) { return _i(0x7368E683BB9038D6, entity); } // 0x7368e683bb9038d60x5c645f64B323 + inline BOOL NetworkDoesNetworkIdExist(int netId) { return _i(0x38CE16C96BD11344, netId); } // 0x38ce16c96bd113440xb8d2c99eB323 + inline BOOL NetworkDoesEntityExistWithNetworkId(int netId) { return _i(0x18A47D074708FD68, netId); } // 0x18a47d074708fd680x1e2e3177B323 + inline BOOL NetworkRequestControlOfNetworkId(int netId) { return _i(0xA670B3662FAFFBD0, netId); } // 0xa670b3662faffbd00x9262a60aB323 + inline BOOL NetworkHasControlOfNetworkId(int netId) { return _i(0x4D36070FE0215186, netId); } // 0x4d36070fe02151860x92e77d21B323 + // Returns true if the specified network id is controlled by someone else. + inline BOOL NetworkIsNetworkIdRemotelyControlled(int netId) { return _i(0x7242F8B741CE1086, netId); } // 0x7242f8b741ce1086B678 + inline BOOL NetworkRequestControlOfEntity(Entity entity) { return _i(0xB69317BF5E782347, entity); } // 0xb69317bf5e7823470xa05febd7B323 + inline BOOL NetworkRequestControlOfDoor(int doorID) { return _i(0x870DDFD5A4A796E4, doorID); } // 0x870ddfd5a4a796e40xf60daaf6B323 + inline BOOL NetworkHasControlOfEntity(Entity entity) { return _i(0x01BF60A500E28887, entity); } // 0x01bf60a500e288870x005fd797B323 + inline BOOL NetworkHasControlOfPickup(Pickup pickup) { return _i(0x5BC9495F0B3B6FA6, pickup); } // 0x5bc9495f0b3b6fa60xf7784fc8B323 + inline BOOL NetworkHasControlOfDoor(Hash doorHash) { return _i(0xCB3C68ADB06195DF, doorHash); } // 0xcb3c68adb06195df0x136326ecB323 + inline BOOL NetworkIsDoorNetworked(Hash doorHash) { return _i(0xC01E93FAC20C3346, doorHash); } // 0xc01e93fac20c33460xd14d9c07B323 + // calls from vehicle to net. + // + inline int VehToNet(Vehicle vehicle) { return _i(0xB4C94523F023419C, vehicle); } // 0xb4c94523f023419c0xf17634ebB323 + // gets the network id of a ped + inline int PedToNet(Ped ped) { return _i(0x0EDEC3C276198689, ped); } // 0x0edec3c2761986890x86a0b759B323 + // Lets objects spawn online simply do it like this: + // + // int createdObject = ObjToNet(CreateObjectNoOffset(oball, pCoords.x, pCoords.y, pCoords.z, 1, 0, 0)); + inline int ObjToNet(Object object) { return _i(0x99BFDC94A603E541, object); } // 0x99bfdc94a603e5410x1e05f29fB323 + inline Vehicle NetToVeh(int netHandle) { return _i(0x367B936610BA360C, netHandle); } // 0x367b936610ba360c0x7e02faeaB323 + // gets the ped id of a network id + inline Ped NetToPed(int netHandle) { return _i(0xBDCD95FC216A8B3E, netHandle); } // 0xbdcd95fc216a8b3e0x87717dd4B323 + // gets the object id of a network id + inline Object NetToObj(int netHandle) { return _i(0xD8515F5FEA14CB3F, netHandle); } // 0xd8515f5fea14cb3f0x27aa14d8B323 + // gets the entity id of a network id + inline Entity NetToEnt(int netHandle) { return _i(0xBFFEAB45A9A9094A, netHandle); } // 0xbffeab45a9a9094a0x5e149683B323 + inline Void NetworkGetLocalHandle(Any* gamerHandle, int gamerHandleSize) { return _i(0xE86051786B66CD8E, gamerHandle, gamerHandleSize); } // 0xe86051786b66cd8e0x08023b16B323 + inline Void NetworkHandleFromUserId(String userId, Any* gamerHandle, int gamerHandleSize) { return _i(0xDCD51DD8F87AEC5C, userId, gamerHandle, gamerHandleSize); } // 0xdcd51dd8f87aec5c0x74c2c1b7B323 + inline Void NetworkHandleFromMemberId(String memberId, Any* gamerHandle, int gamerHandleSize) { return _i(0xA0FD21BED61E5C4C, memberId, gamerHandle, gamerHandleSize); } // 0xa0fd21bed61e5c4c0x9bfc9fe2B323 + inline Void NetworkHandleFromPlayer(Player player, Any* gamerHandle, int gamerHandleSize) { return _i(0x388EB2B86C73B6B3, player, gamerHandle, gamerHandleSize); } // 0x388eb2b86c73b6b30xd3498917B323 + inline Hash NetworkHashFromPlayerHandle(Player player) { return _i(0xBC1D768F2F5D6C05, player); } // 0xbc1d768f2f5d6c050xf8d7af3bB323 + inline Hash NetworkHashFromGamerHandle(Any* gamerHandle) { return _i(0x58575AC3CF2CA8EC, gamerHandle); } // 0x58575ac3cf2ca8ec0x5ac9f04dB323 + inline Void NetworkHandleFromFriend(int friendIndex, Any* gamerHandle, int gamerHandleSize) { return _i(0xD45CB817D7E177D2, friendIndex, gamerHandle, gamerHandleSize); } // 0xd45cb817d7e177d20x3b0bb3a3B323 + inline BOOL NetworkGamertagFromHandleStart(Any* gamerHandle) { return _i(0x9F0C0A981D73FA56, gamerHandle); } // 0x9f0c0a981d73fa560xeba00c2aB323 + inline BOOL NetworkGamertagFromHandlePending() { return _i(0xB071E27958EF4CF0); } // 0xb071e27958ef4cf00xf000828eB323 + inline BOOL NetworkGamertagFromHandleSucceeded() { return _i(0xFD00798DBA7523DD); } // 0xfd00798dba7523dd0x89c2b5eaB323 + inline String NetworkGetGamertagFromHandle(Any* gamerHandle) { return _i(0x426141162EBE5CDB, gamerHandle); } // 0x426141162ebe5cdb0xa18a1b26B323 + // Hardcoded to return -1. + inline int NetworkDisplaynamesFromHandlesStart(Any* p0, Any p1) { return _i(0xD66C9E72B3CC4982, p0, p1); } // 0xd66c9e72b3cc4982B323 + // This function is hard-coded to always return 0. + inline int NetworkGetDisplaynamesFromHandles(Any p0, Any p1, Any p2) { return _i(0x58CC181719256197, p0, p1, p2); } // 0x58cc181719256197B323 + inline BOOL NetworkAreHandlesTheSame(Any* gamerHandle1, Any* gamerHandle2) { return _i(0x57DBA049E110F217, gamerHandle1, gamerHandle2); } // 0x57dba049e110f2170x45975ae3B323 + inline BOOL NetworkIsHandleValid(Any* gamerHandle, int gamerHandleSize) { return _i(0x6F79B93B0A8E4133, gamerHandle, gamerHandleSize); } // 0x6f79b93b0a8e41330xf0996c6eB323 + inline Player NetworkGetPlayerFromGamerHandle(Any* gamerHandle) { return _i(0xCE5F689CF5A0A49D, gamerHandle); } // 0xce5f689cf5a0a49d0x2e96ef1eB323 + inline String NetworkMemberIdFromGamerHandle(Any* gamerHandle) { return _i(0xC82630132081BB6F, gamerHandle); } // 0xc82630132081bb6f0x62ef0a63B323 + inline BOOL NetworkIsGamerInMySession(Any* gamerHandle) { return _i(0x0F10B05DDF8D16E9, gamerHandle); } // 0x0f10b05ddf8d16e90x59127716B323 + inline Void NetworkShowProfileUi(Any* gamerHandle) { return _i(0x859ED1CEA343FCA8, gamerHandle); } // 0x859ed1cea343fca80xf00a20b0B323 + // Returns the name of a given player. Returns "**Invalid**" if rlGamerInfo of the given player cannot be retrieved or the player doesn't exist. + inline String NetworkPlayerGetName(Player player) { return _i(0x7718D2E2060837D2, player); } // 0x7718d2e2060837d20xce48f260B323 + // Returns a string of the player's Rockstar Id. + // Takes a 24 char buffer. Returns the buffer or "**Invalid**" if rlGamerInfo of the given player cannot be retrieved or the player doesn't exist. + inline String NetworkPlayerGetUserid(Player player, int* userID) { return _i(0x4927FC39CD0869A0, player, userID); } // 0x4927fc39cd0869a00x4ec0d983B323 + // Checks if a specific value (BYTE) in CNetGamePlayer is nonzero. + // Returns always false in Singleplayer. + // + // No longer used for dev checks since first mods were released on PS3 & 360. + // R* now checks with the IsDlcPresent native for the dlc hash 2532323046, + // if that is present it will unlock dev stuff. + inline BOOL NetworkPlayerIsRockstarDev(Player player) { return _i(0x544ABDDA3B409B6D, player); } // 0x544abdda3b409b6d0xf6659045B323 + inline BOOL NetworkPlayerIndexIsCheater(Player player) { return _i(0x565E430DB3B05BEC, player); } // 0x565e430db3b05bec0xd265b049B323 + inline int NetworkEntityGetObjectId(Entity entity) { return _i(0x815F18AD865F057F, entity); } // 0x815f18ad865f057fB463 + // I've had this return the player's ped handle sometimes, but also other random entities. + // Whatever p0 is, it's at least not synced to other players. + // At least not all the time, some p0 values actually output the same entity, (different handle of course, but same entity). + // But another p0 value may return an entity for player x, but not for player y (it'll just return -1 even if the entity exists on both clients). + // + // Returns an entity handle or -1, value changes based on p0's value. + inline Entity NetworkGetEntityFromObjectId(Any p0) { return _i(0x37D5F739FD494675, p0); } // 0x37d5f739fd494675B505 + inline BOOL NetworkIsInactiveProfile(Any* p0) { return _i(0x7E58745504313A2E, p0); } // 0x7e58745504313a2e0x95481343B323 + inline int NetworkGetMaxFriends() { return _i(0xAFEBB0D5D8F687D2); } // 0xafebb0d5d8f687d20x048171bcB323 + inline int NetworkGetFriendCount() { return _i(0x203F1CFD823B27A4); } // 0x203f1cfd823b27a40xa396acdeB323 + inline String NetworkGetFriendName(int friendIndex) { return _i(0xE11EBBB2A783FE8B, friendIndex); } // 0xe11ebbb2a783fe8b0x97420b6dB323 + inline String NetworkGetFriendDisplayName(int friendIndex) { return _i(0x4164F227D052E293, friendIndex); } // 0x4164f227d052e293B323 + inline BOOL NetworkIsFriendOnline(String name) { return _i(0x425A44533437B64D, name); } // 0x425a44533437b64d0xe0a42430B323 + inline BOOL NetworkIsFriendHandleOnline(Any* gamerHandle) { return _i(0x87EB7A3FFCB314DB, gamerHandle); } // 0x87eb7a3ffcb314dbB323 + // In scripts R* calls 'NetworkGetFriendName' in this param. + inline BOOL NetworkIsFriendInSameTitle(String friendName) { return _i(0x2EA9A3BEDF3F17B8, friendName); } // 0x2ea9a3bedf3f17b80xc54365c2B323 + inline BOOL NetworkIsFriendInMultiplayer(String friendName) { return _i(0x57005C18827F3A28, friendName); } // 0x57005c18827f3a280x400bddd9B323 + inline BOOL NetworkIsFriend(Any* gamerHandle) { return _i(0x1A24A179F9B31654, gamerHandle); } // 0x1a24a179f9b316540x2da4c282B323 + // This function is hard-coded to always return 0. + inline BOOL NetworkIsPendingFriend(Any p0) { return _i(0x0BE73DA6984A6E33, p0); } // 0x0be73da6984a6e330x5c85ff81B323 + inline BOOL NetworkIsAddingFriend() { return _i(0x6EA101606F6E4D81); } // 0x6ea101606f6e4d810xbb7ec8c4B323 + inline BOOL NetworkAddFriend(Any* gamerHandle, String message) { return _i(0x8E02D73914064223, gamerHandle, message); } // 0x8e02d739140642230x20e5b3eeB323 + inline BOOL NetworkIsFriendIndexOnline(int friendIndex) { return _i(0xBAD8F2A42B844821, friendIndex); } // 0xbad8f2a42b8448210x94ae7172B323 + inline Void NetworkSetPlayerIsPassive(BOOL toggle) { return _i(0x1B857666604B1A74, toggle); } // 0x1b857666604b1a740x76a9feb6B323 + inline BOOL NetworkGetPlayerOwnsWaypoint(Player player) { return _i(0x82377B65E943F72D, player); } // 0x82377b65e943f72d0xb802b671B323 + inline BOOL NetworkCanSetWaypoint() { return _i(0xC927EC229934AF60); } // 0xc927ec229934af600x009e68f3B323 + inline Void NetworkIgnoreRemoteWaypoints() { return _i(0x4C2A9FDC22377075); } // 0x4c2a9fdc22377075B372 + // communicationType: 0 = VOICE; 1 = TEXT_CHAT; 2 = TEXT_MESSAGE; 3 = EMAIL; 4 = USER_CONTENT; 5 = USER_TEXT + inline BOOL NetworkDoesCommunicationGroupExist(int communicationType) { return _i(0xDBDF80673BBA3D65, communicationType); } // 0xdbdf80673bba3d65B3095 + // Returns communicationGroupFlag + // communicationType: see 0xDBDF80673BBA3D65 + // + // enum eCommunicationGroupFlag + // { + // COMMUNICATION_GROUP_LOCAL_PLAYER = 1 << 0, + // COMMUNICATION_GROUP_FRIENDS = 1 << 1, + // COMMUNICATION_GROUP_SMALL_CREW = 1 << 2, + // COMMUNICATION_GROUP_LARGE_CREW = 1 << 3, + // COMMUNICATION_GROUP_RECENT_PLAYER = 1 << 4, + // COMMUNICATION_GROUP_SAME_SESSION = 1 << 5, + // COMMUNICATION_GROUP_SAME_TEAM = 1 << 6, + // COMMUNICATION_GROUP_INVALID = 1 << 7, + // }; + inline int NetworkGetCommunicationGroupFlags(int communicationType) { return _i(0x40DF02F371F40883, communicationType); } // 0x40df02f371f40883B3095 + // communicationType: see 0xDBDF80673BBA3D65 + // communicationGroupFlag: see 0x40DF02F371F40883 + inline Void NetworkSetCommunicationGroupFlags(int communicationType, int communicationGroupFlag) { return _i(0xE549F846DE7D32D5, communicationType, communicationGroupFlag); } // 0xe549f846de7d32d5B3095 + inline BOOL NetworkIsPlayerOnBlocklist(Any* gamerHandle) { return _i(0xAD4326FCA30D62F8, gamerHandle); } // 0xad4326fca30d62f8B2802 + inline BOOL NetworkSetScriptAutomuted(Any p0) { return _i(0xB309EBEA797E001F, p0); } // 0xb309ebea797e001f0x5c0ab2a9B323 + inline BOOL NetworkHasAutomuteOverride() { return _i(0x26F07DD83A5F7F98); } // 0x26f07dd83a5f7f980x9a176b6eB323 + inline BOOL NetworkHasHeadset() { return _i(0xE870F9F1F7B4F1FA); } // 0xe870f9f1f7b4f1fa0xa7dc5657B323 + inline Void NetworkSetLookAtTalkers(BOOL p0) { return _i(0x7D395EA61622E116, p0); } // 0x7d395ea61622e1160x5c05b7e1B323 + inline BOOL NetworkIsPushToTalkActive() { return _i(0xC0D2AF00BCC234CA); } // 0xc0d2af00bcc234caB323 + inline BOOL NetworkGamerHasHeadset(Any* gamerHandle) { return _i(0xF2FD55CB574BCC55, gamerHandle); } // 0xf2fd55cb574bcc550xd036da4aB323 + inline BOOL NetworkIsGamerTalking(Any* gamerHandle) { return _i(0x71C33B22606CD88A, gamerHandle); } // 0x71c33b22606cd88a0x99b58dbcB323 + inline BOOL NetworkPermissionsHasGamerRecord(Any* gamerHandle) { return _i(0x559EBF901A8C68E0, gamerHandle); } // 0x559ebf901a8c68e0B2699 + inline BOOL NetworkCanCommunicateWithGamer(Any* gamerHandle) { return _i(0x8F5D1AD832AEB06C, gamerHandle); } // 0x8f5d1ad832aeb06c0xd05eb7f6B323 + inline BOOL NetworkCanTextChatWithGamer(Any* gamerHandle) { return _i(0xA150A4F065806B1F, gamerHandle); } // 0xa150a4f065806b1fB944 + inline BOOL NetworkIsGamerMutedByMe(Any* gamerHandle) { return _i(0xCE60DE011B6C7978, gamerHandle); } // 0xce60de011b6c79780x001b4046B323 + inline BOOL NetworkAmIMutedByGamer(Any* gamerHandle) { return _i(0xDF02A2C93F1F26DA, gamerHandle); } // 0xdf02a2c93f1f26da0x7685b333B323 + inline BOOL NetworkIsGamerBlockedByMe(Any* gamerHandle) { return _i(0xE944C4F5AF1B5883, gamerHandle); } // 0xe944c4f5af1b58830x3fdcc8d7B323 + inline BOOL NetworkAmIBlockedByGamer(Any* gamerHandle) { return _i(0x15337C7C268A27B2, gamerHandle); } // 0x15337c7c268a27b20xd19b312cB323 + inline BOOL NetworkCanViewGamerUserContent(Any* gamerHandle) { return _i(0xB57A49545BA53CE7, gamerHandle); } // 0xb57a49545ba53ce7B323 + inline BOOL NetworkHasViewGamerUserContentResult(Any* gamerHandle) { return _i(0xCCA4318E1AB03F1F, gamerHandle); } // 0xcca4318e1ab03f1fB323 + inline BOOL NetworkCanPlayMultiplayerWithGamer(Any* gamerHandle) { return _i(0x07DD29D5E22763F1, gamerHandle); } // 0x07dd29d5e22763f1B323 + inline BOOL NetworkCanGamerPlayMultiplayerWithMe(Any* gamerHandle) { return _i(0x135F9B7B7ADD2185, gamerHandle); } // 0x135f9b7b7add2185B323 + inline BOOL NetworkCanSendLocalInvite(Any* gamerHandle) { return _i(0x021ABCBD98EC4320, gamerHandle); } // 0x021abcbd98ec4320B2612 + inline BOOL NetworkCanReceiveLocalInvite(Any* gamerHandle) { return _i(0x421E34C55F125964, gamerHandle); } // 0x421e34c55f125964B2612 + // returns true if someone is screaming or talking in a microphone + inline BOOL NetworkIsPlayerTalking(Player player) { return _i(0x031E11F3D447647E, player); } // 0x031e11f3d447647e0xda9fd9dbB323 + inline BOOL NetworkPlayerHasHeadset(Player player) { return _i(0x3FB99A8B08D18FD6, player); } // 0x3fb99a8b08d18fd60x451fb6b6B323 + inline BOOL NetworkIsPlayerMutedByMe(Player player) { return _i(0x8C71288AE68EDE39, player); } // 0x8c71288ae68ede390x7a21050eB323 + inline BOOL NetworkAmIMutedByPlayer(Player player) { return _i(0x9D6981DFC91A8604, player); } // 0x9d6981dfc91a86040xe128f2b0B323 + inline BOOL NetworkIsPlayerBlockedByMe(Player player) { return _i(0x57AF1F8E27483721, player); } // 0x57af1f8e274837210xae4f4560B323 + inline BOOL NetworkAmIBlockedByPlayer(Player player) { return _i(0x87F395D957D4353D, player); } // 0x87f395d957d4353d0x953ef45eB323 + inline float NetworkGetPlayerLoudness(Player player) { return _i(0x21A1684A25C2867F, player); } // 0x21a1684a25c2867f0xf2f67014B323 + inline Void NetworkSetTalkerProximity(float value) { return _i(0xCBF12D65F95AD686, value); } // 0xcbf12d65f95ad6860x67555c66B323 + inline float NetworkGetTalkerProximity() { return _i(0x84F0F13120B4E098); } // 0x84f0f13120b4e0980x19991addB323 + inline Void NetworkSetVoiceActive(BOOL toggle) { return _i(0xBABEC9E69A91C57B, toggle); } // 0xbabec9e69a91c57b0x8011247fB323 + inline Void NetworkRemainInGameChat(BOOL p0) { return _i(0xCFEB46DCD7D8D5EB, p0); } // 0xcfeb46dcd7d8d5eb0x1a3ea6cdB323 + inline Void NetworkOverrideTransitionChat(BOOL p0) { return _i(0xAF66059A131AA269, p0); } // 0xaf66059a131aa2690xcab21090B323 + inline Void NetworkSetTeamOnlyChat(BOOL toggle) { return _i(0xD5B4883AC32F24C3, toggle); } // 0xd5b4883ac32f24c30x3813019aB323 + inline Void NetworkSetScriptControllingTeams(Any p0) { return _i(0x265559DA40B3F327, p0); } // 0x265559da40b3f327B573 + inline BOOL NetworkSetSameTeamAsLocalPlayer(Any p0, Any p1) { return _i(0x4348BFDA56023A2F, p0, p1); } // 0x4348bfda56023a2fB573 + inline Void NetworkOverrideTeamRestrictions(int team, BOOL toggle) { return _i(0x6F697A66CE78674E, team, toggle); } // 0x6f697a66ce78674e0xc8cc9e75B323 + inline Void NetworkSetOverrideSpectatorMode(BOOL toggle) { return _i(0x70DA3BF8DACD3210, toggle); } // 0x70da3bf8dacd32100xa0fd42d3B323 + inline Void NetworkSetOverrideTutorialSessionChat(BOOL toggle) { return _i(0x3C5C1E2C2FF814B1, toggle); } // 0x3c5c1e2c2ff814b10xc9dda85bB323 + inline Void NetworkSetProximityAffectsTeam(BOOL toggle) { return _i(0x9D7AFCBF21C51712, toggle); } // 0x9d7afcbf21c517120xe5219410B323 + inline Void NetworkSetNoSpectatorChat(BOOL toggle) { return _i(0xF46A1E03E8755980, toggle); } // 0xf46a1e03e87559800xd33aff79B323 + inline Void NetworkSetIgnoreSpectatorChatLimitsSameTeam(BOOL toggle) { return _i(0x6A5D89D7769A40D8, toggle); } // 0x6a5d89d7769a40d80x4ffefe43B323 + // Could possibly bypass being muted or automatically muted + inline Void NetworkOverrideChatRestrictions(Player player, BOOL toggle) { return _i(0x3039AE5AD2C9C0C4, player, toggle); } // 0x3039ae5ad2c9c0c40x74ee2d8bB323 + // This is used alongside the native, + // 'NetworkOverrideReceiveRestrictions'. Read its description for more info. + inline Void NetworkOverrideSendRestrictions(Player player, BOOL toggle) { return _i(0x97DD4C5944CC2E6A, player, toggle); } // 0x97dd4c5944cc2e6a0x6c344ae3B323 + inline Void NetworkOverrideSendRestrictionsAll(BOOL toggle) { return _i(0x57B192B4D4AD23D5, toggle); } // 0x57b192b4d4ad23d50x2f98b405B323 + // R* uses this to hear all player when spectating. + // It allows you to hear other online players when their chat is on none, crew and or friends + inline Void NetworkOverrideReceiveRestrictions(Player player, BOOL toggle) { return _i(0xDDF73E2B1FEC5AB4, player, toggle); } // 0xddf73e2b1fec5ab40x95f1c60dB323 + // p0 is always false in scripts. + inline Void NetworkOverrideReceiveRestrictionsAll(BOOL toggle) { return _i(0x0FF2862B61A58AF9, toggle); } // 0x0ff2862b61a58af90x1bcd3ddfB323 + inline Void NetworkSetVoiceChannel(int channel) { return _i(0xEF6212C2EFEF1A23, channel); } // 0xef6212c2efef1a230x3974879fB323 + inline Void NetworkClearVoiceChannel() { return _i(0xE036A705F989E049); } // 0xe036a705f989e0490x9ecf722aB323 + inline Void NetworkApplyVoiceProximityOverride(float x, float y, float z) { return _i(0xDBD2056652689917, x, y, z); } // 0xdbd20566526899170xf1e84832B323 + inline Void NetworkClearVoiceProximityOverride() { return _i(0xF03755696450470C); } // 0xf03755696450470c0x7f9b9052B323 + inline Void NetworkEnableVoiceBandwidthRestriction(Player player) { return _i(0x5E3AA4CA2B6FB0EE, player); } // 0x5e3aa4ca2b6fb0ee0x7bbea8cfB323 + inline Void NetworkDisableVoiceBandwidthRestriction(Player player) { return _i(0xCA575C391FEA25CC, player); } // 0xca575c391fea25cc0xe797a4b6B323 + // NETWORK_GET_M[A-U] + inline Void NetworkGetMuteCountForPlayer(Player p0, float* p1, float* p2) { return _i(0xADB57E5B663CCA8B, p0, p1, p2); } // 0xadb57e5b663cca8b0x92268bb5B323 + inline Void NetworkSetSpectatorToNonSpectatorTextChat(BOOL toggle) { return _i(0x8EF52ACAECC51D9C, toggle); } // 0x8ef52acaecc51d9cB1734 + // Same as _IS_TEXT_CHAT_ACTIVE, except it does not check if the text chat HUD component is initialized, and therefore may crash. + inline BOOL NetworkTextChatIsTyping() { return _i(0x5FCF4D7069B09026); } // 0x5fcf4d7069b09026B323 + // Starts a new singleplayer game (at the prologue). + inline Void ShutdownAndLaunchSinglePlayerGame() { return _i(0x593850C16A36B692); } // 0x593850c16a36b6920x92b7351cB323 + // In singleplayer this will re-load your game. + // + // In FiveM / GTA:Online this disconnects you from the session, and starts loading single player, however you still remain connected to the server (only if you're the host, if you're not then you also (most likely) get disconnected from the server) and other players will not be able to join until you exit the game. + // + // You might need to DoScreenFadeIn and ShutdownLoadingScreen otherwise you probably won't end up loading into SP at all. + // + // Somewhat related note: opening the pause menu after loading into this 'singleplayer' mode crashes the game. + inline BOOL ShutdownAndLoadMostRecentSave() { return _i(0x9ECA15ADFE141431); } // 0x9eca15adfe141431B505 + inline Void NetworkSetFriendlyFireOption(BOOL toggle) { return _i(0xF808475FA571D823, toggle); } // 0xf808475fa571d8230x6baf95faB323 + // This native does absolutely nothing, just a nullsub + inline Void NetworkSetRichPresence(int p0, int p1, Any p2, Any p3) { return _i(0x1DCCACDCFC569362, p0, p1, p2, p3); } // 0x1dccacdcfc5693620x932a6cedB323 + // This native does absolutely nothing, just a nullsub + inline Void NetworkSetRichPresenceString(int p0, String textLabel) { return _i(0x3E200C2BCF4164EB, p0, textLabel); } // 0x3e200c2bcf4164eb0x017e6777B323 + inline int NetworkGetTimeoutTime() { return _i(0x5ED0356A0CE3A34F); } // 0x5ed0356a0ce3a34f0xe1f86c6aB323 + // p4 and p5 are always 0 in scripts + inline Void NetworkLeavePedBehindBeforeWarp(Player player, float x, float y, float z, BOOL p4, BOOL p5) { return _i(0x9769F811D1785B03, player, x, y, z, p4, p5); } // 0x9769f811d1785b030xbe6a30c3B323 + inline Void NetworkLeavePedBehindBeforeCutscene(Player player, BOOL p1) { return _i(0xBF22E0F32968E967, player, p1); } // 0xbf22e0f32968e9670x22e03ad0B323 + // entity must be a valid entity; ped can be NULL + inline Void RemoveAllStickyBombsFromEntity(Entity entity, Ped ped) { return _i(0x715135F4B82AC90D, entity, ped); } // 0x715135f4b82ac90d0xceae5afcB323 + inline Void NetworkKeepEntityCollisionDisabledAfterAnimScene(Any p0, Any p1) { return _i(0x17C9E241111A674D, p0, p1); } // 0x17c9e241111a674dB2060 + inline BOOL NetworkIsAnyPlayerNear(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6) { return _i(0x2E4C123D1C8A710E, p0, p1, p2, p3, p4, p5, p6); } // 0x2e4c123d1c8a710eB505 + inline BOOL NetworkClanServiceIsValid() { return _i(0x579CCED0265D4896); } // 0x579cced0265d48960xf5f4bd95B323 + inline BOOL NetworkClanPlayerIsActive(Any* gamerHandle) { return _i(0xB124B57F571D8F18, gamerHandle); } // 0xb124b57f571d8f180xab8319a3B323 + // bufferSize is 35 in the scripts. + // + // bufferSize is the elementCount of p0(desc), sizeof(p0) == 280 == p1*8 == 35 * 8, p2(netHandle) is obtained from NETWORK::NetworkHandleFromPlayer. And no, I can't explain why 35 * sizeof(int) == 280 and not 140, but I'll get back to you on that. + // + // the answer is: because p0 an int64_t* / int64_t[35]. and FYI p2 is an int64_t[13] + // + // https://pastebin.com/cSZniHak + inline BOOL NetworkClanPlayerGetDesc(Any* clanDesc, int bufferSize, Any* gamerHandle) { return _i(0xEEE6EACBE8874FBA, clanDesc, bufferSize, gamerHandle); } // 0xeee6eacbe8874fba0x6ee4a282B323 + // bufferSize is 35 in the scripts. + inline BOOL NetworkClanIsRockstarClan(Any* clanDesc, int bufferSize) { return _i(0x7543BB439F63792B, clanDesc, bufferSize); } // 0x7543bb439f63792b0x54e79e9cB323 + // bufferSize is 35 in the scripts. + inline Void NetworkClanGetUiFormattedTag(Any* clanDesc, int bufferSize, char* formattedTag) { return _i(0xF45352426FF3A4F0, clanDesc, bufferSize, formattedTag); } // 0xf45352426ff3a4f00xf633805aB323 + inline int NetworkClanGetLocalMembershipsCount() { return _i(0x1F471B79ACC90BEF); } // 0x1f471b79acc90bef0x807b3450B323 + inline BOOL NetworkClanGetMembershipDesc(Any* memberDesc, int p1) { return _i(0x48DE78AF2C8885B8, memberDesc, p1); } // 0x48de78af2c8885b80x3369dd1fB323 + inline BOOL NetworkClanDownloadMembership(Any* gamerHandle) { return _i(0xA989044E70010ABE, gamerHandle); } // 0xa989044e70010abe0x8e8cb520B323 + inline BOOL NetworkClanDownloadMembershipPending(Any* p0) { return _i(0x5B9E023DC6EBEDC0, p0); } // 0x5b9e023dc6ebedc00x1fdb590fB323 + inline BOOL NetworkClanAnyDownloadMembershipPending() { return _i(0xB3F64A6A91432477); } // 0xb3f64a6a914324770x83ed8e08B323 + inline BOOL NetworkClanRemoteMembershipsAreInCache(int* p0) { return _i(0xBB6E6FEE99D866B2, p0); } // 0xbb6e6fee99d866b20x40202867B323 + inline int NetworkClanGetMembershipCount(int* p0) { return _i(0xAAB11F6C4ADBC2C1, p0); } // 0xaab11f6c4adbc2c10x25924010B323 + inline BOOL NetworkClanGetMembershipValid(int* p0, Any p1) { return _i(0x48A59CF88D43DF0E, p0, p1); } // 0x48a59cf88d43df0e0x48914f6aB323 + inline BOOL NetworkClanGetMembership(int* p0, Any* clanMembership, int p2) { return _i(0xC8BC2011F67B3411, p0, clanMembership, p2); } // 0xc8bc2011f67b34110xcdc4a590B323 + inline BOOL NetworkClanJoin(int clanDesc) { return _i(0x9FAAA4F4FC71F87F, clanDesc); } // 0x9faaa4f4fc71f87f0x79c916c5B323 + // Only documented... + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline BOOL NetworkClanCrewinfoGetStringValue(String animDict, String animName) { return _i(0x729E3401F0430686, animDict, animName); } // 0x729e3401f04306860xbda90bacB323 + inline BOOL NetworkClanCrewinfoGetCrewranktitle(int p0, String p1) { return _i(0x2B51EDBEFC301339, p0, p1); } // 0x2b51edbefc3013390x8e952b12B323 + inline BOOL NetworkClanHasCrewinfoMetadataBeenReceived() { return _i(0xC32EA7A2F6CA7557); } // 0xc32ea7a2f6ca75570x966c90fdB323 + inline BOOL NetworkClanGetEmblemTxdName(Any* netHandle, char* txdName) { return _i(0x5835D9CD92E83184, netHandle, txdName); } // 0x5835d9cd92e831840xba672146B323 + inline BOOL NetworkClanRequestEmblem(Any p0) { return _i(0x13518FF1C6B28938, p0); } // 0x13518ff1c6b289380x7963fa4dB323 + inline BOOL NetworkClanIsEmblemReady(Any p0, Any* p1) { return _i(0xA134777FF7F33331, p0, p1); } // 0xa134777ff7f333310x88b13cdcB323 + inline Void NetworkClanReleaseEmblem(Any p0) { return _i(0x113E6E3E50E286B0, p0); } // 0x113e6e3e50e286b00xd6e3d5eaB323 + inline BOOL NetworkGetPrimaryClanDataClear() { return _i(0x9AA46BADAD0E27ED); } // 0x9aa46badad0e27ed0xe22445daB323 + inline Void NetworkGetPrimaryClanDataCancel() { return _i(0x042E4B70B93E6054); } // 0x042e4b70b93e60540x455ddf5cB323 + inline BOOL NetworkGetPrimaryClanDataStart(Any* p0, Any p1) { return _i(0xCE86D8191B762107, p0, p1); } // 0xce86d8191b7621070x89db0ec7B323 + inline BOOL NetworkGetPrimaryClanDataPending() { return _i(0xB5074DB804E28CE7); } // 0xb5074db804e28ce70xa4ef02f3B323 + inline BOOL NetworkGetPrimaryClanDataSuccess() { return _i(0x5B4F04F19376A0BA); } // 0x5b4f04f19376a0ba0x068a054eB323 + inline BOOL NetworkGetPrimaryClanDataNew(Any* p0, Any* p1) { return _i(0xC080FF658B2E41DA, p0, p1); } // 0xc080ff658b2e41da0x9b8631ebB323 + // Whether or not another player is allowed to take control of the entity + inline Void SetNetworkIdCanMigrate(int netId, BOOL toggle) { return _i(0x299EEB23175895FC, netId, toggle); } // 0x299eeb23175895fc0x47c8e5ffB323 + inline Void SetNetworkIdExistsOnAllMachines(int netId, BOOL toggle) { return _i(0xE05E81A888FA63C8, netId, toggle); } // 0xe05e81a888fa63c80x68d486b2B323 + inline Void SetNetworkIdAlwaysExistsForPlayer(int netId, Player player, BOOL toggle) { return _i(0xA8A024587329F36A, netId, player, toggle); } // 0xa8a024587329f36a0x4d15fdb1B323 + // "No Reassign" in CPhysicalScriptGameStateDataNode + inline Void SetNetworkIdCanBeReassigned(int netId, BOOL toggle) { return _i(0x9D724B400A7E8FFC, netId, toggle); } // 0x9d724b400a7e8ffcB2189 + inline Void NetworkSetEntityCanBlend(Entity entity, BOOL toggle) { return _i(0xD830567D88A1E873, entity, toggle); } // 0xd830567d88a1e8730xde8c0db8B323 + inline Void NetworkSetObjectCanBlendWhenFixed(Object object, BOOL toggle) { return _i(0x0379DAF89BA09AA5, object, toggle); } // 0x0379daf89ba09aa5B944 + // if set to true other network players can't see it + // if set to false other network player can see it + // ========================================= + // ^^ I attempted this by grabbing an object with GetEntityPlayerIsFreeAimingAt and setting this naive no matter the toggle he could still see it. + // + // pc or last gen? + // + // ^^ last-gen + inline Void NetworkSetEntityOnlyExistsForParticipants(Entity entity, BOOL toggle) { return _i(0xF1CA12B18AEF5298, entity, toggle); } // 0xf1ca12b18aef52980x09cbc4b0B323 + inline Void SetNetworkIdVisibleInCutscene(int netId, BOOL p1, BOOL p2) { return _i(0xA6928482543022B4, netId, p1, p2); } // 0xa6928482543022b40x199e75efB323 + inline Void SetNetworkIdVisibleInCutsceneHack(int netId, BOOL p1, BOOL p2) { return _i(0x32EBD154CB6B8B99, netId, p1, p2); } // 0x32ebd154cb6b8b99B505 + inline Void SetNetworkIdVisibleInCutsceneRemainHack(Any p0, Any p1, Any p2) { return _i(0x76B3F29D3F967692, p0, p1, p2); } // 0x76b3f29d3f967692B2189 + inline Void SetNetworkCutsceneEntities(BOOL toggle) { return _i(0xAAA553E7DD28A457, toggle); } // 0xaaa553e7dd28a4570xfd0f7eddB323 + // Getter for SetNetworkCutsceneEntities. + inline BOOL AreCutsceneEntitiesNetworked() { return _i(0x66D6A5E9C511214A); } // 0x66d6a5e9c511214aB2699 + inline Void SetNetworkIdPassControlInTutorial(int netId, BOOL state) { return _i(0x3FA36981311FA4FF, netId, state); } // 0x3fa36981311fa4ff0x00ae4e17B323 + inline BOOL IsNetworkIdOwnedByParticipant(int netId) { return _i(0xA1607996431332DF, netId); } // 0xa1607996431332df0xea5176c0B323 + inline Void SetRemotePlayerVisibleInCutscene(Player player, BOOL locallyVisible) { return _i(0x96320E6549DAE7B4, player, locallyVisible); } // 0x96320e6549dae7b4B2802 + inline Void SetLocalPlayerVisibleInCutscene(BOOL p0, BOOL p1) { return _i(0xD1065D68947E7B6E, p0, p1); } // 0xd1065d68947e7b6e0x59f3479bB323 + inline Void SetLocalPlayerInvisibleLocally(BOOL bIncludePlayersVehicle) { return _i(0xE5F773C1A1D9D168, bIncludePlayersVehicle); } // 0xe5f773c1a1d9d1680x764f6222B323 + inline Void SetLocalPlayerVisibleLocally(BOOL bIncludePlayersVehicle) { return _i(0x7619364C82D3BF14, bIncludePlayersVehicle); } // 0x7619364c82d3bf140x324b56dbB323 + inline Void SetPlayerInvisibleLocally(Player player, BOOL bIncludePlayersVehicle) { return _i(0x12B37D54667DB0B8, player, bIncludePlayersVehicle); } // 0x12b37d54667db0b80x18227209B323 + inline Void SetPlayerVisibleLocally(Player player, BOOL bIncludePlayersVehicle) { return _i(0xFAA10F1FAFB11AF2, player, bIncludePlayersVehicle); } // 0xfaa10f1fafb11af20xba2bb4b4B323 + // Hardcoded to not work in SP. + inline Void FadeOutLocalPlayer(BOOL p0) { return _i(0x416DBD4CD6ED8DD2, p0); } // 0x416dbd4cd6ed8dd20x8fa7cebdB323 + // normal - transition like when your coming out of LSC + // slow - transition like when you walk into a mission + // + inline Void NetworkFadeOutEntity(Entity entity, BOOL normal, BOOL slow) { return _i(0xDE564951F95E09ED, entity, normal, slow); } // 0xde564951f95e09ed0x47edee56B323 + // state - 0 does 5 fades + // state - 1 does 6 fades + // + // p3: setting to 1 made vehicle fade in slower, probably "slow" as per NetworkFadeOutEntity + inline Void NetworkFadeInEntity(Entity entity, BOOL state, Any p2) { return _i(0x1F4ED342ACEFE62D, entity, state, p2); } // 0x1f4ed342acefe62d0x9b9fcd02B323 + inline BOOL NetworkIsPlayerFading(Player player) { return _i(0x631DC5DFF4B110E3, player); } // 0x631dc5dff4b110e30x065c597bB323 + inline BOOL NetworkIsEntityFading(Entity entity) { return _i(0x422F32CC7E56ABAD, entity); } // 0x422f32cc7e56abad0xb5087acfB323 + inline BOOL IsPlayerInCutscene(Player player) { return _i(0xE73092F4157CD126, player); } // 0xe73092f4157cd1260xe0a619bdB323 + inline Void SetEntityVisibleInCutscene(Any p0, BOOL p1, BOOL p2) { return _i(0xE0031D3C8F36AB82, p0, p1, p2); } // 0xe0031d3c8f36ab820xdbfb067bB323 + // Makes the provided entity visible for yourself for the current frame. + inline Void SetEntityLocallyInvisible(Entity entity) { return _i(0xE135A9FF3F5D05D8, entity); } // 0xe135a9ff3f5d05d80x51adcc5fB323 + inline Void SetEntityLocallyVisible(Entity entity) { return _i(0x241E289B5C059EDC, entity); } // 0x241e289b5c059edc0x235a57b3B323 + inline BOOL IsDamageTrackerActiveOnNetworkId(int netID) { return _i(0x6E192E33AD436366, netID); } // 0x6e192e33ad4363660x597063baB323 + inline Void ActivateDamageTrackerOnNetworkId(int netID, BOOL toggle) { return _i(0xD45B1FFCCD52FF19, netID, toggle); } // 0xd45b1ffccd52ff190x95d07ba5B323 + inline BOOL IsDamageTrackerActiveOnPlayer(Player player) { return _i(0xB2092A1EAA7FD45F, player); } // 0xb2092a1eaa7fd45fB757 + inline Void ActivateDamageTrackerOnPlayer(Player player, BOOL toggle) { return _i(0xBEC0816FF5ACBCDA, player, toggle); } // 0xbec0816ff5acbcdaB757 + inline BOOL IsSphereVisibleToAnotherMachine(float p0, float p1, float p2, float p3) { return _i(0xD82CF8E64C8729D8, p0, p1, p2, p3); } // 0xd82cf8e64c8729d80x23c5274eB323 + inline BOOL IsSphereVisibleToPlayer(Any p0, float p1, float p2, float p3, float p4) { return _i(0xDC3A310219E5DA62, p0, p1, p2, p3, p4); } // 0xdc3a310219e5da620xe9fcfb32B323 + inline Void ReserveNetworkMissionObjects(int amount) { return _i(0x4E5C93BD0C32FBF8, amount); } // 0x4e5c93bd0c32fbf80x391df4f3B323 + inline Void ReserveNetworkMissionPeds(int amount) { return _i(0xB60FEBA45333D36F, amount); } // 0xb60feba45333d36f0x54998c37B323 + inline Void ReserveNetworkMissionVehicles(int amount) { return _i(0x76B02E21ED27A469, amount); } // 0x76b02e21ed27a4690x5062875eB323 + inline Void ReserveLocalNetworkMissionObjects(int amount) { return _i(0x797F9C5E661D920E, amount); } // 0x797f9c5e661d920eB1290 + inline Void ReserveLocalNetworkMissionPeds(int amount) { return _i(0x2C8DF5D129595281, amount); } // 0x2c8df5d129595281B1493 + inline Void ReserveLocalNetworkMissionVehicles(int amount) { return _i(0x42613035157E4208, amount); } // 0x42613035157e4208B1103 + inline BOOL CanRegisterMissionObjects(int amount) { return _i(0x800DD4721A8B008B, amount); } // 0x800dd4721a8b008b0x7f85dfdeB323 + inline BOOL CanRegisterMissionPeds(int amount) { return _i(0xBCBF4FEF9FA5D781, amount); } // 0xbcbf4fef9fa5d7810xccaa5ce9B323 + inline BOOL CanRegisterMissionVehicles(int amount) { return _i(0x7277F1F2E085EE74, amount); } // 0x7277f1f2e085ee740x818b6830B323 + inline BOOL CanRegisterMissionPickups(int amount) { return _i(0x0A49D1CB6E34AF72, amount); } // 0x0a49d1cb6e34af72B757 + inline BOOL CanRegisterMissionDoors(Any p0) { return _i(0xE16AA70CE9BEEDC3, p0); } // 0xe16aa70ce9beedc3B877 + inline BOOL CanRegisterMissionEntities(int ped_amt, int vehicle_amt, int object_amt, int pickup_amt) { return _i(0x69778E7564BADE6D, ped_amt, vehicle_amt, object_amt, pickup_amt); } // 0x69778e7564bade6d0x83794008B323 + // p0 appears to be for MP + inline int GetNumReservedMissionObjects(BOOL p0, Any p1) { return _i(0xAA81B5F10BC43AC2, p0, p1); } // 0xaa81b5f10bc43ac20x16a80cd6B323 + // p0 appears to be for MP + inline int GetNumReservedMissionPeds(BOOL p0, Any p1) { return _i(0x1F13D5AE5CB17E17, p0, p1); } // 0x1f13d5ae5cb17e170x6c25975cB323 + // p0 appears to be for MP + inline int GetNumReservedMissionVehicles(BOOL p0, Any p1) { return _i(0xCF3A965906452031, p0, p1); } // 0xcf3a9659064520310xa9a308f3B323 + inline int GetNumCreatedMissionObjects(BOOL p0) { return _i(0x12B6281B6C6706C0, p0); } // 0x12b6281b6c6706c00x603fa104B323 + inline int GetNumCreatedMissionPeds(BOOL p0) { return _i(0xCB215C4B56A7FAE7, p0); } // 0xcb215c4b56a7fae70xd8fec4f8B323 + inline int GetNumCreatedMissionVehicles(BOOL p0) { return _i(0x0CD9AB83489430EA, p0); } // 0x0cd9ab83489430ea0x20527695B323 + inline Void GetReservedMissionEntitiesInArea(float x, float y, float z, Any p3, Any* out1, Any* out2, Any* out3) { return _i(0xE42D626EEC94E5D9, x, y, z, p3, out1, out2, out3); } // 0xe42d626eec94e5d9B1290 + inline int GetMaxNumNetworkObjects() { return _i(0xC7BE335216B5EC7C); } // 0xc7be335216b5ec7c0x8687e285B323 + inline int GetMaxNumNetworkPeds() { return _i(0x0C1F7D49C39D2289); } // 0x0c1f7d49c39d22890x744ac008B323 + inline int GetMaxNumNetworkVehicles() { return _i(0x0AFCE529F69B21FF); } // 0x0afce529f69b21ff0xc3a12135B323 + inline int GetMaxNumNetworkPickups() { return _i(0xA72835064DD63E4C); } // 0xa72835064dd63e4c0x6a036061B323 + inline Void NetworkSetObjectScopeDistance(Object object, float range) { return _i(0xBA7F0B77D80A4EB7, object, range); } // 0xba7f0b77d80a4eb7B372 + inline Void NetworkAllowCloningWhileInTutorial(Any p0, Any p1) { return _i(0x0F1A4B45B7693B95, p0, p1); } // 0x0f1a4b45b7693b95B2189 + // A value between 1.0 and 5.0 + // + // _NETWORK_SET_TASK_CUTSCENE_PROXIMITY_SCALE? + inline Void NetworkSetTaskCutsceneInscopeMultipler(Any p0) { return _i(0xC6FCEE21C6FCEE21, p0); } // 0xc6fcee21c6fcee21B2545 + inline int GetNetworkTime() { return _i(0x7A5487FE9FAA6B48); } // 0x7a5487fe9faa6b480x998103c2B323 + // Returns the same value as GetNetworkTime in freemode, but as opposed to `GetNetworkTime` it always gets the most recent time, instead of once per tick. + // Could be used for benchmarking since it can return times in ticks. + inline int GetNetworkTimeAccurate() { return _i(0x89023FBBF9200E9F); } // 0x89023fbbf9200e9f0x98aa48e5B323 + inline BOOL HasNetworkTimeStarted() { return _i(0x46718ACEEDEAFC84); } // 0x46718aceedeafc840x4538c4a2B323 + // Adds the first argument to the second. + inline int GetTimeOffset(int timeA, int timeB) { return _i(0x017008CCDAD48503, timeA, timeB); } // 0x017008ccdad485030x2e079ae6B323 + // Subtracts the second argument from the first, then returns whether the result is negative. + inline BOOL IsTimeLessThan(int timeA, int timeB) { return _i(0xCB2CF5148012C8D0, timeA, timeB); } // 0xcb2cf5148012c8d00x50ef8fc6B323 + // Subtracts the first argument from the second, then returns whether the result is negative. + inline BOOL IsTimeMoreThan(int timeA, int timeB) { return _i(0xDE350F8651E4346C, timeA, timeB); } // 0xde350f8651e4346c0xbbb6df61B323 + // Returns true if the two times are equal; otherwise returns false. + inline BOOL IsTimeEqualTo(int timeA, int timeB) { return _i(0xF5BC95857BD6D512, timeA, timeB); } // 0xf5bc95857bd6d5120x8b4d1c06B323 + // Subtracts the second argument from the first. + inline int GetTimeDifference(int timeA, int timeB) { return _i(0xA2C6FC031D46FFF0, timeA, timeB); } // 0xa2c6fc031d46fff00x5666a837B323 + inline String GetTimeAsString(int time) { return _i(0x9E23B1777A927DAD, time); } // 0x9e23b1777a927dad0x8218944eB323 + // Same as GetCloudTimeAsInt but returns the value as a hex string (%I64X). + inline String GetCloudTimeAsString() { return _i(0xF12E6CD06C73D69E); } // 0xf12e6cd06c73d69eB1103 + // Returns POSIX timestamp, an int representing the cloud time. + inline int GetCloudTimeAsInt() { return _i(0x9A73240B49945C76); } // 0x9a73240b49945c760xf2fdf2e0B323 + // Takes the specified time and writes it to the structure specified in the second argument. + // + // struct date_time + // { + // int year; + // int PADDING1; + // int month; + // int PADDING2; + // int day; + // int PADDING3; + // int hour; + // int PADDING4; + // int minute; + // int PADDING5; + // int second; + // int PADDING6; + // }; + inline Void ConvertPosixTime(int posixTime, Any* timeStructure) { return _i(0xAC97AF97FA68E5D5, posixTime, timeStructure); } // 0xac97af97fa68e5d50xbb7cce49B323 + inline Void NetworkSetInSpectatorMode(BOOL toggle, Ped playerPed) { return _i(0x423DE3854BB50894, toggle, playerPed); } // 0x423de3854bb508940x5c4c8458B323 + inline Void NetworkSetInSpectatorModeExtended(BOOL toggle, Ped playerPed, BOOL p2) { return _i(0x419594E137637120, toggle, playerPed, p2); } // 0x419594e1376371200x54058f5fB323 + inline Void NetworkSetInFreeCamMode(BOOL toggle) { return _i(0xFC18DB55AE19E046, toggle); } // 0xfc18db55ae19e0460xa7e36020B323 + inline Void NetworkSetAntagonisticToPlayer(BOOL toggle, Player player) { return _i(0x5C707A667DF8B9FA, toggle, player); } // 0x5c707a667df8b9fa0x64235620B323 + inline BOOL NetworkIsInSpectatorMode() { return _i(0x048746E388762E11); } // 0x048746e388762e110x3ead9db8B323 + inline Void NetworkSetInMpCutscene(BOOL p0, BOOL p1) { return _i(0x9CA5DE655269FEC4, p0, p1); } // 0x9ca5de655269fec40x8434cb43B323 + inline BOOL NetworkIsInMpCutscene() { return _i(0x6CC27C9FA2040220); } // 0x6cc27c9fa20402200x4bb33316B323 + inline BOOL NetworkIsPlayerInMpCutscene(Player player) { return _i(0x63F9EE203C3619F2, player); } // 0x63f9ee203c3619f20x56f961e4B323 + inline Void NetworkHideProjectileInCutscene() { return _i(0xFAC18E7356BD3210); } // 0xfac18e7356bd3210B1180 + inline Void SetNetworkVehicleRespotTimer(int netId, int time, Any p2, Any p3) { return _i(0xEC51713AB6EC36E8, netId, time, p2, p3); } // 0xec51713ab6ec36e80x2c30912dB323 + inline BOOL IsNetworkVehicleRunningRespotTimer(int networkID) { return _i(0xDD7CEF5B3A4DA8A6, networkID); } // 0xdd7cef5b3a4da8a6B2802 + inline Void SetNetworkVehicleAsGhost(Vehicle vehicle, BOOL toggle) { return _i(0x6274C4712850841E, vehicle, toggle); } // 0x6274c4712850841e0xea235081B323 + // rage::netBlenderLinInterp::GetPositionMaxForUpdateLevel + inline Void SetNetworkVehicleMaxPositionDeltaMultiplier(Vehicle vehicle, float multiplier) { return _i(0xA2A707979FE754DC, vehicle, multiplier); } // 0xa2a707979fe754dcB877 + // Enables a periodic ShapeTest within the NetBlender and _is rage::netBlenderLinInterp::GoStraightToTarget (or some functional wrapper). + inline Void SetNetworkEnableHighSpeedEdgeFallDetection(Vehicle vehicle, BOOL toggle) { return _i(0x838DA0936A24ED4D, vehicle, toggle); } // 0x838da0936a24ed4dB944 + inline Void SetLocalPlayerAsGhost(BOOL toggle, BOOL p1) { return _i(0x5FFE9B4144F9712F, toggle, p1); } // 0x5ffe9b4144f9712fB323 + inline BOOL IsEntityAGhost(Entity entity) { return _i(0x21D04D7BC538C146, entity); } // 0x21d04d7bc538c146B323 + inline Void SetNonParticipantsOfThisScriptAsGhosts(BOOL p0) { return _i(0x13F1FCB111B820B0, p0); } // 0x13f1fcb111b820b0B877 + // Enables ghosting between specific players + inline Void SetRemotePlayerAsGhost(Player player, BOOL p1) { return _i(0xA7C511FA1C5BDA38, player, p1); } // 0xa7c511fa1c5bda38B463 + // Must be a value between 1 and 254 + inline Void SetGhostAlpha(int alpha) { return _i(0x658500AE6D723A7E, alpha); } // 0x658500ae6d723a7eB791 + // Resets the entity ghost alpha to the default value (128) + inline Void ResetGhostAlpha() { return _i(0x17330EBF2F2124A8); } // 0x17330ebf2f2124a8B791 + inline Void SetEntityGhostedForGhostPlayers(Entity entity, BOOL toggle) { return _i(0x4BA166079D658ED4, entity, toggle); } // 0x4ba166079d658ed4B944 + inline Void SetInvertGhosting(BOOL p0) { return _i(0xD7B6C73CAD419BCF, p0); } // 0xd7b6c73cad419bcfB944 + inline BOOL IsEntityInGhostCollision(Entity entity) { return _i(0x7EF7649B64D7FF10, entity); } // 0x7ef7649b64d7ff10B944 + inline Void UsePlayerColourInsteadOfTeamColour(BOOL toggle) { return _i(0x77758139EC9B66C7, toggle); } // 0x77758139ec9b66c70x4dd46daeB323 + inline int NetworkCreateSynchronisedScene(float x, float y, float z, float xRot, float yRot, float zRot, int rotationOrder, BOOL useOcclusionPortal, BOOL looped, float p9, float animTime, float p11) { return _i(0x7CD6BC4C2BBDD526, x, y, z, xRot, yRot, zRot, rotationOrder, useOcclusionPortal, looped, p9, animTime, p11); } // 0x7cd6bc4c2bbdd5260xb06fe3feB323 + inline Void NetworkAddPedToSynchronisedScene(Ped ped, int netScene, String animDict, String animnName, float speed, float speedMultiplier, int duration, int flag, float playbackRate, Any p9) { return _i(0x742A637471BCECD9, ped, netScene, animDict, animnName, speed, speedMultiplier, duration, flag, playbackRate, p9); } // 0x742a637471bcecd90xb386713eB323 + inline Void NetworkAddPedToSynchronisedSceneWithIk(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9) { return _i(0xA5EAFE473E45C442, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); } // 0xa5eafe473e45c442B1290 + inline Void NetworkAddEntityToSynchronisedScene(Entity entity, int netScene, String animDict, String animName, float speed, float speedMulitiplier, int flag) { return _i(0xF2404D68CBC855FA, entity, netScene, animDict, animName, speed, speedMulitiplier, flag); } // 0xf2404d68cbc855fa0x10dd636cB323 + // Similar structure as NetworkAddEntityToSynchronisedScene but it includes this time a hash. + // In casino_slots it is used one time in a synced scene involving a ped and the slot machine? + inline Void NetworkAddMapEntityToSynchronisedScene(int netScene, Hash modelHash, float x, float y, float z, float p5, String p6, float p7, float p8, int flags) { return _i(0x45F35C0EDC33B03B, netScene, modelHash, x, y, z, p5, p6, p7, p8, flags); } // 0x45f35c0edc33b03bB1734 + inline Void NetworkAddSynchronisedSceneCamera(int netScene, String animDict, String animName) { return _i(0xCF8BD3B0BD6D42D7, netScene, animDict, animName); } // 0xcf8bd3b0bd6d42d70xbffe8b5cB323 + inline Void NetworkAttachSynchronisedSceneToEntity(int netScene, Entity entity, int bone) { return _i(0x478DCBD2A98B705A, netScene, entity, bone); } // 0x478dcbd2a98b705a0x3fe5b222B323 + inline Void NetworkStartSynchronisedScene(int netScene) { return _i(0x9A1B3FCDB36C8697, netScene); } // 0x9a1b3fcdb36c86970xa9dfdc40B323 + inline Void NetworkStopSynchronisedScene(int netScene) { return _i(0xC254481A4574CB2F, netScene); } // 0xc254481a4574cb2f0x97b1cdf6B323 + inline int NetworkGetLocalSceneFromNetworkId(int netId) { return _i(0x02C40BF885C567B6, netId); } // 0x02c40bf885c567b60x16aed87bB323 + inline Void NetworkForceLocalUseOfSyncedSceneCamera(int netScene) { return _i(0xC9B43A33D09CADA7, netScene); } // 0xc9b43a33d09cada70xc3aa2ec7B323 + inline Void NetworkAllowRemoteSyncedSceneLocalPlayerRequests(Any p0) { return _i(0x144DA052257AE7D8, p0); } // 0x144da052257ae7d8B1103 + // p0 is always 0. p1 is pointing to a global. + inline BOOL NetworkFindLargestBunchOfPlayers(int p0, Any p1) { return _i(0xFB1F9381E80FA13F, p0, p1); } // 0xfb1f9381e80fa13f0x0679ce71B323 + // One of the first things it does is get the players ped. + // Then it calls a function that is used in some tasks and ped based functions. + // p5, p6, p7 is another coordinate (or zero), often related to `GetBlipCoords, in the decompiled scripts. + inline BOOL NetworkStartRespawnSearchForPlayer(Player player, float x, float y, float z, float radius, float p5, float p6, float p7, int flags) { return _i(0x5A6FFA2433E2F14C, player, x, y, z, radius, p5, p6, p7, flags); } // 0x5a6ffa2433e2f14c0xc62e77b3B323 + // p8, p9, p10 is another coordinate, or zero, often related to `GetBlipCoords in the decompiled scripts. + inline BOOL NetworkStartRespawnSearchInAngledAreaForPlayer(Player player, float x1, float y1, float z1, float x2, float y2, float z2, float width, float p8, float p9, float p10, int flags) { return _i(0x4BA92A18502BCA61, player, x1, y1, z1, x2, y2, z2, width, p8, p9, p10, flags); } // 0x4ba92a18502bca610x74d6b13cB323 + inline int NetworkQueryRespawnResults(Any* p0) { return _i(0x3C891A251567DFCE, p0); } // 0x3c891a251567dfce0x90700c7dB323 + inline Void NetworkCancelRespawnSearch() { return _i(0xFB8F2A6F3DF08CBE); } // 0xfb8f2a6f3df08cbe0x44bfb619B323 + // Based on scripts such as in freemode.c how they call their vars vVar and fVar the 2nd and 3rd param it a Vector3 and Float, but the first is based on get_random_int_in_range.. + inline Void NetworkGetRespawnResult(int randomInt, Vector3* coordinates, float* heading) { return _i(0x371EA43692861CF1, randomInt, coordinates, heading); } // 0x371ea43692861cf10xddfe9fbcB323 + inline int NetworkGetRespawnResultFlags(int p0) { return _i(0x6C34F1208B8923FD, p0); } // 0x6c34f1208b8923fd0x03287fd2B323 + inline Void NetworkStartSoloTutorialSession() { return _i(0x17E0198B3882C2CB); } // 0x17e0198b3882c2cb0x408a9436B323 + // teamId must be < 3, instanceId must be < 64 + inline Void NetworkAllowGangToJoinTutorialSession(int teamId, int instanceId) { return _i(0xFB680D403909DC70, teamId, instanceId); } // 0xfb680d403909dc700xffb2ada1B323 + inline Void NetworkEndTutorialSession() { return _i(0xD0AFAFF5A51D72F7); } // 0xd0afaff5a51d72f70xba57e53eB323 + inline BOOL NetworkIsInTutorialSession() { return _i(0xADA24309FE08DACF); } // 0xada24309fe08dacf0x34dd7b28B323 + inline BOOL NetworkWaitingPopClearTutorialSession() { return _i(0xB37E4E6A2388CA7B); } // 0xb37e4e6a2388ca7b0x755a2b3eB323 + inline BOOL NetworkIsTutorialSessionChangePending() { return _i(0x35F0B98A8387274D); } // 0x35f0b98a8387274d0xa003c40bB323 + inline int NetworkGetPlayerTutorialSessionInstance(Player player) { return _i(0x3B39236746714134, player); } // 0x3b392367467141340x5e1020ccB323 + inline BOOL NetworkArePlayersInSameTutorialSession(Player player, int index) { return _i(0x9DE986FC9A87C474, player, index); } // 0x9de986fc9a87c4740xe66a0b40B323 + inline Void NetworkBlockProxyMigrationBetweenTutorialSessions(Any p0) { return _i(0xFEA7A352DDB34D52, p0); } // 0xfea7a352ddb34d52B2545 + inline Void NetworkConcealPlayer(Player player, BOOL toggle, BOOL p2) { return _i(0xBBDF066252829606, player, toggle, p2); } // 0xbbdf0662528296060x72052db3B323 + inline BOOL NetworkIsPlayerConcealed(Player player) { return _i(0x919B3C98ED8292F9, player); } // 0x919b3c98ed8292f90xb0313590B323 + inline Void NetworkConcealEntity(Entity entity, BOOL toggle) { return _i(0x1632BE0AC1E62876, entity, toggle); } // 0x1632be0ac1e62876B877 + // Note: This only works for vehicles, which appears to be a bug (since the setter _does_ work for every entity type and the name is 99% correct). + inline BOOL NetworkIsEntityConcealed(Entity entity) { return _i(0x71302EC70689052A, entity); } // 0x71302ec70689052aB877 + // Works in Singleplayer too. + // Passing wrong data (e.g. hours above 23) will cause the game to crash. + inline Void NetworkOverrideClockTime(int hours, int minutes, int seconds) { return _i(0xE679E3E06E363892, hours, minutes, seconds); } // 0xe679e3e06e3638920xc077bcd6B323 + inline Void NetworkOverrideClockRate(int ms) { return _i(0x42BF1D2E723B6D7E, ms); } // 0x42bf1d2e723b6d7eB2189 + inline Void NetworkClearClockTimeOverride() { return _i(0xD972DF67326F966E); } // 0xd972df67326f966e0xc4aeaf49B323 + inline BOOL NetworkIsClockTimeOverridden() { return _i(0xD7C95D322FF57522); } // 0xd7c95d322ff575220x2465296dB323 + inline int NetworkAddEntityArea(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x494C8FB299290269, x1, y1, z1, x2, y2, z2); } // 0x494c8fb2992902690x51030e5bB323 + // To remove, see: NetworkRemoveEntityArea + // See IsPointInAngledArea for the definition of an angled area. + inline int NetworkAddEntityAngledArea(float x1, float y1, float z1, float x2, float y2, float z2, float width) { return _i(0x376C6375BA60293A, x1, y1, z1, x2, y2, z2, width); } // 0x376c6375ba60293a0xcd69bea1B323 + inline int NetworkAddClientEntityArea(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x25B99872D588A101, x1, y1, z1, x2, y2, z2); } // 0x25b99872d588a1010x4c2c2b12B323 + inline int NetworkAddClientEntityAngledArea(float x1, float y1, float z1, float x2, float y2, float z2, float radius) { return _i(0x2B1C623823DB0D9D, x1, y1, z1, x2, y2, z2, radius); } // 0x2b1c623823db0d9dB1103 + inline BOOL NetworkRemoveEntityArea(int areaHandle) { return _i(0x93CF869BAA0C4874, areaHandle); } // 0x93cf869baa0c48740xeab97f25B323 + inline BOOL NetworkEntityAreaDoesExist(int areaHandle) { return _i(0xE64A3CA08DFA37A9, areaHandle); } // 0xe64a3ca08dfa37a90x69956127B323 + inline BOOL NetworkEntityAreaHaveAllReplied(int areaHandle) { return _i(0x4DF7CFFF471A7FB1, areaHandle); } // 0x4df7cfff471a7fb10xcb1cd6d3B323 + inline BOOL NetworkEntityAreaIsOccupied(int areaHandle) { return _i(0x4A2D4E8BF4265B0F, areaHandle); } // 0x4a2d4e8bf4265b0f0xc6d53aa0B323 + inline Void NetworkUseHighPrecisionBlending(int netID, BOOL toggle) { return _i(0x2B1813ABA29016C5, netID, toggle); } // 0x2b1813aba29016c50x155465eeB323 + inline Void NetworkSetCustomArenaBallParams(int netId) { return _i(0xA6FCECCF4721D679, netId); } // 0xa6fceccf4721d679B1604 + inline Void NetworkEntityUseHighPrecisionRotation(int netId, BOOL toggle) { return _i(0x95BAF97C82464629, netId, toggle); } // 0x95baf97c82464629B1604 + inline BOOL NetworkRequestCloudBackgroundScripts() { return _i(0x924426BFFD82E915); } // 0x924426bffd82e9150x98efb921B323 + inline BOOL NetworkIsCloudBackgroundScriptRequestPending() { return _i(0x8132C0EB8B2B3293); } // 0x8132c0eb8b2b32930x20ab933aB323 + inline Void NetworkRequestCloudTunables() { return _i(0x42FB3B532D526E6C); } // 0x42fb3b532d526e6c0xd760cad5B323 + inline BOOL NetworkIsTunableCloudRequestPending() { return _i(0x0467C11ED88B7D28); } // 0x0467c11ed88b7d280x47978d7fB323 + // Actually returns the version (TUNABLE_VERSION) + inline int NetworkGetTunableCloudCrc() { return _i(0x10BD227A753B0D84); } // 0x10bd227a753b0d840x231cfd12B323 + inline BOOL NetworkDoesTunableExist(String tunableContext, String tunableName) { return _i(0x85E5F8B9B898B20A, tunableContext, tunableName); } // 0x85e5f8b9b898b20a0x9fce9c9aB323 + inline BOOL NetworkAccessTunableInt(String tunableContext, String tunableName, int* value) { return _i(0x8BE1146DFD5D4468, tunableContext, tunableName, value); } // 0x8be1146dfd5d44680xe4b3726aB323 + inline BOOL NetworkAccessTunableFloat(String tunableContext, String tunableName, float* value) { return _i(0xE5608CA7BC163A5F, tunableContext, tunableName, value); } // 0xe5608ca7bc163a5f0x41e8912aB323 + inline BOOL NetworkAccessTunableBool(String tunableContext, String tunableName) { return _i(0xAA6A47A573ABB75A, tunableContext, tunableName); } // 0xaa6a47a573abb75a0x8a04e1feB323 + inline BOOL NetworkDoesTunableExistHash(Hash tunableContext, Hash tunableName) { return _i(0xE4E53E1419D81127, tunableContext, tunableName); } // 0xe4e53e1419d811270x25915cb9B323 + inline BOOL NetworkAccessTunableModificationDetectionClear() { return _i(0xFAFC23AEE23868DB); } // 0xfafc23aee23868dbB393 + inline BOOL NetworkAccessTunableIntHash(Hash tunableContext, Hash tunableName, int* value) { return _i(0x40FCE03E50E8DBE8, tunableContext, tunableName, value); } // 0x40fce03e50e8dbe80xb2e83b75B323 + inline BOOL NetworkAccessTunableIntModificationDetectionRegistrationHash(Hash contextHash, Hash nameHash, int* value) { return _i(0x3A8B55FDA4C8DDEF, contextHash, nameHash, value); } // 0x3a8b55fda4c8ddefB393 + inline BOOL NetworkAccessTunableFloatHash(Hash tunableContext, Hash tunableName, float* value) { return _i(0x972BC203BBC4C4D5, tunableContext, tunableName, value); } // 0x972bc203bbc4c4d50x3972551fB323 + inline BOOL NetworkAccessTunableFloatModificationDetectionRegistrationHash(Hash contextHash, Hash nameHash, float* value) { return _i(0x1950DAE9848A4739, contextHash, nameHash, value); } // 0x1950dae9848a4739B393 + inline BOOL NetworkAccessTunableBoolHash(Hash tunableContext, Hash tunableName) { return _i(0xEA16B69D93D71A45, tunableContext, tunableName); } // 0xea16b69d93d71a450x18867c61B323 + inline BOOL NetworkAccessTunableBoolModificationDetectionRegistrationHash(Hash contextHash, Hash nameHash, BOOL* value) { return _i(0x697F508861875B42, contextHash, nameHash, value); } // 0x697f508861875b42B393 + // Returns defaultValue if the tunable doesn't exist. + inline BOOL NetworkTryAccessTunableBoolHash(Hash tunableContext, Hash tunableName, BOOL defaultValue) { return _i(0xC7420099936CE286, tunableContext, tunableName, defaultValue); } // 0xc7420099936ce2860x8afe3d90B323 + // Return the content modifier id (the tunables context if you want) of a specific content. + // + // It takes the content hash (which is the mission id hash), and return the content modifier id, used as the tunables context. + // + // The mission id can be found on the Social club, for example, 'socialclub.rockstargames.com/games/gtav/jobs/job/A8M6Bz8MLEC5xngvDCzGwA' + // + // 'A8M6Bz8MLEC5xngvDCzGwA' is the mission id, so the game hash this and use it as the parameter for this native. + // + inline int NetworkGetContentModifierListId(Hash contentHash) { return _i(0x187382F8A3E0A6C3, contentHash); } // 0x187382f8a3e0a6c30xa78571caB323 + inline int NetworkGetBoneIdOfFatalHit() { return _i(0x7DB53B37A2F211A0); } // 0x7db53b37a2f211a00x053bb329B323 + inline Void NetworkResetBodyTracker() { return _i(0x72433699B4E6DD64); } // 0x72433699b4e6dd640x3914463fB323 + inline int NetworkGetNumberBodyTrackerHits() { return _i(0xD38C4A6D047C019D); } // 0xd38c4a6d047c019d0x17cbc608B323 + inline BOOL NetworkHasBoneBeenHitByKiller(int boneIndex) { return _i(0x2E0BF682CC778D49, boneIndex); } // 0x2e0bf682cc778d490xbfaa349bB323 + inline BOOL NetworkSetAttributeDamageToPlayer(Ped ped, Player player) { return _i(0x0EDE326D47CD0F3E, ped, player); } // 0x0ede326d47cd0f3e0xbeb7281aB323 + // Allows vehicle wheels to be destructible even when the vehicle entity is invincible. + inline Void NetworkTriggerDamageEventForZeroDamage(Entity entity, BOOL toggle) { return _i(0x890E2C5ABED7236D, entity, toggle); } // 0x890e2c5abed7236dB1365 + inline Void NetworkTriggerDamageEventForZeroWeaponHash(Entity entity, BOOL toggle) { return _i(0x38B7C51AB1EDC7D8, entity, toggle); } // 0x38b7c51ab1edc7d8B1734 + inline Void NetworkSetNoLongerNeeded(Entity entity, BOOL toggle) { return _i(0x3FC795691834481D, entity, toggle); } // 0x3fc795691834481dB1868 + // In the console script dumps, this is only referenced once. + // NETWORK::NetworkExplodeVehicle(vehicle, 1, 0, 0); + // + // ^^^^^ That must be PC script dumps? In X360 Script Dumps it is reference a few times with 2 differences in the parameters. + // Which as you see below is 1, 0, 0 + 1, 1, 0 + 1, 0, and a *param? + // + // am_plane_takedown.c + // network_explode_vehicle(net_to_veh(Local_40.imm_2), 1, 1, 0); + // + // armenian2.c + // network_explode_vehicle(Local_80[6 <2>], 1, 0, 0); + // + // fm_horde_controler.c + // network_explode_vehicle(net_to_veh(*uParam0), 1, 0, *uParam0); + // + // fm_mission_controller.c, has 6 hits so not going to list them. + // + // Side note, setting the first parameter to 0 seems to mute sound or so? + // + // Seems it's like AddExplosion, etc. the first 2 params. The 3rd atm no need to worry since it always seems to be 0. + // + inline BOOL NetworkExplodeVehicle(Vehicle vehicle, BOOL isAudible, BOOL isInvisible, int netId) { return _i(0x301A42153C9AD707, vehicle, isAudible, isInvisible, netId); } // 0x301a42153c9ad7070x0e1b38aeB323 + inline Void NetworkExplodeHeli(Vehicle vehicle, BOOL isAudible, BOOL isInvisible, int netId) { return _i(0x2A5E0621DD815A9A, vehicle, isAudible, isInvisible, netId); } // 0x2a5e0621dd815a9a0x955b31bfB463 + inline Void NetworkUseLogarithmicBlendingThisFrame(Entity entity) { return _i(0xCD71A4ECAB22709E, entity); } // 0xcd71a4ecab22709e0xbc54371bB323 + inline Void NetworkOverrideCoordsAndHeading(Entity entity, float x, float y, float z, float heading) { return _i(0xA7E30DE9272B6D49, entity, x, y, z, heading); } // 0xa7e30de9272b6d490x644141c5B323 + inline Void NetworkEnableExtraVehicleOrientationBlendChecks(int netId, BOOL toggle) { return _i(0xE6717E652B8C8D8A, netId, toggle); } // 0xe6717e652b8c8d8aB617 + inline Void NetworkDisableProximityMigration(int netID) { return _i(0x407091CF6037118E, netID); } // 0x407091cf6037118e0x9f82917fB323 + // value must be < 255 + inline Void NetworkSetPropertyId(int id) { return _i(0x1775961C2FBBCB5C, id); } // 0x1775961c2fbbcb5c0x5a74e873B323 + inline Void NetworkClearPropertyId() { return _i(0xC2B82527CA77053E); } // 0xc2b82527ca77053e0x38bc35c8B323 + // p0 in the decompiled scripts is always the stat mesh_texblend * 0.07 to int + inline Void NetworkSetPlayerMentalState(int p0) { return _i(0x367EF5E2F439B4C6, p0); } // 0x367ef5e2f439b4c60x53c9563cB323 + inline Void NetworkSetMinimumRankForMission(BOOL p0) { return _i(0x94538037EE44F5CF, p0); } // 0x94538037ee44f5cf0x6b97075bB323 + inline Void NetworkCacheLocalPlayerHeadBlendData() { return _i(0xBD0BE0BFC927EAC1); } // 0xbd0be0bfc927eac10x94ab35a9B323 + inline BOOL NetworkHasCachedPlayerHeadBlendData(Player player) { return _i(0x237D5336A9A54108, player); } // 0x237d5336a9a541080x7b2a0337B323 + inline BOOL NetworkApplyCachedPlayerHeadBlendData(Ped ped, Player player) { return _i(0x99B72C7ABDE5C910, ped, player); } // 0x99b72c7abde5c9100x99f58a07B323 + inline int GetNumCommerceItems() { return _i(0xF2EAC213D5EA0623); } // 0xf2eac213d5ea06230x965ea007B323 + inline BOOL IsCommerceDataValid() { return _i(0xEA14EEF5B7CD2C30); } // 0xea14eef5b7cd2c300xeefc8a55B323 + // Does nothing (it's a nullsub). + inline Void TriggerCommerceDataFetch(Any p0) { return _i(0xB606E6CC59664972, p0); } // 0xb606e6cc596649720x866d1b67B323 + inline BOOL IsCommerceDataFetchInProgress() { return _i(0x1D4DC17C38FEAFF0); } // 0x1d4dc17c38feaff00xed4a272fB323 + inline String GetCommerceItemId(int index) { return _i(0x662635855957C411, index); } // 0x662635855957c4110x4acf110cB323 + inline String GetCommerceItemName(int index) { return _i(0xB4271092CA7EDF48, index); } // 0xb4271092ca7edf480x1aa3a0d5B323 + inline String GetCommerceProductPrice(int index) { return _i(0xCA94551B50B4932C, index); } // 0xca94551b50b4932c0x37877757B323 + inline int GetCommerceItemNumCats(int index) { return _i(0x2A7776C709904AB0, index); } // 0x2a7776c709904ab00x1cf89da5B323 + // index2 is unused + inline String GetCommerceItemCat(int index, int index2) { return _i(0x6F44CBF56D79FAC0, index, index2); } // 0x6f44cbf56d79fac00x16e53875B323 + inline Void OpenCommerceStore(String p0, String p1, int p2) { return _i(0x58C21165F6545892, p0, p1, p2); } // 0x58c21165f65458920x365c50eeB323 + inline BOOL IsCommerceStoreOpen() { return _i(0x2EAC52B4019E2782); } // 0x2eac52b4019e27820x25e2dba9B323 + // Access to the store for shark cards etc... + inline Void SetStoreEnabled(BOOL toggle) { return _i(0x9641A9FF718E9C5E, toggle); } // 0x9641a9ff718e9c5e0xc1f6443bB323 + inline BOOL RequestCommerceItemImage(int index) { return _i(0xA2F952104FC6DD4B, index); } // 0xa2f952104fc6dd4b0x1fdc75dcB323 + inline Void ReleaseAllCommerceItemImages() { return _i(0x72D0706CD6CCDB58); } // 0x72d0706cd6ccdb580xca7a0a49B323 + inline String GetCommerceItemTexturename(int index) { return _i(0x722F5D28B61C5EA8, index); } // 0x722f5d28b61c5ea80x44a58b0aB323 + inline BOOL IsStoreAvailableToUser() { return _i(0x883D79C4071E18B3); } // 0x883d79c4071e18b30xd32fa11fB323 + inline Void DelayMpStoreOpen() { return _i(0x265635150FB0D82E); } // 0x265635150fb0d82e0xa7fa70aeB323 + inline Void ResetStoreNetworkGameTracking() { return _i(0x444C4525ECE0A4B9); } // 0x444c4525ece0a4b90xcc7dce24B323 + inline BOOL IsUserOldEnoughToAccessStore() { return _i(0x59328EB08C5CEB2B); } // 0x59328eb08c5ceb2b0x70f6d3adB323 + inline Void SetLastViewedShopItem(Hash p0, int p1, Hash p2) { return _i(0xFAE628F1E9ADB239, p0, p1, p2); } // 0xfae628f1e9adb2390xd59a822bB323 + // Checks some commerce stuff + inline int GetUserPremiumAccess() { return _i(0x754615490A029508); } // 0x754615490a029508B1290 + // Checks some commerce stuff + inline int GetUserStarterAccess() { return _i(0x155467ACA0F55705); } // 0x155467aca0f55705B1290 + inline int CloudDeleteMemberFile(String p0) { return _i(0xC64DED7EF0D2FE37, p0); } // 0xc64ded7ef0d2fe370x2b7b57b3B323 + inline BOOL CloudHasRequestCompleted(int requestId) { return _i(0x4C61B39930D045DA, requestId); } // 0x4c61b39930d045da0xbaf52dd8B323 + inline BOOL CloudDidRequestSucceed(int requestId) { return _i(0x3A3D5568AF297CD5, requestId); } // 0x3a3d5568af297cd50x9b9afff1B323 + // Downloads prod.cloud.rockstargames.com/titles/gta5/[platform]/check.json + inline Void CloudCheckAvailability() { return _i(0x4F18196C8D38768D); } // 0x4f18196c8d38768d0xc38e9db0B323 + inline BOOL CloudIsCheckingAvailability() { return _i(0xC7ABAC5DE675EE3B); } // 0xc7abac5de675ee3b0x32a4eb22B323 + inline BOOL CloudGetAvailabilityCheckResult() { return _i(0x0B0CC10720653F3B); } // 0x0b0cc10720653f3b0x9262744cB323 + // This function is hard-coded to always return 0. + inline int GetContentToLoadType() { return _i(0x8B0C2964BA471961); } // 0x8b0c2964ba471961B323 + // This function is hard-coded to always return 0. + inline BOOL GetIsLaunchFromLiveArea() { return _i(0x88B588B41FF7868E); } // 0x88b588b41ff7868eB323 + // This function is hard-coded to always return 0. + inline BOOL GetIsLiveAreaLaunchWithContent() { return _i(0x67FC09BC554A75E5); } // 0x67fc09bc554a75e5B323 + // This native does absolutely nothing, just a nullsub + inline Void ClearServiceEventArguments() { return _i(0x966DD84FB6A46017); } // 0x966dd84fb6a46017B323 + inline BOOL UgcCopyContent(Any* p0, Any* p1) { return _i(0x152D90E4C1B4738A, p0, p1); } // 0x152d90e4c1b4738a0x08243b79B323 + inline BOOL UgcIsCreating() { return _i(0x9FEDF86898F100E9); } // 0x9fedf86898f100e90x798d6c27B323 + inline BOOL UgcHasCreateFinished() { return _i(0x5E24341A7F92A74B); } // 0x5e24341a7f92a74b0xe69e8d0dB323 + inline BOOL UgcDidCreateSucceed() { return _i(0x24E4E51FC16305F9); } // 0x24e4e51fc16305f90x742075feB323 + inline int UgcGetCreateResult() { return _i(0xFBC5E768C7A77A6A); } // 0xfbc5e768c7a77a6a0xce569932B323 + inline String UgcGetCreateContentId() { return _i(0xC55A0B40FFB1ED23); } // 0xc55a0b40ffb1ed230x82146be9B323 + inline Void UgcClearCreateResult() { return _i(0x17440AA15D1D3739); } // 0x17440aa15d1d37390x133ff2d5B323 + inline BOOL UgcQueryMyContent(Any p0, Any p1, Any* p2, Any p3, Any p4, Any p5) { return _i(0x9BF438815F5D96EA, p0, p1, p2, p3, p4, p5); } // 0x9bf438815f5d96ea0xcba7242fB323 + inline BOOL UgcQueryByCategory(Any p0, Any p1, Any p2, String p3, Any p4, BOOL p5) { return _i(0x692D58DF40657E8C, p0, p1, p2, p3, p4, p5); } // 0x692d58df40657e8cB323 + inline BOOL UgcQueryByContentId(String contentId, BOOL latestVersion, String contentTypeName) { return _i(0x158EC424F35EC469, contentId, latestVersion, contentTypeName); } // 0x158ec424f35ec4690xded82a6eB323 + inline BOOL UgcQueryByContentIds(Any* data, int count, BOOL latestVersion, String contentTypeName) { return _i(0xC7397A83F7A2A462, data, count, latestVersion, contentTypeName); } // 0xc7397a83f7a2a4620x47b3c35eB323 + inline BOOL UgcQueryMostRecentlyCreatedContent(int offset, int count, String contentTypeName, int p3) { return _i(0x6D4CB481FAC835E8, offset, count, contentTypeName, p3); } // 0x6d4cb481fac835e80x40cf0783B323 + inline BOOL UgcGetBookmarkedContent(Any p0, Any p1, String p2, Any* p3) { return _i(0xD5A4B59980401588, p0, p1, p2, p3); } // 0xd5a4b599804015880x4609d596B323 + inline BOOL UgcGetMyContent(Any p0, Any p1, String p2, Any* p3) { return _i(0x3195F8DD0D531052, p0, p1, p2, p3); } // 0x3195f8dd0d5310520x4c2c0d1fB323 + inline BOOL UgcGetFriendContent(Any p0, Any p1, String p2, Any* p3) { return _i(0xF9E1CCAE8BA4C281, p0, p1, p2, p3); } // 0xf9e1ccae8ba4c2810x9efbd5d1B323 + inline BOOL UgcGetCrewContent(Any p0, Any p1, Any p2, String p3, Any* p4) { return _i(0x9F6E2821885CAEE2, p0, p1, p2, p3, p4); } // 0x9f6e2821885caee20xa6d8b798B323 + inline BOOL UgcGetGetByCategory(Any p0, Any p1, Any p2, String p3, Any* p4) { return _i(0x678BB03C1A3BD51E, p0, p1, p2, p3, p4); } // 0x678bb03c1a3bd51e0x67e74842B323 + inline BOOL UgcGetGetByContentId(String contentId, String contentTypeName) { return _i(0x815E5E3073DA1D67, contentId, contentTypeName); } // 0x815e5e3073da1d670xe123c7acB323 + inline BOOL UgcGetGetByContentIds(Any* data, int dataCount, String contentTypeName) { return _i(0xB8322EEB38BE7C26, data, dataCount, contentTypeName); } // 0xb8322eeb38be7c260x22c33603B323 + inline BOOL UgcGetMostRecentlyCreatedContent(Any p0, Any p1, Any* p2, Any* p3) { return _i(0xA7862BC5ED1DFD7E, p0, p1, p2, p3); } // 0xa7862bc5ed1dfd7e0x37f5bd93B323 + inline BOOL UgcGetMostRecentlyPlayedContent(Any p0, Any p1, Any* p2, Any* p3) { return _i(0x97A770BEEF227E2B, p0, p1, p2, p3); } // 0x97a770beef227e2b0x1cfb3f51B323 + inline BOOL UgcGetTopRatedContent(Any p0, Any p1, Any* p2, Any* p3) { return _i(0x5324A0E3E4CE3570, p0, p1, p2, p3); } // 0x5324a0e3e4ce35700x87d1e6bdB323 + inline Void UgcCancelQuery() { return _i(0xE9B99B6853181409); } // 0xe9b99b68531814090x021d5a94B323 + inline BOOL UgcIsGetting() { return _i(0xD53ACDBEF24A46E8); } // 0xd53acdbef24a46e80x4908a514B323 + inline BOOL UgcHasGetFinished() { return _i(0x02ADA21EA2F6918F); } // 0x02ada21ea2f6918f0x50296140B323 + inline BOOL UgcDidGetSucceed() { return _i(0x941E5306BCD7C2C7); } // 0x941e5306bcd7c2c70x3970b0daB323 + inline BOOL UgcWasQueryForceCancelled() { return _i(0xC87E740D9F3872CC); } // 0xc87e740d9f3872cc0xc1487110B323 + inline int UgcGetQueryResult() { return _i(0xEDF7F927136C224B); } // 0xedf7f927136c224b0xcc2356e3B323 + inline int UgcGetContentNum() { return _i(0xE0A6138401BCB837); } // 0xe0a6138401bcb8370x2de69817B323 + inline int UgcGetContentTotal() { return _i(0x769951E2455E2EB5); } // 0x769951e2455e2eb50x81bd8d3bB323 + inline Hash UgcGetContentHash() { return _i(0x3A17A27D75C74887); } // 0x3a17a27d75c748870x8e1d8f78B323 + inline Void UgcClearQueryResults() { return _i(0xBA96394A0EECFA65); } // 0xba96394a0eecfa650x0d35dd93B323 + inline String UgcGetContentUserId(int p0) { return _i(0xCD67AD041A394C9C, p0); } // 0xcd67ad041a394c9c0x8f3137e6B323 + inline BOOL UgcGetContentCreatorGamerHandle(int p0, Any* p1) { return _i(0x584770794D758C18, p0, p1); } // 0x584770794d758c18B323 + inline BOOL UgcGetContentCreatedByLocalPlayer(Any p0) { return _i(0x8C8D2739BA44AF0F, p0); } // 0x8c8d2739ba44af0fB323 + inline String UgcGetContentUserName(Any p0) { return _i(0x703F12425ECA8BF5, p0); } // 0x703f12425eca8bf50xb9137ba7B323 + inline BOOL UgcGetContentIsUsingScNickname(Any p0) { return _i(0xAEAB987727C5A8A4, p0); } // 0xaeab987727c5a8a40x9feeaa9cB323 + inline int UgcGetContentCategory(int p0) { return _i(0xA7BAB11E7C9C6C5A, p0); } // 0xa7bab11e7c9c6c5a0x5e8a7559B323 + // Return the mission id of a job. + inline String UgcGetContentId(int p0) { return _i(0x55AA95F481D694D2, p0); } // 0x55aa95f481d694d20x331aeabfB323 + // Return the root content id of a job. + inline String UgcGetRootContentId(int p0) { return _i(0xC0173D6BFF4E0348, p0); } // 0xc0173d6bff4e03480x0e5e8e5cB323 + inline String UgcGetContentName(Any p0) { return _i(0xBF09786A7FCAB582, p0); } // 0xbf09786a7fcab5820xa5a0c695B323 + inline int UgcGetContentDescriptionHash(Any p0) { return _i(0x7CF0448787B23758, p0); } // 0x7cf0448787b237580x91534c6eB323 + inline String UgcGetContentPath(int p0, int p1) { return _i(0xBAF6BABF9E7CCC13, p0, p1); } // 0xbaf6babf9e7ccc130x744a9ea5B323 + inline Void UgcGetContentUpdatedDate(Any p0, Any* p1) { return _i(0xCFD115B373C0DF63, p0, p1); } // 0xcfd115b373c0df630xa19a238dB323 + inline int UgcGetContentFileVersion(Any p0, Any p1) { return _i(0x37025B27D9B658B1, p0, p1); } // 0x37025b27d9b658b10xff7d44e6B323 + inline BOOL UgcGetContentHasLoResPhoto(int p0) { return _i(0x1D610EB0FEA716D9, p0); } // 0x1d610eb0fea716d9B323 + inline BOOL UgcGetContentHasHiResPhoto(int p0) { return _i(0x7FCC39C46C3C03BD, p0); } // 0x7fcc39c46c3c03bdB323 + inline int UgcGetContentLanguage(Any p0) { return _i(0x32DD916F3F7C9672, p0); } // 0x32dd916f3f7c96720xa2c5bd9dB323 + inline BOOL UgcGetContentIsPublished(Any p0) { return _i(0x3054F114121C21EA, p0); } // 0x3054f114121c21ea0xa850dde1B323 + inline BOOL UgcGetContentIsVerified(Any p0) { return _i(0xA9240A96C74CCA13, p0); } // 0xa9240a96c74cca130x8f6754aeB323 + inline float UgcGetContentRating(Any p0, Any p1) { return _i(0x1ACCFBA3D8DAB2EE, p0, p1); } // 0x1accfba3d8dab2ee0x1e34953fB323 + inline int UgcGetContentRatingCount(Any p0, Any p1) { return _i(0x759299C5BB31D2A9, p0, p1); } // 0x759299c5bb31d2a90x771fe190B323 + inline int UgcGetContentRatingPositiveCount(Any p0, Any p1) { return _i(0x87E5C46C187FE0AE, p0, p1); } // 0x87e5c46c187fe0ae0x3276d9d3B323 + inline int UgcGetContentRatingNegativeCount(Any p0, Any p1) { return _i(0x4E548C0D7AE39FF9, p0, p1); } // 0x4e548c0d7ae39ff90x41a0fb02B323 + inline BOOL UgcGetContentHasPlayerRecord(Any p0) { return _i(0x70EA8DA57840F9BE, p0); } // 0x70ea8da57840f9be0x11dc0f27B323 + inline BOOL UgcGetContentHasPlayerBookmarked(Any p0) { return _i(0x993CBE59D350D225, p0); } // 0x993cbe59d350d2250x0deb3f5aB323 + inline int UgcRequestContentDataFromIndex(int p0, int p1) { return _i(0x171DF6A0C07FB3DC, p0, p1); } // 0x171df6a0c07fb3dc0x84315226B323 + inline int UgcRequestContentDataFromParams(String contentTypeName, String contentId, int p2, int p3, int p4) { return _i(0x7FD2990AF016795E, contentTypeName, contentId, p2, p3, p4); } // 0x7fd2990af016795e0x38fc2eebB323 + inline int UgcRequestCachedDescription(int p0) { return _i(0x5E0165278F6339EE, p0); } // 0x5e0165278f6339ee0x1c4f9fdbB323 + inline BOOL UgcIsDescriptionRequestInProgress(Any p0) { return _i(0x2D5DC831176D0114, p0); } // 0x2d5dc831176d01140xa69ae16cB323 + inline BOOL UgcHasDescriptionRequestFinished(Any p0) { return _i(0xEBFA8D50ADDC54C4, p0); } // 0xebfa8d50addc54c40xf50bc67aB323 + inline BOOL UgcDidDescriptionRequestSucceed(Any p0) { return _i(0x162C23CA83ED0A62, p0); } // 0x162c23ca83ed0a620xb3bbd241B323 + inline String UgcGetCachedDescription(Any p0, Any p1) { return _i(0x40F7E66472DF3E5C, p0, p1); } // 0x40f7e66472df3e5c0x70a2845cB323 + inline BOOL UgcReleaseCachedDescription(Any p0) { return _i(0x5A34CD9C3C5BEC44, p0); } // 0x5a34cd9c3c5bec440x346b506cB323 + inline Void UgcReleaseAllCachedDescriptions() { return _i(0x68103E2247887242); } // 0x68103e22478872420x0095db71B323 + inline BOOL UgcHasPermissionToWrite() { return _i(0xC33E7CBC06EC1A8D); } // 0xc33e7cbc06ec1a8dB3095 + inline BOOL UgcPublish(String contentId, String baseContentId, String contentTypeName) { return _i(0x1DE0F5F50D723CAA, contentId, baseContentId, contentTypeName); } // 0x1de0f5f50d723caa0xad334b40B323 + inline BOOL UgcSetBookmarked(String contentId, BOOL bookmarked, String contentTypeName) { return _i(0x274A1519DFC1094F, contentId, bookmarked, contentTypeName); } // 0x274a1519dfc1094f0x980d45d7B323 + inline BOOL UgcSetDeleted(Any* p0, BOOL p1, String p2) { return _i(0xD05D1A6C74DA3498, p0, p1, p2); } // 0xd05d1a6c74da34980x48ccc328B323 + inline BOOL UgcIsModifying() { return _i(0x45E816772E93A9DB); } // 0x45e816772e93a9db0x8e664efdB323 + inline BOOL UgcHasModifyFinished() { return _i(0x299EF3C576773506); } // 0x299ef3c5767735060x611e0be2B323 + inline BOOL UgcDidModifySucceed() { return _i(0x793FF272D5B365F4); } // 0x793ff272d5b365f40xf0211ac1B323 + inline int UgcGetModifyResult() { return _i(0x5A0A3D1A186A5508); } // 0x5a0a3d1a186a55080x1f0dd8afB323 + inline Void UgcClearModifyResult() { return _i(0xA1E5E0204A6FCC70); } // 0xa1e5e0204a6fcc700x405eca16B323 + inline BOOL UgcGetCreatorsByUserId(Any* p0, Any* p1) { return _i(0xB746D20B17F2A229, p0, p1); } // 0xb746d20b17f2a2290x9567392bB323 + inline BOOL UgcHasQueryCreatorsFinished() { return _i(0x63B406D7884BFA95); } // 0x63b406d7884bfa950xf79fff3cB323 + inline BOOL UgcDidQueryCreatorsSucceed() { return _i(0x4D02279C83BE69FE); } // 0x4d02279c83be69fe0xa7f3f82bB323 + inline int UgcGetCreatorNum() { return _i(0x597F8DBA9B206FC7); } // 0x597f8dba9b206fc70x410c61d1B323 + inline BOOL UgcLoadOfflineQuery(Any p0) { return _i(0x5CAE833B0EE0C500, p0); } // 0x5cae833b0ee0c5000x0d4f845dB323 + inline Void UgcClearOfflineQuery() { return _i(0x61A885D3F7CFEE9A); } // 0x61a885d3f7cfee9a0xe13c1f7fB323 + inline Void UgcSetQueryDataFromOffline(BOOL p0) { return _i(0xF98DDE0A8ED09323, p0); } // 0xf98dde0a8ed093230x213c6d36B323 + inline Void UgcSetUsingOfflineContent(BOOL p0) { return _i(0xFD75DABC0957BF33, p0); } // 0xfd75dabc0957bf330x511e6f50B323 + inline BOOL UgcIsLanguageSupported(Any p0) { return _i(0xF53E48461B71EECB, p0); } // 0xf53e48461b71eecb0xb4668b23B323 + inline BOOL FacebookPostCompletedHeist(String heistName, int cashEarned, int xpEarned) { return _i(0x098AB65B9ED9A9EC, heistName, cashEarned, xpEarned); } // 0x098ab65b9ed9a9ec0x30b51753B323 + inline BOOL FacebookPostCreateCharacter() { return _i(0xDC48473142545431); } // 0xdc484731425454310x02dad93fB323 + inline BOOL FacebookPostCompletedMilestone(int milestoneId) { return _i(0x0AE1F1653B554AB9, milestoneId); } // 0x0ae1f1653b554ab90x2d947814B323 + inline BOOL FacebookHasPostCompleted() { return _i(0x62B9FEC9A11F10EF); } // 0x62b9fec9a11f10ef0x37a28c26B323 + inline BOOL FacebookDidPostSucceed() { return _i(0xA75E2B6733DA5142); } // 0xa75e2b6733da51420x11e8b5cdB323 + inline BOOL FacebookCanPostToFacebook() { return _i(0x43865688AE10F0D7); } // 0x43865688ae10f0d70x429aeab3B323 + inline int TextureDownloadRequest(Any* gamerHandle, String filePath, String name, BOOL p3) { return _i(0x16160DA74A8E74A2, gamerHandle, filePath, name, p3); } // 0x16160da74a8e74a20xad546cc3B323 + inline int TitleTextureDownloadRequest(String filePath, String name, BOOL p2) { return _i(0x0B203B4AFDE53A4F, filePath, name, p2); } // 0x0b203b4afde53a4f0x1856d008B323 + inline int UgcTextureDownloadRequest(String p0, int p1, int p2, int p3, String p4, BOOL p5) { return _i(0x308F96458B7087CC, p0, p1, p2, p3, p4, p5); } // 0x308f96458b7087cc0x68c9af69B323 + inline Void TextureDownloadRelease(int p0) { return _i(0x487EB90B98E9FB19, p0); } // 0x487eb90b98e9fb190xee8d9e70B323 + inline BOOL TextureDownloadHasFailed(int p0) { return _i(0x5776ED562C134687, p0); } // 0x5776ed562c1346870xe4547765B323 + inline String TextureDownloadGetName(int p0) { return _i(0x3448505B6E35262D, p0); } // 0x3448505b6e35262d0xa40ef65aB323 + // 0 = succeeded + // 1 = pending + // 2 = failed + inline int GetStatusOfTextureDownload(int p0) { return _i(0x8BD6C6DEA20E82C6, p0); } // 0x8bd6c6dea20e82c60x03225ba3B323 + // Returns true if profile setting 901 is set to true and sets it to false. + inline BOOL NetworkCheckRosLinkWentdownNotNet() { return _i(0x60EDD13EB3AC1FF3); } // 0x60edd13eb3ac1ff30x4debc227B323 + // Returns true if the NAT type is Strict (3) and a certain number of connections have failed. + inline BOOL NetworkShouldShowStrictNatWarning() { return _i(0x82A2B386716608F1); } // 0x82a2b386716608f1B393 + inline BOOL NetworkIsCableConnected() { return _i(0xEFFB25453D8600F9); } // 0xeffb25453d8600f90x5c065d55B323 + inline BOOL NetworkHaveScsPrivateMsgPriv() { return _i(0x66B59CFFD78467AF); } // 0x66b59cffd78467af0x0ca1167fB323 + inline BOOL NetworkHaveRosSocialClubPriv() { return _i(0x606E4D3E3CCCF3EB); } // 0x606e4d3e3cccf3eb0x424c6e27B323 + inline BOOL NetworkHaveRosBannedPriv() { return _i(0x8020A73847E0CA7D); } // 0x8020a73847e0ca7d0xd3bbe42fB323 + inline BOOL NetworkHaveRosCreateTicketPriv() { return _i(0xA0AD7E2AF5349F61); } // 0xa0ad7e2af5349f610xbdbb5948B323 + inline BOOL NetworkHaveRosMultiplayerPriv() { return _i(0x5F91D5D0B36AA310); } // 0x5f91d5d0b36aa3100x97287d68B323 + inline BOOL NetworkHaveRosLeaderboardWritePriv() { return _i(0x422D396F80A96547); } // 0x422d396f80a965470xc6ea802eB323 + // index is always 18 in scripts + inline BOOL NetworkHasRosPrivilege(int index) { return _i(0xA699957E60D80214, index); } // 0xa699957e60d802140xfd261e30B323 + inline BOOL NetworkHasRosPrivilegeEndDate(int privilege, int* banType, Any* timeData) { return _i(0xC22912B1D85F26B1, privilege, banType, timeData); } // 0xc22912b1d85f26b10x8570dd34B323 + inline BOOL NetworkHasRosPrivilegePlayedLastGen() { return _i(0x593570C289A77688); } // 0x593570c289a77688B323 + inline BOOL NetworkHasRosPrivilegeSpecialEditionContent() { return _i(0x91B87C55093DE351); } // 0x91b87c55093de351B323 + // Checks for privilege 29 + inline BOOL NetworkHasRosPrivilegeMpTextCommunication() { return _i(0xD9719341663C385F); } // 0xd9719341663c385fB3095 + // Checks for privilege 30 + inline BOOL NetworkHasRosPrivilegeMpVoiceCommunication() { return _i(0x8956A309BE90057C); } // 0x8956a309be90057cB3095 + inline int NetworkStartCommunicationPermissionsCheck(Any p0) { return _i(0x36391F397731595D, p0); } // 0x36391f397731595dB323 + // Always returns -1. Seems to be XB1 specific. + inline int NetworkStartUserContentPermissionsCheck(Any* netHandle) { return _i(0xDEB2B99A1AF1A2A6, netHandle); } // 0xdeb2b99a1af1a2a6B323 + inline Void NetworkSkipRadioResetNextClose() { return _i(0x9465E683B12D3F6B); } // 0x9465e683b12d3f6b0x273c6180B323 + inline Void NetworkSkipRadioResetNextOpen() { return _i(0xCA59CCAE5D01E4CE); } // 0xca59ccae5d01e4ceB1734 + // Returns true if dinput8.dll is present in the game directory. + // You will get following error message if that is true: "You are attempting to access GTA Online servers with an altered version of the game." + inline BOOL NetworkSkipRadioWarning() { return _i(0x659CF2EF7F550C4F); } // 0x659cf2ef7f550c4fB1011 + // NETWORK_F[I-O] + inline Void NetworkForceLocalPlayerScarSync() { return _i(0xB7C7F6AD6424304B); } // 0xb7c7f6ad6424304b0x371bba08B323 + inline Void NetworkDisableLeaveRemotePedBehind(BOOL toggle) { return _i(0xC505036A35AFD01B, toggle); } // 0xc505036a35afd01b0xa100cc97B323 + inline Void NetworkAllowRemoteAttachmentModification(Entity entity, BOOL toggle) { return _i(0x267C78C60E806B9A, entity, toggle); } // 0x267c78c60e806b9a0xbb2d33d3B323 + // Does nothing (it's a nullsub). + inline Void NetworkShowChatRestrictionMsc(Player player) { return _i(0x6BFF5F84102DF80A, player); } // 0x6bff5f84102df80aB323 + // This native does absolutely nothing, just a nullsub + inline Void NetworkShowPsnUgcRestriction() { return _i(0x5C497525F803486B); } // 0x5c497525f803486bB323 + // This function is hard-coded to always return 0. + inline BOOL NetworkIsTitleUpdateRequired() { return _i(0x6FB7BB3607D27FA2); } // 0x6fb7bb3607d27fa2B323 + inline Void NetworkQuitMpToDesktop() { return _i(0x45A83257ED02D9BC); } // 0x45a83257ed02d9bcB323 + inline BOOL NetworkIsConnectedViaRelay(Player player) { return _i(0x16D3D49902F697BB, player); } // 0x16d3d49902f697bbB323 + inline float NetworkGetAverageLatency(Player player) { return _i(0xD414BE129BB81B32, player); } // 0xd414be129bb81b32B323 + // Same as NetworkGetAverageLatency + inline float NetworkGetAveragePing(Player player) { return _i(0x0E3A041ED6AC2B45, player); } // 0x0e3a041ed6ac2b45B323 + inline float NetworkGetAveragePacketLoss(Player player) { return _i(0x350C23949E43686C, player); } // 0x350c23949e43686cB323 + inline int NetworkGetNumUnackedReliables(Player player) { return _i(0xFF8FCF9FFC458A1C, player); } // 0xff8fcf9ffc458a1cB323 + inline int NetworkGetUnreliableResendCount(Player player) { return _i(0x3765C3A3E8192E10, player); } // 0x3765c3a3e8192e10B323 + inline int NetworkGetHighestReliableResendCount(Player player) { return _i(0x52C1EADAF7B10302, player); } // 0x52c1eadaf7b10302B323 + inline Void NetworkReportCodeTamper() { return _i(0x5626D9D6810730D5); } // 0x5626d9d6810730d5B350 + inline Vector3 NetworkGetLastEntityPosReceivedOverNetwork(Entity entity) { return _i(0x64D779659BC37B19, entity); } // 0x64d779659bc37b19B393 + // Returns the coordinates of another player. + // Does not work if you enter your own player id as p0 (will return `(0.0, 0.0, 0.0)` in that case). + inline Vector3 NetworkGetLastPlayerPosReceivedOverNetwork(Player player) { return _i(0x125E6D638B8605D4, player); } // 0x125e6d638b8605d4B393 + // Used by NetBlender + inline Vector3 NetworkGetLastVelReceivedOverNetwork(Entity entity) { return _i(0x33DE49EDF4DDE77A, entity); } // 0x33de49edf4dde77aB1103 + inline Vector3 NetworkGetPredictedVelocity(Entity entity, float maxSpeedToPredict) { return _i(0xAA5FAFCD2C5F5E47, entity, maxSpeedToPredict); } // 0xaa5fafcd2c5f5e47B1103 + // Does nothing (it's a nullsub). + inline Void NetworkDumpNetIfConfig() { return _i(0xAEDF1BC1C133D6E3); } // 0xaedf1bc1c133d6e3B323 + // Does nothing (it's a nullsub). + inline Void NetworkGetSignallingInfo(Any* p0) { return _i(0x2555CF7DA5473794, p0); } // 0x2555cf7da5473794B323 + // Does nothing (it's a nullsub). + inline Void NetworkGetNetStatisticsInfo(Any* p0) { return _i(0x6FD992C4A1C1B986, p0); } // 0x6fd992c4a1c1b986B323 + inline int NetworkGetPlayerAccountId(Player player) { return _i(0xDB663CC9FF3407A9, player); } // 0xdb663cc9ff3407a9B1734 + inline Void NetworkUgcNav(Any p0, Any p1) { return _i(0xC1447451DDB512F0, p0, p1); } // 0xc1447451ddb512f0B2372 } namespace OBJECT { - // List of object models that can be created without any additional effort like making sure ytyp is loaded etc: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ObjectList.ini - inline Object CreateObject(Hash modelHash, float x, float y, float z, BOOL isNetwork, BOOL bScriptHostObj, BOOL dynamic) { return _i(0x509D5878EB39E842, modelHash, x, y, z, isNetwork, bScriptHostObj, dynamic); } // 0x509d5878eb39e8420x2f7aa05cB323 - // List of object models that can be created without any additional effort like making sure ytyp is loaded etc: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ObjectList.ini - inline Object CreateObjectNoOffset(Hash modelHash, float x, float y, float z, BOOL isNetwork, BOOL bScriptHostObj, BOOL dynamic) { return _i(0x9A294B2138ABB884, modelHash, x, y, z, isNetwork, bScriptHostObj, dynamic); } // 0x9a294b2138abb8840x58040420B323 - // Deletes the specified object, then sets the handle pointed to by the pointer to NULL. - inline Void DeleteObject(Object* object) { return _i(0x539E0AE3E6634B9F, object); } // 0x539e0ae3e6634b9f0xd6ef9da7B323 - inline BOOL PlaceObjectOnGroundProperly(Object object) { return _i(0x58A850EAEE20FAA3, object); } // 0x58a850eaee20faa30x8f95a20bB323 - inline BOOL PlaceObjectOnGroundOrObjectProperly(Object object) { return _i(0xD76EEEF746057FD6, object); } // 0xd76eeef746057fd6B505 - inline BOOL RotateObject(Object object, float p1, float p2, BOOL p3) { return _i(0xAFE24E4D29249E4A, object, p1, p2, p3); } // 0xafe24e4d29249e4aB1734 - // Returns true if the object has finished moving. - // - // If false, moves the object towards the specified X, Y and Z coordinates with the specified X, Y and Z speed. - // - // See also: https://gtagmodding.com/opcode-database/opcode/034E/ - // Has to be looped until it returns true. - inline BOOL SlideObject(Object object, float toX, float toY, float toZ, float speedX, float speedY, float speedZ, BOOL collision) { return _i(0x2FDFF4107B8C1147, object, toX, toY, toZ, speedX, speedY, speedZ, collision); } // 0x2fdff4107b8c11470x63bfa7a0B323 - inline Void SetObjectTargettable(Object object, BOOL targettable) { return _i(0x8A7391690F5AFD81, object, targettable); } // 0x8a7391690f5afd810x3f88cd86B323 - // Overrides a flag on the object which determines if the object should be aVoided by a vehicle in task CTaskVehicleGoToPointWithAVoidanceAutomobile. - inline Void SetObjectForceVehiclesToAVoid(Object object, BOOL toggle) { return _i(0x77F33F2CCF64B3AA, object, toggle); } // 0x77f33f2ccf64b3aa0x483c5c88B323 - // Has 8 params in the latest patches. - // - // isMission - if true doesn't return mission objects - inline Object GetClosestObjectOfType(float x, float y, float z, float radius, Hash modelHash, BOOL isMission, BOOL p6, BOOL p7) { return _i(0xE143FA2249364369, x, y, z, radius, modelHash, isMission, p6, p7); } // 0xe143fa22493643690x45619b33B323 - inline BOOL HasObjectBeenBroken(Object object, Any p1) { return _i(0x8ABFB70C49CC43E2, object, p1); } // 0x8abfb70c49cc43e20xfe21f891B323 - inline BOOL HasClosestObjectOfTypeBeenBroken(float p0, float p1, float p2, float p3, Hash modelHash, Any p5) { return _i(0x761B0E69AC4D007E, p0, p1, p2, p3, modelHash, p5); } // 0x761b0e69ac4d007e0x6fc0353dB323 - inline BOOL HasClosestObjectOfTypeBeenCompletelyDestroyed(float x, float y, float z, float radius, Hash modelHash, BOOL p5) { return _i(0x46494A2475701343, x, y, z, radius, modelHash, p5); } // 0x46494a24757013430x7db578ddB323 - inline BOOL GetHasObjectBeenCompletelyDestroyed(Any p0) { return _i(0x2542269291C6AC84, p0); } // 0x2542269291c6ac84B1180 - inline Vector3 GetOffsetFromCoordAndHeadingInWorldCoords(float xPos, float yPos, float zPos, float heading, float xOffset, float yOffset, float zOffset) { return _i(0x163E252DE035A133, xPos, yPos, zPos, heading, xOffset, yOffset, zOffset); } // 0x163e252de035a1330x87a42a12B323 - inline BOOL GetCoordsAndRotationOfClosestObjectOfType(float x, float y, float z, float radius, Hash modelHash, Vector3* outPosition, Vector3* outRotation, int rotationOrder) { return _i(0x163F8B586BC95F2A, x, y, z, radius, modelHash, outPosition, outRotation, rotationOrder); } // 0x163f8b586bc95f2a0x65213fc3B323 - // Hardcoded to not work in multiplayer. - // - // - // Used to lock/unlock doors to interior areas of the game. - // - // (Possible) Door Types: - // - // https://pastebin.com/9S2m3qA4 - // - // Heading is either 1, 0 or -1 in the scripts. Means default closed(0) or opened either into(1) or out(-1) of the interior. - // Locked means that the heading is locked. - // p6 is always 0. - // - // 225 door types, model names and coords found in stripclub.c4: - // https://pastebin.com/gywnbzsH - // - // get door info: https://pastebin.com/i14rbekD - inline Void SetStateOfClosestDoorOfType(Hash type, float x, float y, float z, BOOL locked, float heading, BOOL p6) { return _i(0xF82D8F1926A02C3D, type, x, y, z, locked, heading, p6); } // 0xf82d8f1926a02c3d0x38c951a4B323 - // locked is 0 if no door is found - // locked is 0 if door is unlocked - // locked is 1 if door is found and unlocked. - // - // ------------- - // the locked bool is either 0(unlocked)(false) or 1(locked)(true) - inline Void GetStateOfClosestDoorOfType(Hash type, float x, float y, float z, BOOL* locked, float* heading) { return _i(0xEDC1A5B84AEF33FF, type, x, y, z, locked, heading); } // 0xedc1a5b84aef33ff0x4b44a83dB323 - // Hardcoded not to work in multiplayer environments. - // When you set locked to 0 the door open and to 1 the door close - // OBJECT::SetLockedUnstreamedInDoorOfType(${prop_gate_prison_01}, 1845.0, 2605.0, 45.0, 0, 0.0, 50.0, 0); //door open - // - // OBJECT::SetLockedUnstreamedInDoorOfType(${prop_gate_prison_01}, 1845.0, 2605.0, 45.0, 1, 0.0, 50.0, 0); //door close - inline Void SetLockedUnstreamedInDoorOfType(Hash modelHash, float x, float y, float z, BOOL locked, float xRotMult, float yRotMult, float zRotMult) { return _i(0x9B12F9A24FABEDB0, modelHash, x, y, z, locked, xRotMult, yRotMult, zRotMult); } // 0x9b12f9a24fabedb00x4e0a260bB323 - inline Void PlayObjectAutoStartAnim(Any p0) { return _i(0x006E4B040ED37EC3, p0); } // 0x006e4b040ed37ec3B1868 - // doorHash has to be unique. scriptDoor false; relies upon getNetworkGameScriptHandler. isLocal On true disables the creation CRequestDoorEvent's in DoorSystemSetDoorState. - // p5 only set to true in single player native scripts. - // If scriptDoor is true, register the door on the script handler host (note: there's a hardcap on the number of script IDs that can be added to the system at a given time). If scriptDoor and isLocal are both false, the door is considered to be in a "Persists w/o netobj" state. - // - // door hashes normally look like PROP_[int]_DOOR_[int] for interior doors and PROP_BUILDING_[int]_DOOR_[int] exterior doors but you can just make up your own hash if you want - // All doors need to be registered with AddDoorToSystem before they can be manipulated with the door natives and the easiest way to get door models is just find the door in codewalker. - // - // Example: AddDoorToSystem("PROP_43_DOOR_0", "hei_v_ilev_fh_heistdoor2", -1456.818, -520.5037, 69.67043, 0, 0, 0) - inline Void AddDoorToSystem(Hash doorHash, Hash modelHash, float x, float y, float z, BOOL p5, BOOL scriptDoor, BOOL isLocal) { return _i(0x6F8838D03D1DC226, doorHash, modelHash, x, y, z, p5, scriptDoor, isLocal); } // 0x6f8838d03d1dc2260x9d2d778dB323 - // CDoor and CDoorSystemData still internally allocated (and their associations between doorHash, modelHash, and coordinates). - // Only its NetObj removed and flag ``*(v2 + 192) |= 8u`` (1604 retail) toggled. - inline Void RemoveDoorFromSystem(Hash doorHash, Any p1) { return _i(0x464D8E1427156FE4, doorHash, p1); } // 0x464d8e1427156fe40x00253286B323 - // Lockstates not applied and CNetObjDoor's not created until DoorSystemGetIsPhysicsLoaded returns true. - // `requestDoor` on true, and when door system is configured to, i.e., "persists w/o netobj", generate a CRequestDoorEvent. - // `forceUpdate` on true, forces an update on the door system (same path as netObjDoor_applyDoorStuff) - // Door lock states: - // 0: UNLOCKED - // 1: LOCKED - // 2: DOORSTATE_FORCE_LOCKED_UNTIL_OUT_OF_AREA - // 3: DOORSTATE_FORCE_UNLOCKED_THIS_FRAME - // 4: DOORSTATE_FORCE_LOCKED_THIS_FRAME - // 5: DOORSTATE_FORCE_OPEN_THIS_FRAME - // 6: DOORSTATE_FORCE_CLOSED_THIS_FRAME - inline Void DoorSystemSetDoorState(Hash doorHash, int state, BOOL requestDoor, BOOL forceUpdate) { return _i(0x6BAB9442830C7F53, doorHash, state, requestDoor, forceUpdate); } // 0x6bab9442830c7f530xdf83db47B323 - inline int DoorSystemGetDoorState(Hash doorHash) { return _i(0x160AA1B32F6139B8, doorHash); } // 0x160aa1b32f6139b80xd42a41c2B323 - inline int DoorSystemGetDoorPendingState(Hash doorHash) { return _i(0x4BC2854478F3A749, doorHash); } // 0x4bc2854478f3a7490xd649b7e1B323 - // Includes networking check: ownership vs. or the door itself **isn't** networked. - // `forceUpdate` on true invokes DoorSystemSetDoorState otherwise requestDoor is unused. - inline Void DoorSystemSetAutomaticRate(Hash doorHash, float rate, BOOL requestDoor, BOOL forceUpdate) { return _i(0x03C27E13B42A0E82, doorHash, rate, requestDoor, forceUpdate); } // 0x03c27e13b42a0e820x4f44af21B323 - // `forceUpdate` on true invokes DoorSystemSetDoorState otherwise requestDoor is unused. - inline Void DoorSystemSetAutomaticDistance(Hash doorHash, float distance, BOOL requestDoor, BOOL forceUpdate) { return _i(0x9BA001CB45CBF627, doorHash, distance, requestDoor, forceUpdate); } // 0x9ba001cb45cbf6270x47531446B323 - // Sets the ajar angle of a door. - // Ranges from -1.0 to 1.0, and 0.0 is closed / default. - // `forceUpdate` on true invokes DoorSystemSetDoorState otherwise requestDoor is unused. - inline Void DoorSystemSetOpenRatio(Hash doorHash, float ajar, BOOL requestDoor, BOOL forceUpdate) { return _i(0xB6E6FBA95C7324AC, doorHash, ajar, requestDoor, forceUpdate); } // 0xb6e6fba95c7324ac0x34883de3B323 - inline float DoorSystemGetAutomaticDistance(Hash doorHash) { return _i(0xE851471AEFC3374F, doorHash); } // 0xe851471aefc3374fB1868 - inline float DoorSystemGetOpenRatio(Hash doorHash) { return _i(0x65499865FCA6E5EC, doorHash); } // 0x65499865fca6e5ec0xb74c3bd7B323 - // Includes networking check: ownership vs. or the door itself **isn't** networked. - // `forceUpdate` on true invokes DoorSystemSetDoorState otherwise requestDoor is unused. - inline Void DoorSystemSetSpringRemoved(Hash doorHash, BOOL removed, BOOL requestDoor, BOOL forceUpdate) { return _i(0xC485E07E4F0B7958, doorHash, removed, requestDoor, forceUpdate); } // 0xc485e07e4f0b79580xb4a9a558B323 - // Includes networking check: ownership vs. or the door itself **isn't** networked. - inline Void DoorSystemSetHoldOpen(Hash doorHash, BOOL toggle) { return _i(0xD9B71952F78A2640, doorHash, toggle); } // 0xd9b71952f78a26400xece58ae0B323 - // Some property related to gates. Native name between ``DoorSystemSetAutomaticRate`` and ``DoorSystemSetDoorState``. - inline Void DoorSystemSetDoorOpenForRaces(Hash doorHash, BOOL p1) { return _i(0xA85A21582451E951, doorHash, p1); } // 0xa85a21582451e9510xf736227cB323 - // if (OBJECT::IsDoorRegisteredWithSystem(doorHash)) - // { - // OBJECT::RemoveDoorFromSystem(doorHash); - // } - inline BOOL IsDoorRegisteredWithSystem(Hash doorHash) { return _i(0xC153C43EA202C8C1, doorHash); } // 0xc153c43ea202c8c10x5afcd8a1B323 - inline BOOL IsDoorClosed(Hash doorHash) { return _i(0xC531EE8A1145A149, doorHash); } // 0xc531ee8a1145a1490x48659cd7B323 - inline Void OpenAllBarriersForRace(BOOL p0) { return _i(0xC7F29CA00F46350E, p0); } // 0xc7f29ca00f46350e0x9bf33e41B323 - // Clears the fields sets by 0xC7F29CA00F46350E (1604 retail: 0x1424A7A10, 0x1424A7A11) and iterates over the global CDoor's bucket-list. - // Related to its "Pre-networked state"? - inline Void CloseAllBarriersForRace() { return _i(0x701FDA1E82076BA4); } // 0x701fda1e82076ba40xf592ad10B323 - inline BOOL DoorSystemGetIsPhysicsLoaded(Any p0) { return _i(0xDF97CDD4FC08FD34, p0); } // 0xdf97cdd4fc08fd340x17ff9393B323 - // Search radius: 0.5 - inline BOOL DoorSystemFindExistingDoor(float x, float y, float z, Hash modelHash, Hash* outDoorHash) { return _i(0x589F80B325CC82C5, x, y, z, modelHash, outDoorHash); } // 0x589f80b325cc82c50xe9ae494fB323 - inline BOOL IsGarageEmpty(Hash garageHash, BOOL p1, int p2) { return _i(0x90E47239EA1980B8, garageHash, p1, p2); } // 0x90e47239ea1980b80xa8b37deaB323 - inline BOOL IsPlayerEntirelyInsideGarage(Hash garageHash, Player player, float p2, int p3) { return _i(0x024A60DEB0EA69F0, garageHash, player, p2, p3); } // 0x024a60deb0ea69f00xc33ed360B323 - inline BOOL IsPlayerPartiallyInsideGarage(Hash garageHash, Player player, int p2) { return _i(0x1761DC5D8471CBAA, garageHash, player, p2); } // 0x1761dc5d8471cbaa0x41924877B323 - inline BOOL AreEntitiesEntirelyInsideGarage(Hash garageHash, BOOL p1, BOOL p2, BOOL p3, Any p4) { return _i(0x85B6C850546FDDE2, garageHash, p1, p2, p3, p4); } // 0x85b6c850546fdde20x4bd59750B323 - inline BOOL IsAnyEntityEntirelyInsideGarage(Hash garageHash, BOOL p1, BOOL p2, BOOL p3, Any p4) { return _i(0x673ED815D6E323B7, garageHash, p1, p2, p3, p4); } // 0x673ed815d6e323b70x7b44d659B323 - // Despite the name, it does work for any entity type. - inline BOOL IsObjectEntirelyInsideGarage(Hash garageHash, Entity entity, float p2, int p3) { return _i(0x372EF6699146A1E4, garageHash, entity, p2, p3); } // 0x372ef6699146a1e40x142c8f76B323 - // Despite the name, it does work for any entity type. - inline BOOL IsObjectPartiallyInsideGarage(Hash garageHash, Entity entity, int p2) { return _i(0xF0EED5A6BC7B237A, garageHash, entity, p2); } // 0xf0eed5a6bc7b237a0x95a9ab2bB323 - inline Void ClearGarage(Hash garageHash, BOOL isNetwork) { return _i(0xDA05194260CDCDF9, garageHash, isNetwork); } // 0xda05194260cdcdf9B678 - inline Void ClearObjectsInsideGarage(Hash garageHash, BOOL vehicles, BOOL peds, BOOL objects, BOOL isNetwork) { return _i(0x190428512B240692, garageHash, vehicles, peds, objects, isNetwork); } // 0x190428512b2406920xa565e27eB323 - // Sets a flag. A valid id is 0x157DC10D - inline Void DisableTidyingUpInGarage(int id, BOOL toggle) { return _i(0x659F9D71F52843F8, id, toggle); } // 0x659f9d71f52843f8B1290 - inline Void EnableSavingInGarage(Hash garageHash, BOOL toggle) { return _i(0xF2E1A7133DD356A6, garageHash, toggle); } // 0xf2e1a7133dd356a60x43bb7e48B323 - inline Void CloseSafehouseGarages() { return _i(0x66A49D021870FE88); } // 0x66a49d021870fe880x6158959eB323 - // p5 is usually 0. - inline BOOL DoesObjectOfTypeExistAtCoords(float x, float y, float z, float radius, Hash hash, BOOL p5) { return _i(0xBFA48E2FF417213F, x, y, z, radius, hash, p5); } // 0xbfa48e2ff417213f0x23ff2ba4B323 - // An angled area is an X-Z oriented rectangle with three parameters: - // 1. origin: the mid-point along a base edge of the rectangle; - // 2. extent: the mid-point of opposite base edge on the other Z; - // 3. width: the length of the base edge; (named derived from logging strings ``CNetworkRoadNodeWorldStateData``). - // - // The oriented rectangle can then be derived from the direction of the two points (``norm(origin - extent)``), its orthonormal, and the width, e.g: - // 1. golf_mp https://i.imgur.com/JhsQAK9.png - // 2. am_taxi https://i.imgur.com/TJWCZaT.jpg - inline BOOL IsPointInAngledArea(float xPos, float yPos, float zPos, float x1, float y1, float z1, float x2, float y2, float z2, float width, BOOL debug, BOOL includeZ) { return _i(0x2A70BAE8883E4C81, xPos, yPos, zPos, x1, y1, z1, x2, y2, z2, width, debug, includeZ); } // 0x2a70bae8883e4c810x73bcffdcB323 - // Overrides the climbing/blocking flags of the object, used in the native scripts mostly for "prop_dock_bouy_*" - inline Void SetObjectAllowLowLodBuoyancy(Object object, BOOL toggle) { return _i(0x4D89D607CB3DD1D2, object, toggle); } // 0x4d89d607cb3dd1d20x19b17769B323 - // Adjust the physics parameters of a prop, or otherwise known as "object". This is useful for simulated gravity. - // - // Other parameters seem to be unknown. - // - // p2: seems to be weight and gravity related. Higher value makes the obj fall faster. Very sensitive? - // p3: seems similar to p2 - // p4: makes obj fall slower the higher the value - // p5: similar to p4 - inline Void SetObjectPhysicsParams(Object object, float weight, float p2, float p3, float p4, float p5, float gravity, float p7, float p8, float p9, float p10, float buoyancy) { return _i(0xF6DF6E90DE7DF90F, object, weight, p2, p3, p4, p5, gravity, p7, p8, p9, p10, buoyancy); } // 0xf6df6e90de7df90f0xe8d11c58B323 - inline float GetObjectFragmentDamageHealth(Any p0, BOOL p1) { return _i(0xB6FBFD079B8D0596, p0, p1); } // 0xb6fbfd079b8d05960xf0b330adB323 - inline Void SetActivateObjectPhysicsAsSoonAsItIsUnfrozen(Object object, BOOL toggle) { return _i(0x406137F8EF90EAF5, object, toggle); } // 0x406137f8ef90eaf50x3e263ae1B323 - inline BOOL IsAnyObjectNearPoint(float x, float y, float z, float range, BOOL p4) { return _i(0x397DC58FF00298D1, x, y, z, range, p4); } // 0x397dc58ff00298d10xe9e46941B323 - inline BOOL IsObjectNearPoint(Hash objectHash, float x, float y, float z, float range) { return _i(0x8C90FE4B381BA60A, objectHash, x, y, z, range); } // 0x8c90fe4b381ba60a0x50a62c43B323 - inline Void RemoveObjectHighDetailModel(Object object) { return _i(0x4A39DB43E47CF3AA, object); } // 0x4a39db43e47cf3aa0xe3261b35B323 - inline Void BreakObjectFragmentChild(Object p0, Any p1, BOOL p2) { return _i(0xE7E4C198B0185900, p0, p1, p2); } // 0xe7e4c198b01859000x1e82c2aeB323 - inline Void DamageObjectFragmentChild(Any p0, Any p1, Any p2) { return _i(0xE05F6AEEFEB0BB02, p0, p1, p2); } // 0xe05f6aeefeb0bb02B1180 - inline Void FixObjectFragment(Object object) { return _i(0xF9C1681347C8BD15, object); } // 0xf9c1681347c8bd15B323 - inline Void TrackObjectVisibility(Object object) { return _i(0xB252BC036B525623, object); } // 0xb252bc036b5256230x46d06b9aB323 - inline BOOL IsObjectVisible(Object object) { return _i(0x8B32ACE6326A7546, object); } // 0x8b32ace6326a75460xf4fd8ae4B323 - inline Void SetObjectIsSpecialGolfball(Object object, BOOL toggle) { return _i(0xC6033D32241F6FB5, object, toggle); } // 0xc6033d32241f6fb50xf4a1a14aB323 - inline Void SetObjectTakesDamageFromCollidingWithBuildings(Any p0, BOOL p1) { return _i(0xEB6F1A9B5510A5D2, p0, p1); } // 0xeb6f1a9b5510a5d20xaf016cc1B323 - inline Void AllowDamageEventsForNonNetworkedObjects(BOOL value) { return _i(0xABDABF4E1EDECBFA, value); } // 0xabdabf4e1edecbfaB1365 - // Requires a component_at_*_flsh to be attached to the weapon object - inline Void SetCutscenesWeaponFlashlightOnThisFrame(Object object, BOOL toggle) { return _i(0xBCE595371A5FBAAF, object, toggle); } // 0xbce595371a5fbaaf0x3a68aa46B323 - // Example: - // OBJECT::GetRayfireMapObject(-809.9619750976562, 170.919, 75.7406997680664, 3.0, "des_tvsmash"); - inline Object GetRayfireMapObject(float x, float y, float z, float radius, String name) { return _i(0xB48FCED898292E52, x, y, z, radius, name); } // 0xb48fced898292e520xa286de96B323 - // Defines the state of a destructible object. - // Use the GetRayfireMapObject native to find an object's handle with its name / coords. - // State 2 == object just spawned - // State 4 == Beginning of the animation - // State 6 == Start animation - // State 9 == End of the animation - inline Void SetStateOfRayfireMapObject(Object object, int state) { return _i(0x5C29F698D404C5E1, object, state); } // 0x5c29f698d404c5e10x21f51560B323 - // Get a destructible object's state. - // Substract 1 to get the real state. - // See SetStateOfRayfireMapObject to see the different states - // For example, if the object just spawned (state 2), the native will return 3. - inline int GetStateOfRayfireMapObject(Object object) { return _i(0x899BA936634A322E, object); } // 0x899ba936634a322e0xf1b8817aB323 - // Returns true if a destructible object with this handle exists, false otherwise. - inline BOOL DoesRayfireMapObjectExist(Object object) { return _i(0x52AF537A0C5B8AAD, object); } // 0x52af537a0c5b8aad0xe08c834dB323 - // `object`: The des-object handle to get the animation progress from. - // Return value is a float between 0.0 and 1.0, 0.0 is the beginning of the animation, 1.0 is the end. Value resets to 0.0 instantly after reaching 1.0. - inline float GetRayfireMapObjectAnimPhase(Object object) { return _i(0x260EE4FDBDF4DB01, object); } // 0x260ee4fdbdf4db010x020497deB323 - // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - inline Pickup CreatePickup(Hash pickupHash, float posX, float posY, float posZ, int p4, int value, BOOL p6, Hash modelHash) { return _i(0xFBA08C503DD5FA58, pickupHash, posX, posY, posZ, p4, value, p6, modelHash); } // 0xfba08c503dd5fa580x5e14df68B323 - // flags: - // 8 (1 << 3): place on ground - // 512 (1 << 9): spin around - // - // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - inline Pickup CreatePickupRotate(Hash pickupHash, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, int flag, int amount, Any p9, BOOL p10, Hash modelHash) { return _i(0x891804727E0A98B7, pickupHash, posX, posY, posZ, rotX, rotY, rotZ, flag, amount, p9, p10, modelHash); } // 0x891804727e0a98b70xf015bfe2B323 - inline Void ForcePickupRotateFaceUp() { return _i(0x394CD08E31313C28); } // 0x394cd08e31313c28B944 - inline Void SetCustomPickupWeaponHash(Hash pickupHash, Pickup pickup) { return _i(0x826D1EE4D1CAFC78, pickupHash, pickup); } // 0x826d1ee4d1cafc78B505 - // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - inline Object CreateAmbientPickup(Hash pickupHash, float posX, float posY, float posZ, int flags, int value, Hash modelHash, BOOL p7, BOOL p8) { return _i(0x673966A0C0FD7171, pickupHash, posX, posY, posZ, flags, value, modelHash, p7, p8); } // 0x673966a0c0fd71710x17b99ce7B323 - inline Object CreateNonNetworkedAmbientPickup(Hash pickupHash, float posX, float posY, float posZ, int flags, int value, Hash modelHash, BOOL p7, BOOL p8) { return _i(0x9C93764223E29C50, pickupHash, posX, posY, posZ, flags, value, modelHash, p7, p8); } // 0x9c93764223e29c50B2372 - inline Void BlockPlayersForAmbientPickup(Any p0, Any p1) { return _i(0x1E3F1B1B891A2AAA, p0, p1); } // 0x1e3f1b1b891a2aaaB573 - // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - inline Object CreatePortablePickup(Hash pickupHash, float x, float y, float z, BOOL placeOnGround, Hash modelHash) { return _i(0x2EAF1FDB2FB55698, pickupHash, x, y, z, placeOnGround, modelHash); } // 0x2eaf1fdb2fb556980x8c886be5B323 - // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - inline Object CreateNonNetworkedPortablePickup(Hash pickupHash, float x, float y, float z, BOOL placeOnGround, Hash modelHash) { return _i(0x125494B98A21AAF7, pickupHash, x, y, z, placeOnGround, modelHash); } // 0x125494b98a21aaf70x56a02502B323 - inline Void AttachPortablePickupToPed(Object pickupObject, Ped ped) { return _i(0x8DC39368BDD57755, pickupObject, ped); } // 0x8dc39368bdd577550x184f6ab3B323 - inline Void DetachPortablePickupFromPed(Object pickupObject) { return _i(0xCF463D1E9A0AECB1, pickupObject); } // 0xcf463d1e9a0aecb10x1d094562B323 - inline Void ForcePortablePickupLastAccessiblePositionSetting(Object object) { return _i(0x5CE2E45A5CE2E45A, object); } // 0x5ce2e45a5ce2e45aB2545 - inline Void HidePortablePickupWhenDetached(Object pickupObject, BOOL toggle) { return _i(0x867458251D47CCB2, pickupObject, toggle); } // 0x867458251d47ccb20x1f63b042B463 - inline Void SetMaxNumPortablePickupsCarriedByPlayer(Hash modelHash, int number) { return _i(0x0BF3B3BD47D79C08, modelHash, number); } // 0x0bf3b3bd47d79c080x7efba039B323 - inline Void SetLocalPlayerCanCollectPortablePickups(BOOL toggle) { return _i(0x78857FC65CADB909, toggle); } // 0x78857fc65cadb9090xa3cdf152B323 - inline Vector3 GetSafePickupCoords(float x, float y, float z, float p3, float p4) { return _i(0x6E16BC2503FF1FF0, x, y, z, p3, p4); } // 0x6e16bc2503ff1ff00x618b5f67B323 - // Adds an area that seems to be related to pickup physics behavior. - // Max amount of areas is 10. Only works in multiplayer. - inline Void AddExtendedPickupProbeArea(float x, float y, float z, float radius) { return _i(0xD4A7A435B3710D05, x, y, z, radius); } // 0xd4a7a435b3710d05B1290 - // Clears all areas created by AddExtendedPickupProbeArea - inline Void ClearExtendedPickupProbeAreas() { return _i(0xB7C6D80FB371659A); } // 0xb7c6d80fb371659aB1290 - inline Vector3 GetPickupCoords(Pickup pickup) { return _i(0x225B8B35C88029B3, pickup); } // 0x225b8b35c88029b30xc2e1e2c5B323 - inline Void SuppressPickupSoundForPickup(Any p0, Any p1) { return _i(0x8DCA505A5C196F05, p0, p1); } // 0x8dca505a5c196f05B1180 - // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - inline Void RemoveAllPickupsOfType(Hash pickupHash) { return _i(0x27F9D613092159CF, pickupHash); } // 0x27f9d613092159cf0x40062c53B323 - inline BOOL HasPickupBeenCollected(Pickup pickup) { return _i(0x80EC48E6679313F9, pickup); } // 0x80ec48e6679313f90x0be5ccedB323 - inline Void RemovePickup(Pickup pickup) { return _i(0x3288D8ACAECD2AB2, pickup); } // 0x3288d8acaecd2ab20x64a7a0e0B323 - // Spawns one or more money pickups. - // - // x: The X-component of the world position to spawn the money pickups at. - // y: The Y-component of the world position to spawn the money pickups at. - // z: The Z-component of the world position to spawn the money pickups at. - // value: The combined value of the pickups (in dollars). - // amount: The number of pickups to spawn. - // model: The model to use, or 0 for default money model. - // - // Example: - // CreateMoneyPickups(x, y, z, 1000, 3, 0x684a97ae); - // - // Spawns 3 spray cans that'll collectively give $1000 when picked up. (Three spray cans, each giving $334, $334, $332 = $1000). - // - // ============================================== - // - // Max is 2000 in MP. So if you put the amount to 20, but the value to $400,000 eg. They will only be able to pickup 20 - $2,000 bags. So, $40,000 - inline Void CreateMoneyPickups(float x, float y, float z, int value, int amount, Hash model) { return _i(0x0589B5E791CE9B2B, x, y, z, value, amount, model); } // 0x0589b5e791ce9b2b0x36c9a5eaB323 - inline BOOL DoesPickupExist(Pickup pickup) { return _i(0xAFC1CA75AD4074D1, pickup); } // 0xafc1ca75ad4074d10x9c6da0b3B323 - inline BOOL DoesPickupObjectExist(Object pickupObject) { return _i(0xD9EFB6DBF7DAAEA3, pickupObject); } // 0xd9efb6dbf7daaea30xe0b32108B323 - inline Object GetPickupObject(Pickup pickup) { return _i(0x5099BC55630B25AE, pickup); } // 0x5099bc55630b25ae0x6052e62eB323 - inline BOOL IsObjectAPickup(Object object) { return _i(0xFC481C641EBBD27D, object); } // 0xfc481c641ebbd27d0x93d23399B1365 - inline BOOL IsObjectAPortablePickup(Object object) { return _i(0x0378C08504160D0D, object); } // 0x0378c08504160d0d0x0f0e94ffB323 - // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - inline BOOL DoesPickupOfTypeExistInArea(Hash pickupHash, float x, float y, float z, float radius) { return _i(0xF9C36251F6E48E33, pickupHash, x, y, z, radius); } // 0xf9c36251f6e48e330xf139681bB323 - inline Void SetPickupRegenerationTime(Pickup pickup, int duration) { return _i(0x78015C9B4B3ECC9D, pickup, duration); } // 0x78015c9b4b3ecc9d0xab11267dB323 - inline Void ForcePickupRegenerate(Any p0) { return _i(0x758A5C1B3B1E1990, p0); } // 0x758a5c1b3b1e1990B1011 - // Disabling/enabling a player from getting pickups. From the scripts: - // - // OBJECT::SetPlayerPermittedToCollectPickupsOfType(PLAYER::PlayerId(), ${pickup_portable_package}, 0); - // OBJECT::SetPlayerPermittedToCollectPickupsOfType(PLAYER::PlayerId(), ${pickup_portable_package}, 0); - // OBJECT::SetPlayerPermittedToCollectPickupsOfType(PLAYER::PlayerId(), ${pickup_portable_package}, 1); - // OBJECT::SetPlayerPermittedToCollectPickupsOfType(PLAYER::PlayerId(), ${pickup_portable_package}, 0); - // OBJECT::SetPlayerPermittedToCollectPickupsOfType(PLAYER::PlayerId(), ${pickup_armour_standard}, 0); - // OBJECT::SetPlayerPermittedToCollectPickupsOfType(PLAYER::PlayerId(), ${pickup_armour_standard}, 1); - // - // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - inline Void SetPlayerPermittedToCollectPickupsOfType(Player player, Hash pickupHash, BOOL toggle) { return _i(0x616093EC6B139DD9, player, pickupHash, toggle); } // 0x616093ec6b139dd90x7fadb4b9B323 - // Maximum amount of pickup models that can be disallowed is 30. - inline Void SetLocalPlayerPermittedToCollectPickupsWithModel(Hash modelHash, BOOL toggle) { return _i(0x88EAEC617CD26926, modelHash, toggle); } // 0x88eaec617cd269260x3a8f1bf7B323 - // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - inline Void AllowAllPlayersToCollectPickupsOfType(Hash pickupHash) { return _i(0xFDC07C58E8AAB715, pickupHash); } // 0xfdc07c58e8aab715B1734 - inline Void SetTeamPickupObject(Object object, Any p1, BOOL p2) { return _i(0x53E0DF1A2A3CF0CA, object, p1, p2); } // 0x53e0df1a2a3cf0ca0x77687dc5B323 - inline Void PreventCollectionOfPortablePickup(Object object, BOOL p1, BOOL p2) { return _i(0x92AEFB5F6E294023, object, p1, p2); } // 0x92aefb5f6e2940230xcbb5f9b6B323 - inline Void SetPickupObjectGlowWhenUncollectable(Pickup pickup, BOOL toggle) { return _i(0x27F248C3FEBFAAD3, pickup, toggle); } // 0x27f248c3febfaad3B2372 - // p1 is always 0.51. This native is called before SetPickupRegenerationTime in all occurances. - inline Void SetPickupGlowOffset(Pickup pickup, float p1) { return _i(0x0596843B34B95CE5, pickup, p1); } // 0x0596843b34b95ce5B505 - // p1 is always -0.2 in scripts and p2 is always true in scripts. - inline Void SetPickupObjectGlowOffset(Pickup pickup, float p1, BOOL p2) { return _i(0xA08FE5E49BDC39DD, pickup, p1, p2); } // 0xa08fe5e49bdc39dd0x276a7807B323 - inline Void SetObjectGlowInSameTeam(Pickup pickup) { return _i(0x62454A641B41F3C5, pickup); } // 0x62454a641b41f3c5B678 - inline Void SetPickupObjectArrowMarker(Pickup pickup, BOOL toggle) { return _i(0x39A5FB7EAF150840, pickup, toggle); } // 0x39a5fb7eaf150840B678 - inline Void AllowPickupArrowMarkerWhenUncollectable(Pickup pickup, BOOL toggle) { return _i(0x834344A414C7C85D, pickup, toggle); } // 0x834344a414c7c85dB2372 - inline int GetDefaultAmmoForWeaponPickup(Hash pickupHash) { return _i(0xDB41D07A45A6D4B7, pickupHash); } // 0xdb41d07a45a6d4b70x000e92dcB323 - inline Void SetPickupGenerationRangeMultiplier(float multiplier) { return _i(0x318516E02DE3ECE2, multiplier); } // 0x318516e02de3ece20x9879ac51B323 - inline float GetPickupGenerationRangeMultiplier() { return _i(0xB3ECA65C7317F174); } // 0xb3eca65c7317f174B944 - inline Void SetOnlyAllowAmmoCollectionWhenLow(BOOL p0) { return _i(0x31F924B53EADDF65, p0); } // 0x31f924b53eaddf650xdb18fa01B323 - inline Void SetPickupUncollectable(Pickup pickup, BOOL toggle) { return _i(0x1C1B69FAE509BA97, pickup, toggle); } // 0x1c1b69fae509ba97B757 - inline Void SetPickupTransparentWhenUncollectable(Pickup pickup, BOOL toggle) { return _i(0x858EC9FD25DE04AA, pickup, toggle); } // 0x858ec9fd25de04aaB757 - inline Void SetPickupHiddenWhenUncollectable(Pickup pickup, BOOL toggle) { return _i(0x3ED2B83AB2E82799, pickup, toggle); } // 0x3ed2b83ab2e82799B757 - inline Void SetPickupObjectTransparentWhenUncollectable(Pickup pickup, BOOL toggle) { return _i(0x8881C98A31117998, pickup, toggle); } // 0x8881c98a31117998B678 - // p0 is either 0 or 50 in scripts. - inline Void SetPickupObjectAlphaWhenTransparent(int p0) { return _i(0x8CFF648FBD7330F1, p0); } // 0x8cff648fbd7330f1B757 - inline Void SetPortablePickupPersist(Pickup pickup, BOOL toggle) { return _i(0x46F3ADD1E2D5BAF2, pickup, toggle); } // 0x46f3add1e2d5baf2B877 - inline Void AllowPortablePickupToMigrateToNonParticipants(Pickup pickup, BOOL toggle) { return _i(0x641F272B52E2F0F8, pickup, toggle); } // 0x641f272b52e2f0f8B877 - inline Void ForceActivatePhysicsOnUnfixedPickup(Pickup pickup, BOOL toggle) { return _i(0x4C134B4DF76025D0, pickup, toggle); } // 0x4c134b4df76025d0B1180 - inline Void AllowPickupByNoneParticipant(Pickup pickup, BOOL toggle) { return _i(0xAA059C615DE9DD03, pickup, toggle); } // 0xaa059c615de9dd03B1180 - // enum ePickupRewardType - // { - // PICKUP_REWARD_TYPE_AMMO = (1 << 0), - // PICKUP_REWARD_TYPE_BULLET_MP = (1 << 1), - // PICKUP_REWARD_TYPE_MISSILE_MP = (1 << 2), - // PICKUP_REWARD_TYPE_GRENADE_LAUNCHER_MP = (1 << 3), - // PICKUP_REWARD_TYPE_ARMOUR = (1 << 4), - // PICKUP_REWARD_TYPE_HEALTH = (1 << 5), - // PICKUP_REWARD_TYPE_HEALTH_VARIABLE = PICKUP_REWARD_TYPE_HEALTH, - // PICKUP_REWARD_TYPE_MONEY_FIXED = (1 << 6), - // PICKUP_REWARD_TYPE_MONEY_VARIABLE = PICKUP_REWARD_TYPE_MONEY_FIXED, - // PICKUP_REWARD_TYPE_WEAPON = (1 << 7), - // PICKUP_REWARD_TYPE_STAT = (1 << 8), - // PICKUP_REWARD_TYPE_STAT_VARIABLE = PICKUP_REWARD_TYPE_STAT, - // PICKUP_REWARD_TYPE_VEHICLE_FIX = (1 << 9), - // PICKUP_REWARD_TYPE_FIREWORK_MP = (1 << 10), - // }; - inline Void SuppressPickupRewardType(int rewardType, BOOL suppress) { return _i(0xF92099527DB8E2A7, rewardType, suppress); } // 0xf92099527db8e2a70xa7e936fdB323 - inline Void ClearAllPickupRewardTypeSuppression() { return _i(0xA2C1F5E92AFE49ED); } // 0xa2c1f5e92afe49ed0xb241806cB323 - inline Void ClearPickupRewardTypeSuppression(int rewardType) { return _i(0x762DB2D380B48D04, rewardType); } // 0x762db2d380b48d040xd1baafb7B323 - // draws circular marker at pos - // -1 = none - // 0 = red - // 1 = green - // 2 = blue - // 3 = green larger - // 4 = nothing - // 5 = green small - inline Void RenderFakePickupGlow(float x, float y, float z, int colorIndex) { return _i(0x3430676B11CDF21D, x, y, z, colorIndex); } // 0x3430676b11cdf21d0x63b02fadB323 - inline Void SetPickupObjectCollectableInVehicle(Pickup pickup) { return _i(0x7813E8B8C4AE4799, pickup); } // 0x7813e8b8c4ae4799B1734 - inline Void SetPickupTrackDamageEvents(Pickup pickup, BOOL toggle) { return _i(0xBFFE53AE7E67FCDC, pickup, toggle); } // 0xbffe53ae7e67fcdcB1290 - // Sets entity+38 to C (when false) or 0xFF3f (when true) - inline Void SetEntityFlagSuppressShadow(Entity entity, BOOL toggle) { return _i(0xD05A3241B9A86F19, entity, toggle); } // 0xd05a3241b9a86f19B1180 - inline Void SetEntityFlagRenderSmallShadow(Object object, BOOL toggle) { return _i(0xB2D0BDE54F0E8E5A, object, toggle); } // 0xb2d0bde54f0e8e5a0x132b6d92B323 - // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - inline Hash GetWeaponTypeFromPickupType(Hash pickupHash) { return _i(0x08F96CA6C551AD51, pickupHash); } // 0x08f96ca6c551ad510xedd01937B323 - // Returns the pickup hash for the given weapon hash - inline Hash GetPickupTypeFromWeaponHash(Hash weaponHash) { return _i(0xD6429A016084F1A5, weaponHash); } // 0xd6429a016084f1a5B1290 - inline BOOL IsPickupWeaponObjectValid(Object object) { return _i(0x11D1E53A726891FE, object); } // 0x11d1e53a726891fe0x883dab2dB323 - inline int GetObjectTintIndex(Object object) { return _i(0xE84EB93729C5F36A, object); } // 0xe84eb93729c5f36aB757 - // enum ObjectPaintVariants - // { - // Pacific = 0, - // Azure = 1, - // Nautical = 2, - // Continental = 3, - // Battleship = 4, - // Intrepid = 5, - // Uniform = 6, - // Classico = 7, - // Mediterranean = 8, - // Command = 9, - // Mariner = 10, - // Ruby = 11, - // Vintage = 12, - // Pristine = 13, - // Merchant = 14, - // Voyager = 15 - // }; - inline Void SetObjectTintIndex(Object object, int textureVariation) { return _i(0x971DA0055324D033, object, textureVariation); } // 0x971da0055324d033B323 - inline BOOL SetTintIndexClosestBuildingOfType(float x, float y, float z, float radius, Hash modelHash, int textureVariation) { return _i(0xF12E33034D887F66, x, y, z, radius, modelHash, textureVariation); } // 0xf12e33034d887f66B1103 - inline Void SetPropTintIndex(Any p0, Any p1) { return _i(0x31574B1B41268673, p0, p1); } // 0x31574b1b41268673B2189 - inline BOOL SetPropLightColor(Object object, BOOL p1, int r, int g, int b) { return _i(0x5F048334B4A4E774, object, p1, r, g, b); } // 0x5f048334b4a4e774B1493 - inline BOOL IsPropLightOverriden(Object object) { return _i(0xADF084FB8F075D06, object); } // 0xadf084fb8f075d06B1604 - inline Void SetObjectIsVisibleInMirrors(Object object, BOOL toggle) { return _i(0x3B2FD68DB5F8331C, object, toggle); } // 0x3b2fd68db5f8331cB757 - inline Void SetObjectSpeedBoostAmount(Object object, Any p1) { return _i(0x96EE0EBA0163DF80, object, p1); } // 0x96ee0eba0163df80B791 - inline Void SetObjectSpeedBoostDuration(Object object, float duration) { return _i(0xDF6CA0330F2E737B, object, duration); } // 0xdf6ca0330f2e737bB791 - // returns pickup hash. - // - // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - inline Hash ConvertOldPickupTypeToNew(Hash pickupHash) { return _i(0x5EAAD83F8CFB4575, pickupHash); } // 0x5eaad83f8cfb45750x6ae36192B323 - inline Void SetForceObjectThisFrame(float x, float y, float z, float p3) { return _i(0xF538081986E49E9D, x, y, z, p3); } // 0xf538081986e49e9d0x3da41c1aB323 - // is this like setting is as no longer needed? - inline Void OnlyCleanUpObjectWhenOutOfRange(Object object) { return _i(0xADBE4809F19F927A, object); } // 0xadbe4809f19f927a0x2048a7ddB323 - inline Void SetDisableCollisionsBetweenCarsAndCarParachute(Any p0) { return _i(0x8CAAB2BD3EA58BD4, p0); } // 0x8caab2bd3ea58bd4B1011 - inline Void SetProjectilesShouldExplodeOnContact(Entity entity, Any p1) { return _i(0x63ECF581BC70E363, entity, p1); } // 0x63ecf581bc70e363B1365 - // Activate the physics to: "xs_prop_arena_{flipper,wall,bollard,turntable,pit}" - inline Void SetDriveArticulatedJoint(Object object, BOOL toggle, int p2) { return _i(0x911024442F4898F0, object, toggle, p2); } // 0x911024442f4898f0B1604 - inline Void SetDriveArticulatedJointWithInflictor(Object object, BOOL toggle, int p2, Ped ped) { return _i(0xB20834A7DD3D8896, object, toggle, p2, ped); } // 0xb20834a7dd3d8896B1604 - inline Void SetObjectIsAPressurePlate(Object object, BOOL toggle) { return _i(0x734E1714D077DA9A, object, toggle); } // 0x734e1714d077da9aB1604 - inline Void SetWeaponImpactsApplyGreaterForce(Object object, BOOL p1) { return _i(0x1A6CBB06E2D0D79D, object, p1); } // 0x1a6cbb06e2d0d79dB1604 - inline BOOL GetIsArticulatedJointAtMinAngle(Object object, Any p1) { return _i(0x43C677F1E1158005, object, p1); } // 0x43c677f1e1158005B1604 - inline BOOL GetIsArticulatedJointAtMaxAngle(Any p0, Any p1) { return _i(0x3BD770D281982DB5, p0, p1); } // 0x3bd770d281982db5B1604 - inline Void SetIsObjectArticulated(Object object, BOOL toggle) { return _i(0x1C57C94A6446492A, object, toggle); } // 0x1c57c94a6446492aB1604 - inline Void SetIsObjectBall(Object object, BOOL toggle) { return _i(0xB5B7742424BD4445, object, toggle); } // 0xb5b7742424bd4445B1604 + // List of object models that can be created without any additional effort like making sure ytyp is loaded etc: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ObjectList.ini + inline Object CreateObject(Hash modelHash, float x, float y, float z, BOOL isNetwork, BOOL bScriptHostObj, BOOL dynamic) { return _i(0x509D5878EB39E842, modelHash, x, y, z, isNetwork, bScriptHostObj, dynamic); } // 0x509d5878eb39e8420x2f7aa05cB323 + // List of object models that can be created without any additional effort like making sure ytyp is loaded etc: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ObjectList.ini + inline Object CreateObjectNoOffset(Hash modelHash, float x, float y, float z, BOOL isNetwork, BOOL bScriptHostObj, BOOL dynamic) { return _i(0x9A294B2138ABB884, modelHash, x, y, z, isNetwork, bScriptHostObj, dynamic); } // 0x9a294b2138abb8840x58040420B323 + // Deletes the specified object, then sets the handle pointed to by the pointer to NULL. + inline Void DeleteObject(Object* object) { return _i(0x539E0AE3E6634B9F, object); } // 0x539e0ae3e6634b9f0xd6ef9da7B323 + inline BOOL PlaceObjectOnGroundProperly(Object object) { return _i(0x58A850EAEE20FAA3, object); } // 0x58a850eaee20faa30x8f95a20bB323 + inline BOOL PlaceObjectOnGroundOrObjectProperly(Object object) { return _i(0xD76EEEF746057FD6, object); } // 0xd76eeef746057fd6B505 + inline BOOL RotateObject(Object object, float p1, float p2, BOOL p3) { return _i(0xAFE24E4D29249E4A, object, p1, p2, p3); } // 0xafe24e4d29249e4aB1734 + // Returns true if the object has finished moving. + // + // If false, moves the object towards the specified X, Y and Z coordinates with the specified X, Y and Z speed. + // + // See also: https://gtagmodding.com/opcode-database/opcode/034E/ + // Has to be looped until it returns true. + inline BOOL SlideObject(Object object, float toX, float toY, float toZ, float speedX, float speedY, float speedZ, BOOL collision) { return _i(0x2FDFF4107B8C1147, object, toX, toY, toZ, speedX, speedY, speedZ, collision); } // 0x2fdff4107b8c11470x63bfa7a0B323 + inline Void SetObjectTargettable(Object object, BOOL targettable, Any p2) { return _i(0x8A7391690F5AFD81, object, targettable, p2); } // 0x8a7391690f5afd810x3f88cd86B323 + // Overrides a flag on the object which determines if the object should be avoided by a vehicle in task CTaskVehicleGoToPointWithAvoidanceAutomobile. + inline Void SetObjectForceVehiclesToAvoid(Object object, BOOL toggle) { return _i(0x77F33F2CCF64B3AA, object, toggle); } // 0x77f33f2ccf64b3aa0x483c5c88B323 + // Has 8 params in the latest patches. + // + // isMission - if true doesn't return mission objects + inline Object GetClosestObjectOfType(float x, float y, float z, float radius, Hash modelHash, BOOL isMission, BOOL p6, BOOL p7) { return _i(0xE143FA2249364369, x, y, z, radius, modelHash, isMission, p6, p7); } // 0xe143fa22493643690x45619b33B323 + inline BOOL HasObjectBeenBroken(Object object, Any p1) { return _i(0x8ABFB70C49CC43E2, object, p1); } // 0x8abfb70c49cc43e20xfe21f891B323 + inline BOOL HasClosestObjectOfTypeBeenBroken(float p0, float p1, float p2, float p3, Hash modelHash, Any p5) { return _i(0x761B0E69AC4D007E, p0, p1, p2, p3, modelHash, p5); } // 0x761b0e69ac4d007e0x6fc0353dB323 + inline BOOL HasClosestObjectOfTypeBeenCompletelyDestroyed(float x, float y, float z, float radius, Hash modelHash, BOOL p5) { return _i(0x46494A2475701343, x, y, z, radius, modelHash, p5); } // 0x46494a24757013430x7db578ddB323 + inline BOOL GetHasObjectBeenCompletelyDestroyed(Any p0) { return _i(0x2542269291C6AC84, p0); } // 0x2542269291c6ac84B1180 + inline Vector3 GetOffsetFromCoordAndHeadingInWorldCoords(float xPos, float yPos, float zPos, float heading, float xOffset, float yOffset, float zOffset) { return _i(0x163E252DE035A133, xPos, yPos, zPos, heading, xOffset, yOffset, zOffset); } // 0x163e252de035a1330x87a42a12B323 + inline BOOL GetCoordsAndRotationOfClosestObjectOfType(float x, float y, float z, float radius, Hash modelHash, Vector3* outPosition, Vector3* outRotation, int rotationOrder) { return _i(0x163F8B586BC95F2A, x, y, z, radius, modelHash, outPosition, outRotation, rotationOrder); } // 0x163f8b586bc95f2a0x65213fc3B323 + // Hardcoded to not work in multiplayer. + // + // + // Used to lock/unlock doors to interior areas of the game. + // + // (Possible) Door Types: + // + // https://pastebin.com/9S2m3qA4 + // + // Heading is either 1, 0 or -1 in the scripts. Means default closed(0) or opened either into(1) or out(-1) of the interior. + // Locked means that the heading is locked. + // p6 is always 0. + // + // 225 door types, model names and coords found in stripclub.c4: + // https://pastebin.com/gywnbzsH + // + // get door info: https://pastebin.com/i14rbekD + inline Void SetStateOfClosestDoorOfType(Hash type, float x, float y, float z, BOOL locked, float heading, BOOL p6) { return _i(0xF82D8F1926A02C3D, type, x, y, z, locked, heading, p6); } // 0xf82d8f1926a02c3d0x38c951a4B323 + // locked is 0 if no door is found + // locked is 0 if door is unlocked + // locked is 1 if door is found and unlocked. + // + // ------------- + // the locked BOOL is either 0(unlocked)(false) or 1(locked)(true) + inline Void GetStateOfClosestDoorOfType(Hash type, float x, float y, float z, BOOL* locked, float* heading) { return _i(0xEDC1A5B84AEF33FF, type, x, y, z, locked, heading); } // 0xedc1a5b84aef33ff0x4b44a83dB323 + // Hardcoded not to work in multiplayer environments. + // When you set locked to 0 the door open and to 1 the door close + // OBJECT::SetLockedUnstreamedInDoorOfType(${prop_gate_prison_01}, 1845.0, 2605.0, 45.0, 0, 0.0, 50.0, 0); //door open + // + // OBJECT::SetLockedUnstreamedInDoorOfType(${prop_gate_prison_01}, 1845.0, 2605.0, 45.0, 1, 0.0, 50.0, 0); //door close + inline Void SetLockedUnstreamedInDoorOfType(Hash modelHash, float x, float y, float z, BOOL locked, float xRotMult, float yRotMult, float zRotMult) { return _i(0x9B12F9A24FABEDB0, modelHash, x, y, z, locked, xRotMult, yRotMult, zRotMult); } // 0x9b12f9a24fabedb00x4e0a260bB323 + inline Void PlayObjectAutoStartAnim(Any p0) { return _i(0x006E4B040ED37EC3, p0); } // 0x006e4b040ed37ec3B1868 + // doorHash has to be unique. scriptDoor false; relies upon getNetworkGameScriptHandler. isLocal On true disables the creation CRequestDoorEvent's in DoorSystemSetDoorState. + // p5 only set to true in single player native scripts. + // If scriptDoor is true, register the door on the script handler host (note: there's a hardcap on the number of script IDs that can be added to the system at a given time). If scriptDoor and isLocal are both false, the door is considered to be in a "Persists w/o netobj" state. + // + // door hashes normally look like PROP_[int]_DOOR_[int] for interior doors and PROP_BUILDING_[int]_DOOR_[int] exterior doors but you can just make up your own hash if you want + // All doors need to be registered with AddDoorToSystem before they can be manipulated with the door natives and the easiest way to get door models is just find the door in codewalker. + // + // Example: AddDoorToSystem("PROP_43_DOOR_0", "hei_v_ilev_fh_heistdoor2", -1456.818, -520.5037, 69.67043, 0, 0, 0) + inline Void AddDoorToSystem(Hash doorHash, Hash modelHash, float x, float y, float z, BOOL p5, BOOL scriptDoor, BOOL isLocal) { return _i(0x6F8838D03D1DC226, doorHash, modelHash, x, y, z, p5, scriptDoor, isLocal); } // 0x6f8838d03d1dc2260x9d2d778dB323 + // CDoor and CDoorSystemData still internally allocated (and their associations between doorHash, modelHash, and coordinates). + // Only its NetObj removed and flag ``*(v2 + 192) |= 8u`` (1604 retail) toggled. + inline Void RemoveDoorFromSystem(Hash doorHash, Any p1) { return _i(0x464D8E1427156FE4, doorHash, p1); } // 0x464d8e1427156fe40x00253286B323 + // Lockstates not applied and CNetObjDoor's not created until DoorSystemGetIsPhysicsLoaded returns true. + // `requestDoor` on true, and when door system is configured to, i.e., "persists w/o netobj", generate a CRequestDoorEvent. + // `forceUpdate` on true, forces an update on the door system (same path as netObjDoor_applyDoorStuff) + // Door lock states: + // 0: UNLOCKED + // 1: LOCKED + // 2: DOORSTATE_FORCE_LOCKED_UNTIL_OUT_OF_AREA + // 3: DOORSTATE_FORCE_UNLOCKED_THIS_FRAME + // 4: DOORSTATE_FORCE_LOCKED_THIS_FRAME + // 5: DOORSTATE_FORCE_OPEN_THIS_FRAME + // 6: DOORSTATE_FORCE_CLOSED_THIS_FRAME + inline Void DoorSystemSetDoorState(Hash doorHash, int state, BOOL requestDoor, BOOL forceUpdate) { return _i(0x6BAB9442830C7F53, doorHash, state, requestDoor, forceUpdate); } // 0x6bab9442830c7f530xdf83db47B323 + inline int DoorSystemGetDoorState(Hash doorHash) { return _i(0x160AA1B32F6139B8, doorHash); } // 0x160aa1b32f6139b80xd42a41c2B323 + inline int DoorSystemGetDoorPendingState(Hash doorHash) { return _i(0x4BC2854478F3A749, doorHash); } // 0x4bc2854478f3a7490xd649b7e1B323 + // Includes networking check: ownership vs. or the door itself **isn't** networked. + // `forceUpdate` on true _is DoorSystemSetDoorState otherwise requestDoor is unused. + inline Void DoorSystemSetAutomaticRate(Hash doorHash, float rate, BOOL requestDoor, BOOL forceUpdate) { return _i(0x03C27E13B42A0E82, doorHash, rate, requestDoor, forceUpdate); } // 0x03c27e13b42a0e820x4f44af21B323 + // `forceUpdate` on true _is DoorSystemSetDoorState otherwise requestDoor is unused. + inline Void DoorSystemSetAutomaticDistance(Hash doorHash, float distance, BOOL requestDoor, BOOL forceUpdate) { return _i(0x9BA001CB45CBF627, doorHash, distance, requestDoor, forceUpdate); } // 0x9ba001cb45cbf6270x47531446B323 + // Sets the ajar angle of a door. + // Ranges from -1.0 to 1.0, and 0.0 is closed / default. + // `forceUpdate` on true _is DoorSystemSetDoorState otherwise requestDoor is unused. + inline Void DoorSystemSetOpenRatio(Hash doorHash, float ajar, BOOL requestDoor, BOOL forceUpdate) { return _i(0xB6E6FBA95C7324AC, doorHash, ajar, requestDoor, forceUpdate); } // 0xb6e6fba95c7324ac0x34883de3B323 + inline float DoorSystemGetAutomaticDistance(Hash doorHash) { return _i(0xE851471AEFC3374F, doorHash); } // 0xe851471aefc3374fB1868 + inline float DoorSystemGetOpenRatio(Hash doorHash) { return _i(0x65499865FCA6E5EC, doorHash); } // 0x65499865fca6e5ec0xb74c3bd7B323 + // Includes networking check: ownership vs. or the door itself **isn't** networked. + // `forceUpdate` on true _is DoorSystemSetDoorState otherwise requestDoor is unused. + inline Void DoorSystemSetSpringRemoved(Hash doorHash, BOOL removed, BOOL requestDoor, BOOL forceUpdate) { return _i(0xC485E07E4F0B7958, doorHash, removed, requestDoor, forceUpdate); } // 0xc485e07e4f0b79580xb4a9a558B323 + // Includes networking check: ownership vs. or the door itself **isn't** networked. + inline Void DoorSystemSetHoldOpen(Hash doorHash, BOOL toggle) { return _i(0xD9B71952F78A2640, doorHash, toggle); } // 0xd9b71952f78a26400xece58ae0B323 + // Some property related to gates. Native name between ``DoorSystemSetAutomaticRate`` and ``DoorSystemSetDoorState``. + inline Void DoorSystemSetDoorOpenForRaces(Hash doorHash, BOOL p1) { return _i(0xA85A21582451E951, doorHash, p1); } // 0xa85a21582451e9510xf736227cB323 + // if (OBJECT::IsDoorRegisteredWithSystem(doorHash)) + // { + // OBJECT::RemoveDoorFromSystem(doorHash); + // } + inline BOOL IsDoorRegisteredWithSystem(Hash doorHash) { return _i(0xC153C43EA202C8C1, doorHash); } // 0xc153c43ea202c8c10x5afcd8a1B323 + inline BOOL IsDoorClosed(Hash doorHash) { return _i(0xC531EE8A1145A149, doorHash); } // 0xc531ee8a1145a1490x48659cd7B323 + inline Void OpenAllBarriersForRace(BOOL p0) { return _i(0xC7F29CA00F46350E, p0); } // 0xc7f29ca00f46350e0x9bf33e41B323 + // Clears the fields sets by 0xC7F29CA00F46350E (1604 retail: 0x1424A7A10, 0x1424A7A11) and iterates over the global CDoor's bucket-list. + // Related to its "Pre-networked state"? + inline Void CloseAllBarriersForRace() { return _i(0x701FDA1E82076BA4); } // 0x701fda1e82076ba40xf592ad10B323 + inline BOOL DoorSystemGetIsPhysicsLoaded(Any p0) { return _i(0xDF97CDD4FC08FD34, p0); } // 0xdf97cdd4fc08fd340x17ff9393B323 + // Search radius: 0.5 + inline BOOL DoorSystemFindExistingDoor(float x, float y, float z, Hash modelHash, Hash* outDoorHash) { return _i(0x589F80B325CC82C5, x, y, z, modelHash, outDoorHash); } // 0x589f80b325cc82c50xe9ae494fB323 + inline BOOL IsGarageEmpty(Hash garageHash, BOOL p1, int p2) { return _i(0x90E47239EA1980B8, garageHash, p1, p2); } // 0x90e47239ea1980b80xa8b37deaB323 + inline BOOL IsPlayerEntirelyInsideGarage(Hash garageHash, Player player, float p2, int p3) { return _i(0x024A60DEB0EA69F0, garageHash, player, p2, p3); } // 0x024a60deb0ea69f00xc33ed360B323 + inline BOOL IsPlayerPartiallyInsideGarage(Hash garageHash, Player player, int p2) { return _i(0x1761DC5D8471CBAA, garageHash, player, p2); } // 0x1761dc5d8471cbaa0x41924877B323 + inline BOOL AreEntitiesEntirelyInsideGarage(Hash garageHash, BOOL p1, BOOL p2, BOOL p3, Any p4) { return _i(0x85B6C850546FDDE2, garageHash, p1, p2, p3, p4); } // 0x85b6c850546fdde20x4bd59750B323 + inline BOOL IsAnyEntityEntirelyInsideGarage(Hash garageHash, BOOL p1, BOOL p2, BOOL p3, Any p4) { return _i(0x673ED815D6E323B7, garageHash, p1, p2, p3, p4); } // 0x673ed815d6e323b70x7b44d659B323 + // Despite the name, it does work for any entity type. + inline BOOL IsObjectEntirelyInsideGarage(Hash garageHash, Entity entity, float p2, int p3) { return _i(0x372EF6699146A1E4, garageHash, entity, p2, p3); } // 0x372ef6699146a1e40x142c8f76B323 + // Despite the name, it does work for any entity type. + inline BOOL IsObjectPartiallyInsideGarage(Hash garageHash, Entity entity, int p2) { return _i(0xF0EED5A6BC7B237A, garageHash, entity, p2); } // 0xf0eed5a6bc7b237a0x95a9ab2bB323 + inline Void ClearGarage(Hash garageHash, BOOL isNetwork) { return _i(0xDA05194260CDCDF9, garageHash, isNetwork); } // 0xda05194260cdcdf9B678 + inline Void ClearObjectsInsideGarage(Hash garageHash, BOOL vehicles, BOOL peds, BOOL objects, BOOL isNetwork) { return _i(0x190428512B240692, garageHash, vehicles, peds, objects, isNetwork); } // 0x190428512b2406920xa565e27eB323 + // Sets a flag. A valid id is 0x157DC10D + inline Void DisableTidyingUpInGarage(int id, BOOL toggle) { return _i(0x659F9D71F52843F8, id, toggle); } // 0x659f9d71f52843f8B1290 + inline Void EnableSavingInGarage(Hash garageHash, BOOL toggle) { return _i(0xF2E1A7133DD356A6, garageHash, toggle); } // 0xf2e1a7133dd356a60x43bb7e48B323 + inline Void CloseSafehouseGarages() { return _i(0x66A49D021870FE88); } // 0x66a49d021870fe880x6158959eB323 + // p5 is usually 0. + inline BOOL DoesObjectOfTypeExistAtCoords(float x, float y, float z, float radius, Hash hash, BOOL p5) { return _i(0xBFA48E2FF417213F, x, y, z, radius, hash, p5); } // 0xbfa48e2ff417213f0x23ff2ba4B323 + // An angled area is an X-Z oriented rectangle with three parameters: + // 1. origin: the mid-point along a base edge of the rectangle; + // 2. extent: the mid-point of opposite base edge on the other Z; + // 3. width: the length of the base edge; (named derived from logging strings ``CNetworkRoadNodeWorldStateData``). + // + // The oriented rectangle can then be derived from the direction of the two points (``norm(origin - extent)``), its orthonormal, and the width, e.g: + // 1. golf_mp https://i.imgur.com/JhsQAK9.png + // 2. am_taxi https://i.imgur.com/TJWCZaT.jpg + inline BOOL IsPointInAngledArea(float xPos, float yPos, float zPos, float x1, float y1, float z1, float x2, float y2, float z2, float width, BOOL debug, BOOL includeZ) { return _i(0x2A70BAE8883E4C81, xPos, yPos, zPos, x1, y1, z1, x2, y2, z2, width, debug, includeZ); } // 0x2a70bae8883e4c810x73bcffdcB323 + // Overrides the climbing/blocking flags of the object, used in the native scripts mostly for "prop_dock_bouy_*" + inline Void SetObjectAllowLowLodBuoyancy(Object object, BOOL toggle) { return _i(0x4D89D607CB3DD1D2, object, toggle); } // 0x4d89d607cb3dd1d20x19b17769B323 + // Adjust the physics parameters of a prop, or otherwise known as "object". This is useful for simulated gravity. + // + // Other parameters seem to be unknown. + // + // p2: seems to be weight and gravity related. Higher value makes the obj fall faster. Very sensitive? + // p3: seems similar to p2 + // p4: makes obj fall slower the higher the value + // p5: similar to p4 + inline Void SetObjectPhysicsParams(Object object, float weight, float p2, float p3, float p4, float p5, float gravity, float p7, float p8, float p9, float p10, float buoyancy) { return _i(0xF6DF6E90DE7DF90F, object, weight, p2, p3, p4, p5, gravity, p7, p8, p9, p10, buoyancy); } // 0xf6df6e90de7df90f0xe8d11c58B323 + inline float GetObjectFragmentDamageHealth(Any p0, BOOL p1) { return _i(0xB6FBFD079B8D0596, p0, p1); } // 0xb6fbfd079b8d05960xf0b330adB323 + inline Void SetActivateObjectPhysicsAsSoonAsItIsUnfrozen(Object object, BOOL toggle) { return _i(0x406137F8EF90EAF5, object, toggle); } // 0x406137f8ef90eaf50x3e263ae1B323 + inline BOOL IsAnyObjectNearPoint(float x, float y, float z, float range, BOOL p4) { return _i(0x397DC58FF00298D1, x, y, z, range, p4); } // 0x397dc58ff00298d10xe9e46941B323 + inline BOOL IsObjectNearPoint(Hash objectHash, float x, float y, float z, float range) { return _i(0x8C90FE4B381BA60A, objectHash, x, y, z, range); } // 0x8c90fe4b381ba60a0x50a62c43B323 + inline Void RemoveObjectHighDetailModel(Object object) { return _i(0x4A39DB43E47CF3AA, object); } // 0x4a39db43e47cf3aa0xe3261b35B323 + inline Void BreakObjectFragmentChild(Object p0, Any p1, BOOL p2) { return _i(0xE7E4C198B0185900, p0, p1, p2); } // 0xe7e4c198b01859000x1e82c2aeB323 + inline Void DamageObjectFragmentChild(Any p0, Any p1, Any p2) { return _i(0xE05F6AEEFEB0BB02, p0, p1, p2); } // 0xe05f6aeefeb0bb02B1180 + inline Void FixObjectFragment(Object object) { return _i(0xF9C1681347C8BD15, object); } // 0xf9c1681347c8bd15B323 + inline Void TrackObjectVisibility(Object object) { return _i(0xB252BC036B525623, object); } // 0xb252bc036b5256230x46d06b9aB323 + inline BOOL IsObjectVisible(Object object) { return _i(0x8B32ACE6326A7546, object); } // 0x8b32ace6326a75460xf4fd8ae4B323 + inline Void SetObjectIsSpecialGolfball(Object object, BOOL toggle) { return _i(0xC6033D32241F6FB5, object, toggle); } // 0xc6033d32241f6fb50xf4a1a14aB323 + inline Void SetObjectTakesDamageFromCollidingWithBuildings(Any p0, BOOL p1) { return _i(0xEB6F1A9B5510A5D2, p0, p1); } // 0xeb6f1a9b5510a5d20xaf016cc1B323 + inline Void AllowDamageEventsForNonNetworkedObjects(BOOL value) { return _i(0xABDABF4E1EDECBFA, value); } // 0xabdabf4e1edecbfaB1365 + // Requires a component_at_*_flsh to be attached to the weapon object + inline Void SetCutscenesWeaponFlashlightOnThisFrame(Object object, BOOL toggle) { return _i(0xBCE595371A5FBAAF, object, toggle); } // 0xbce595371a5fbaaf0x3a68aa46B323 + // Example: + // OBJECT::GetRayfireMapObject(-809.9619750976562, 170.919, 75.7406997680664, 3.0, "des_tvsmash"); + inline Object GetRayfireMapObject(float x, float y, float z, float radius, String name) { return _i(0xB48FCED898292E52, x, y, z, radius, name); } // 0xb48fced898292e520xa286de96B323 + // Defines the state of a destructible object. + // Use the GetRayfireMapObject native to find an object's handle with its name / coords. + // State 2 == object just spawned + // State 4 == Beginning of the animation + // State 6 == Start animation + // State 9 == End of the animation + inline Void SetStateOfRayfireMapObject(Object object, int state) { return _i(0x5C29F698D404C5E1, object, state); } // 0x5c29f698d404c5e10x21f51560B323 + // Get a destructible object's state. + // Substract 1 to get the real state. + // See SetStateOfRayfireMapObject to see the different states + // For example, if the object just spawned (state 2), the native will return 3. + inline int GetStateOfRayfireMapObject(Object object) { return _i(0x899BA936634A322E, object); } // 0x899ba936634a322e0xf1b8817aB323 + // Returns true if a destructible object with this handle exists, false otherwise. + inline BOOL DoesRayfireMapObjectExist(Object object) { return _i(0x52AF537A0C5B8AAD, object); } // 0x52af537a0c5b8aad0xe08c834dB323 + // `object`: The des-object handle to get the animation progress from. + // Return value is a float between 0.0 and 1.0, 0.0 is the beginning of the animation, 1.0 is the end. Value resets to 0.0 instantly after reaching 1.0. + inline float GetRayfireMapObjectAnimPhase(Object object) { return _i(0x260EE4FDBDF4DB01, object); } // 0x260ee4fdbdf4db010x020497deB323 + // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json + inline Pickup CreatePickup(Hash pickupHash, float posX, float posY, float posZ, int p4, int value, BOOL p6, Hash modelHash) { return _i(0xFBA08C503DD5FA58, pickupHash, posX, posY, posZ, p4, value, p6, modelHash); } // 0xfba08c503dd5fa580x5e14df68B323 + // flags: + // 8 (1 << 3): place on ground + // 512 (1 << 9): spin around + // + // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json + inline Pickup CreatePickupRotate(Hash pickupHash, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, int flag, int amount, Any p9, BOOL p10, Hash modelHash) { return _i(0x891804727E0A98B7, pickupHash, posX, posY, posZ, rotX, rotY, rotZ, flag, amount, p9, p10, modelHash); } // 0x891804727e0a98b70xf015bfe2B323 + inline Void ForcePickupRotateFaceUp() { return _i(0x394CD08E31313C28); } // 0x394cd08e31313c28B944 + inline Void SetCustomPickupWeaponHash(Hash pickupHash, Pickup pickup) { return _i(0x826D1EE4D1CAFC78, pickupHash, pickup); } // 0x826d1ee4d1cafc78B505 + // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json + inline Object CreateAmbientPickup(Hash pickupHash, float posX, float posY, float posZ, int flags, int value, Hash modelHash, BOOL p7, BOOL p8) { return _i(0x673966A0C0FD7171, pickupHash, posX, posY, posZ, flags, value, modelHash, p7, p8); } // 0x673966a0c0fd71710x17b99ce7B323 + inline Object CreateNonNetworkedAmbientPickup(Hash pickupHash, float posX, float posY, float posZ, int flags, int value, Hash modelHash, BOOL p7, BOOL p8) { return _i(0x9C93764223E29C50, pickupHash, posX, posY, posZ, flags, value, modelHash, p7, p8); } // 0x9c93764223e29c50B2372 + inline Void BlockPlayersForAmbientPickup(Any p0, Any p1) { return _i(0x1E3F1B1B891A2AAA, p0, p1); } // 0x1e3f1b1b891a2aaaB573 + // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json + inline Object CreatePortablePickup(Hash pickupHash, float x, float y, float z, BOOL placeOnGround, Hash modelHash) { return _i(0x2EAF1FDB2FB55698, pickupHash, x, y, z, placeOnGround, modelHash); } // 0x2eaf1fdb2fb556980x8c886be5B323 + // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json + inline Object CreateNonNetworkedPortablePickup(Hash pickupHash, float x, float y, float z, BOOL placeOnGround, Hash modelHash) { return _i(0x125494B98A21AAF7, pickupHash, x, y, z, placeOnGround, modelHash); } // 0x125494b98a21aaf70x56a02502B323 + inline Void AttachPortablePickupToPed(Object pickupObject, Ped ped) { return _i(0x8DC39368BDD57755, pickupObject, ped); } // 0x8dc39368bdd577550x184f6ab3B323 + inline Void DetachPortablePickupFromPed(Object pickupObject) { return _i(0xCF463D1E9A0AECB1, pickupObject); } // 0xcf463d1e9a0aecb10x1d094562B323 + inline Void ForcePortablePickupLastAccessiblePositionSetting(Object object) { return _i(0x5CE2E45A5CE2E45A, object); } // 0x5ce2e45a5ce2e45aB2545 + inline Void HidePortablePickupWhenDetached(Object pickupObject, BOOL toggle) { return _i(0x867458251D47CCB2, pickupObject, toggle); } // 0x867458251d47ccb20x1f63b042B463 + inline Void SetMaxNumPortablePickupsCarriedByPlayer(Hash modelHash, int number) { return _i(0x0BF3B3BD47D79C08, modelHash, number); } // 0x0bf3b3bd47d79c080x7efba039B323 + inline Void SetLocalPlayerCanCollectPortablePickups(BOOL toggle) { return _i(0x78857FC65CADB909, toggle); } // 0x78857fc65cadb9090xa3cdf152B323 + inline Vector3 GetSafePickupCoords(float x, float y, float z, float p3, float p4) { return _i(0x6E16BC2503FF1FF0, x, y, z, p3, p4); } // 0x6e16bc2503ff1ff00x618b5f67B323 + // Adds an area that seems to be related to pickup physics behavior. + // Max amount of areas is 10. Only works in multiplayer. + inline Void AddExtendedPickupProbeArea(float x, float y, float z, float radius) { return _i(0xD4A7A435B3710D05, x, y, z, radius); } // 0xd4a7a435b3710d05B1290 + // Clears all areas created by AddExtendedPickupProbeArea + inline Void ClearExtendedPickupProbeAreas() { return _i(0xB7C6D80FB371659A); } // 0xb7c6d80fb371659aB1290 + inline Vector3 GetPickupCoords(Pickup pickup) { return _i(0x225B8B35C88029B3, pickup); } // 0x225b8b35c88029b30xc2e1e2c5B323 + inline Void SuppressPickupSoundForPickup(Any p0, Any p1) { return _i(0x8DCA505A5C196F05, p0, p1); } // 0x8dca505a5c196f05B1180 + // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json + inline Void RemoveAllPickupsOfType(Hash pickupHash) { return _i(0x27F9D613092159CF, pickupHash); } // 0x27f9d613092159cf0x40062c53B323 + inline BOOL HasPickupBeenCollected(Pickup pickup) { return _i(0x80EC48E6679313F9, pickup); } // 0x80ec48e6679313f90x0be5ccedB323 + inline Void RemovePickup(Pickup pickup) { return _i(0x3288D8ACAECD2AB2, pickup); } // 0x3288d8acaecd2ab20x64a7a0e0B323 + // Spawns one or more money pickups. + // + // x: The X-component of the world position to spawn the money pickups at. + // y: The Y-component of the world position to spawn the money pickups at. + // z: The Z-component of the world position to spawn the money pickups at. + // value: The combined value of the pickups (in dollars). + // amount: The number of pickups to spawn. + // model: The model to use, or 0 for default money model. + // + // Example: + // CreateMoneyPickups(x, y, z, 1000, 3, 0x684a97ae); + // + // Spawns 3 spray cans that'll collectively give $1000 when picked up. (Three spray cans, each giving $334, $334, $332 = $1000). + // + // ============================================== + // + // Max is 2000 in MP. So if you put the amount to 20, but the value to $400,000 eg. They will only be able to pickup 20 - $2,000 bags. So, $40,000 + inline Void CreateMoneyPickups(float x, float y, float z, int value, int amount, Hash model) { return _i(0x0589B5E791CE9B2B, x, y, z, value, amount, model); } // 0x0589b5e791ce9b2b0x36c9a5eaB323 + inline BOOL DoesPickupExist(Pickup pickup) { return _i(0xAFC1CA75AD4074D1, pickup); } // 0xafc1ca75ad4074d10x9c6da0b3B323 + inline BOOL DoesPickupObjectExist(Object pickupObject) { return _i(0xD9EFB6DBF7DAAEA3, pickupObject); } // 0xd9efb6dbf7daaea30xe0b32108B323 + inline Object GetPickupObject(Pickup pickup) { return _i(0x5099BC55630B25AE, pickup); } // 0x5099bc55630b25ae0x6052e62eB323 + inline BOOL IsObjectAPickup(Object object) { return _i(0xFC481C641EBBD27D, object); } // 0xfc481c641ebbd27d0x93d23399B1365 + inline BOOL IsObjectAPortablePickup(Object object) { return _i(0x0378C08504160D0D, object); } // 0x0378c08504160d0d0x0f0e94ffB323 + // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json + inline BOOL DoesPickupOfTypeExistInArea(Hash pickupHash, float x, float y, float z, float radius) { return _i(0xF9C36251F6E48E33, pickupHash, x, y, z, radius); } // 0xf9c36251f6e48e330xf139681bB323 + inline Void SetPickupRegenerationTime(Pickup pickup, int duration) { return _i(0x78015C9B4B3ECC9D, pickup, duration); } // 0x78015c9b4b3ecc9d0xab11267dB323 + inline Void ForcePickupRegenerate(Any p0) { return _i(0x758A5C1B3B1E1990, p0); } // 0x758a5c1b3b1e1990B1011 + // Disabling/enabling a player from getting pickups. From the scripts: + // + // OBJECT::SetPlayerPermittedToCollectPickupsOfType(PLAYER::PlayerId(), ${pickup_portable_package}, 0); + // OBJECT::SetPlayerPermittedToCollectPickupsOfType(PLAYER::PlayerId(), ${pickup_portable_package}, 0); + // OBJECT::SetPlayerPermittedToCollectPickupsOfType(PLAYER::PlayerId(), ${pickup_portable_package}, 1); + // OBJECT::SetPlayerPermittedToCollectPickupsOfType(PLAYER::PlayerId(), ${pickup_portable_package}, 0); + // OBJECT::SetPlayerPermittedToCollectPickupsOfType(PLAYER::PlayerId(), ${pickup_armour_standard}, 0); + // OBJECT::SetPlayerPermittedToCollectPickupsOfType(PLAYER::PlayerId(), ${pickup_armour_standard}, 1); + // + // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json + inline Void SetPlayerPermittedToCollectPickupsOfType(Player player, Hash pickupHash, BOOL toggle) { return _i(0x616093EC6B139DD9, player, pickupHash, toggle); } // 0x616093ec6b139dd90x7fadb4b9B323 + // Maximum amount of pickup models that can be disallowed is 30. + inline Void SetLocalPlayerPermittedToCollectPickupsWithModel(Hash modelHash, BOOL toggle) { return _i(0x88EAEC617CD26926, modelHash, toggle); } // 0x88eaec617cd269260x3a8f1bf7B323 + // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json + inline Void AllowAllPlayersToCollectPickupsOfType(Hash pickupHash) { return _i(0xFDC07C58E8AAB715, pickupHash); } // 0xfdc07c58e8aab715B1734 + inline Void SetTeamPickupObject(Object object, Any p1, BOOL p2) { return _i(0x53E0DF1A2A3CF0CA, object, p1, p2); } // 0x53e0df1a2a3cf0ca0x77687dc5B323 + inline Void PreventCollectionOfPortablePickup(Object object, BOOL p1, BOOL p2) { return _i(0x92AEFB5F6E294023, object, p1, p2); } // 0x92aefb5f6e2940230xcbb5f9b6B323 + inline Void SetPickupObjectGlowWhenUncollectable(Pickup pickup, BOOL toggle) { return _i(0x27F248C3FEBFAAD3, pickup, toggle); } // 0x27f248c3febfaad3B2372 + // p1 is always 0.51. This native is called before SetPickupRegenerationTime in all occurances. + inline Void SetPickupGlowOffset(Pickup pickup, float p1) { return _i(0x0596843B34B95CE5, pickup, p1); } // 0x0596843b34b95ce5B505 + // p1 is always -0.2 in scripts and p2 is always true in scripts. + inline Void SetPickupObjectGlowOffset(Pickup pickup, float p1, BOOL p2) { return _i(0xA08FE5E49BDC39DD, pickup, p1, p2); } // 0xa08fe5e49bdc39dd0x276a7807B323 + inline Void SetObjectGlowInSameTeam(Pickup pickup) { return _i(0x62454A641B41F3C5, pickup); } // 0x62454a641b41f3c5B678 + inline Void SetPickupObjectArrowMarker(Pickup pickup, BOOL toggle) { return _i(0x39A5FB7EAF150840, pickup, toggle); } // 0x39a5fb7eaf150840B678 + inline Void AllowPickupArrowMarkerWhenUncollectable(Pickup pickup, BOOL toggle) { return _i(0x834344A414C7C85D, pickup, toggle); } // 0x834344a414c7c85dB2372 + inline int GetDefaultAmmoForWeaponPickup(Hash pickupHash) { return _i(0xDB41D07A45A6D4B7, pickupHash); } // 0xdb41d07a45a6d4b70x000e92dcB323 + inline Void SetPickupGenerationRangeMultiplier(float multiplier) { return _i(0x318516E02DE3ECE2, multiplier); } // 0x318516e02de3ece20x9879ac51B323 + inline float GetPickupGenerationRangeMultiplier() { return _i(0xB3ECA65C7317F174); } // 0xb3eca65c7317f174B944 + inline Void SetOnlyAllowAmmoCollectionWhenLow(BOOL p0) { return _i(0x31F924B53EADDF65, p0); } // 0x31f924b53eaddf650xdb18fa01B323 + inline Void SetPickupUncollectable(Pickup pickup, BOOL toggle) { return _i(0x1C1B69FAE509BA97, pickup, toggle); } // 0x1c1b69fae509ba97B757 + inline Void SetPickupTransparentWhenUncollectable(Pickup pickup, BOOL toggle) { return _i(0x858EC9FD25DE04AA, pickup, toggle); } // 0x858ec9fd25de04aaB757 + inline Void SetPickupHiddenWhenUncollectable(Pickup pickup, BOOL toggle) { return _i(0x3ED2B83AB2E82799, pickup, toggle); } // 0x3ed2b83ab2e82799B757 + inline Void SetPickupObjectTransparentWhenUncollectable(Pickup pickup, BOOL toggle) { return _i(0x8881C98A31117998, pickup, toggle); } // 0x8881c98a31117998B678 + // p0 is either 0 or 50 in scripts. + inline Void SetPickupObjectAlphaWhenTransparent(int p0) { return _i(0x8CFF648FBD7330F1, p0); } // 0x8cff648fbd7330f1B757 + inline Void SetPortablePickupPersist(Pickup pickup, BOOL toggle) { return _i(0x46F3ADD1E2D5BAF2, pickup, toggle); } // 0x46f3add1e2d5baf2B877 + inline Void AllowPortablePickupToMigrateToNonParticipants(Pickup pickup, BOOL toggle) { return _i(0x641F272B52E2F0F8, pickup, toggle); } // 0x641f272b52e2f0f8B877 + inline Void ForceActivatePhysicsOnUnfixedPickup(Pickup pickup, BOOL toggle) { return _i(0x4C134B4DF76025D0, pickup, toggle); } // 0x4c134b4df76025d0B1180 + inline Void AllowPickupByNoneParticipant(Pickup pickup, BOOL toggle) { return _i(0xAA059C615DE9DD03, pickup, toggle); } // 0xaa059c615de9dd03B1180 + // enum ePickupRewardType + // { + // PICKUP_REWARD_TYPE_AMMO = (1 << 0), + // PICKUP_REWARD_TYPE_BULLET_MP = (1 << 1), + // PICKUP_REWARD_TYPE_MISSILE_MP = (1 << 2), + // PICKUP_REWARD_TYPE_GRENADE_LAUNCHER_MP = (1 << 3), + // PICKUP_REWARD_TYPE_ARMOUR = (1 << 4), + // PICKUP_REWARD_TYPE_HEALTH = (1 << 5), + // PICKUP_REWARD_TYPE_HEALTH_VARIABLE = PICKUP_REWARD_TYPE_HEALTH, + // PICKUP_REWARD_TYPE_MONEY_FIXED = (1 << 6), + // PICKUP_REWARD_TYPE_MONEY_VARIABLE = PICKUP_REWARD_TYPE_MONEY_FIXED, + // PICKUP_REWARD_TYPE_WEAPON = (1 << 7), + // PICKUP_REWARD_TYPE_STAT = (1 << 8), + // PICKUP_REWARD_TYPE_STAT_VARIABLE = PICKUP_REWARD_TYPE_STAT, + // PICKUP_REWARD_TYPE_VEHICLE_FIX = (1 << 9), + // PICKUP_REWARD_TYPE_FIREWORK_MP = (1 << 10), + // }; + inline Void SuppressPickupRewardType(int rewardType, BOOL suppress) { return _i(0xF92099527DB8E2A7, rewardType, suppress); } // 0xf92099527db8e2a70xa7e936fdB323 + inline Void ClearAllPickupRewardTypeSuppression() { return _i(0xA2C1F5E92AFE49ED); } // 0xa2c1f5e92afe49ed0xb241806cB323 + inline Void ClearPickupRewardTypeSuppression(int rewardType) { return _i(0x762DB2D380B48D04, rewardType); } // 0x762db2d380b48d040xd1baafb7B323 + // draws circular marker at pos + // -1 = none + // 0 = red + // 1 = green + // 2 = blue + // 3 = green larger + // 4 = nothing + // 5 = green small + inline Void RenderFakePickupGlow(float x, float y, float z, int colorIndex) { return _i(0x3430676B11CDF21D, x, y, z, colorIndex); } // 0x3430676b11cdf21d0x63b02fadB323 + inline Void SetPickupObjectCollectableInVehicle(Pickup pickup) { return _i(0x7813E8B8C4AE4799, pickup); } // 0x7813e8b8c4ae4799B1734 + inline Void SetPickupTrackDamageEvents(Pickup pickup, BOOL toggle) { return _i(0xBFFE53AE7E67FCDC, pickup, toggle); } // 0xbffe53ae7e67fcdcB1290 + // Sets entity+38 to C (when false) or 0xFF3f (when true) + inline Void SetEntityFlagSuppressShadow(Entity entity, BOOL toggle) { return _i(0xD05A3241B9A86F19, entity, toggle); } // 0xd05a3241b9a86f19B1180 + inline Void SetEntityFlagRenderSmallShadow(Object object, BOOL toggle) { return _i(0xB2D0BDE54F0E8E5A, object, toggle); } // 0xb2d0bde54f0e8e5a0x132b6d92B323 + // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json + inline Hash GetWeaponTypeFromPickupType(Hash pickupHash) { return _i(0x08F96CA6C551AD51, pickupHash); } // 0x08f96ca6c551ad510xedd01937B323 + // Returns the pickup hash for the given weapon hash + inline Hash GetPickupTypeFromWeaponHash(Hash weaponHash) { return _i(0xD6429A016084F1A5, weaponHash); } // 0xd6429a016084f1a5B1290 + inline BOOL IsPickupWeaponObjectValid(Object object) { return _i(0x11D1E53A726891FE, object); } // 0x11d1e53a726891fe0x883dab2dB323 + inline int GetObjectTintIndex(Object object) { return _i(0xE84EB93729C5F36A, object); } // 0xe84eb93729c5f36aB757 + // enum ObjectPaintVariants + // { + // Pacific = 0, + // Azure = 1, + // Nautical = 2, + // Continental = 3, + // Battleship = 4, + // Intrepid = 5, + // Uniform = 6, + // Classico = 7, + // Mediterranean = 8, + // Command = 9, + // Mariner = 10, + // Ruby = 11, + // Vintage = 12, + // Pristine = 13, + // Merchant = 14, + // Voyager = 15 + // }; + inline Void SetObjectTintIndex(Object object, int textureVariation) { return _i(0x971DA0055324D033, object, textureVariation); } // 0x971da0055324d033B323 + inline BOOL SetTintIndexClosestBuildingOfType(float x, float y, float z, float radius, Hash modelHash, int textureVariation) { return _i(0xF12E33034D887F66, x, y, z, radius, modelHash, textureVariation); } // 0xf12e33034d887f66B1103 + inline Void SetPropTintIndex(Any p0, Any p1) { return _i(0x31574B1B41268673, p0, p1); } // 0x31574b1b41268673B2189 + inline BOOL SetPropLightColor(Object object, BOOL p1, int r, int g, int b) { return _i(0x5F048334B4A4E774, object, p1, r, g, b); } // 0x5f048334b4a4e774B1493 + inline BOOL IsPropLightOverriden(Object object) { return _i(0xADF084FB8F075D06, object); } // 0xadf084fb8f075d06B1604 + inline Void SetObjectIsVisibleInMirrors(Object object, BOOL toggle) { return _i(0x3B2FD68DB5F8331C, object, toggle); } // 0x3b2fd68db5f8331cB757 + inline Void SetObjectSpeedBoostAmount(Object object, Any p1) { return _i(0x96EE0EBA0163DF80, object, p1); } // 0x96ee0eba0163df80B791 + inline Void SetObjectSpeedBoostDuration(Object object, float duration) { return _i(0xDF6CA0330F2E737B, object, duration); } // 0xdf6ca0330f2e737bB791 + // returns pickup hash. + // + // Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json + inline Hash ConvertOldPickupTypeToNew(Hash pickupHash) { return _i(0x5EAAD83F8CFB4575, pickupHash); } // 0x5eaad83f8cfb45750x6ae36192B323 + inline Void SetForceObjectThisFrame(float x, float y, float z, float p3) { return _i(0xF538081986E49E9D, x, y, z, p3); } // 0xf538081986e49e9d0x3da41c1aB323 + // is this like setting is as no longer needed? + inline Void OnlyCleanUpObjectWhenOutOfRange(Object object) { return _i(0xADBE4809F19F927A, object); } // 0xadbe4809f19f927a0x2048a7ddB323 + inline Void SetDisableCollisionsBetweenCarsAndCarParachute(Any p0) { return _i(0x8CAAB2BD3EA58BD4, p0); } // 0x8caab2bd3ea58bd4B1011 + inline Void SetProjectilesShouldExplodeOnContact(Entity entity, Any p1) { return _i(0x63ECF581BC70E363, entity, p1); } // 0x63ecf581bc70e363B1365 + // Activate the physics to: "xs_prop_arena_{flipper,wall,bollard,turntable,pit}" + inline Void SetDriveArticulatedJoint(Object object, BOOL toggle, int p2) { return _i(0x911024442F4898F0, object, toggle, p2); } // 0x911024442f4898f0B1604 + inline Void SetDriveArticulatedJointWithInflictor(Object object, BOOL toggle, int p2, Ped ped) { return _i(0xB20834A7DD3D8896, object, toggle, p2, ped); } // 0xb20834a7dd3d8896B1604 + inline Void SetObjectIsAPressurePlate(Object object, BOOL toggle) { return _i(0x734E1714D077DA9A, object, toggle); } // 0x734e1714d077da9aB1604 + inline Void SetWeaponImpactsApplyGreaterForce(Object object, BOOL p1) { return _i(0x1A6CBB06E2D0D79D, object, p1); } // 0x1a6cbb06e2d0d79dB1604 + inline BOOL GetIsArticulatedJointAtMinAngle(Object object, Any p1) { return _i(0x43C677F1E1158005, object, p1); } // 0x43c677f1e1158005B1604 + inline BOOL GetIsArticulatedJointAtMaxAngle(Any p0, Any p1) { return _i(0x3BD770D281982DB5, p0, p1); } // 0x3bd770d281982db5B1604 + inline Void SetIsObjectArticulated(Object object, BOOL toggle) { return _i(0x1C57C94A6446492A, object, toggle); } // 0x1c57c94a6446492aB1604 + inline Void SetIsObjectBall(Object object, BOOL toggle) { return _i(0xB5B7742424BD4445, object, toggle); } // 0xb5b7742424bd4445B1604 } namespace PAD { - // control: 0: PLAYER_CONTROL, 1: CAMERA_CONTROL, 2: FRONTEND_CONTROL - // For more info, see https://docs.fivem.net/docs/game-references/controls/ - inline BOOL IsControlEnabled(int control, int action) { return _i(0x1CEA6BFDF248E5D9, control, action); } // 0x1cea6bfdf248e5d90x9174af84B323 - // Returns whether a control is currently pressed. - // control: see IsControlEnabled - inline BOOL IsControlPressed(int control, int action) { return _i(0xF3A21BCD95725A4A, control, action); } // 0xf3a21bcd95725a4a0x517a4384B323 - // Returns whether a control is currently _not_ pressed. - // control: see IsControlEnabled - inline BOOL IsControlReleased(int control, int action) { return _i(0x648EE3E7F38877DD, control, action); } // 0x648ee3e7f38877dd0x1f91a06eB323 - // Returns whether a control was newly pressed since the last check. - // control: see IsControlEnabled - inline BOOL IsControlJustPressed(int control, int action) { return _i(0x580417101DDB492F, control, action); } // 0x580417101ddb492f0x4487f579B323 - // Returns whether a control was newly released since the last check. - // control: see IsControlEnabled - inline BOOL IsControlJustReleased(int control, int action) { return _i(0x50F940259D3841E6, control, action); } // 0x50f940259d3841e60x2314444bB323 - // control: see IsControlEnabled - inline int GetControlValue(int control, int action) { return _i(0xD95E79E8686D2C27, control, action); } // 0xd95e79e8686d2c270xc526f3c6B323 - // Returns the value of GetControlValue normalized (i.e. a real number value between -1 and 1) - // - // control: see IsControlEnabled - inline float GetControlNormal(int control, int action) { return _i(0xEC3C9B8D5327B563, control, action); } // 0xec3c9b8d5327b5630x5de226a5B323 - inline Void SetUseAdjustedMouseCoords(BOOL toggle) { return _i(0x5B73C77D9EB66E24, toggle); } // 0x5b73c77d9eb66e24B323 - // Seems to return values between -1 and 1 for controls like gas and steering. - // - // control: see IsControlEnabled - inline float GetControlUnboundNormal(int control, int action) { return _i(0x5B84D09CEC5209C5, control, action); } // 0x5b84d09cec5209c50xc49343bbB323 - // This is for simulating player input. - // value is a float value from 0 - 1 - // - // control: see IsControlEnabled - inline BOOL SetControlValueNextFrame(int control, int action, float value) { return _i(0xE8A25867FBA3B05E, control, action, value); } // 0xe8a25867fba3b05eB323 - // control: see IsControlEnabled - inline BOOL IsDisabledControlPressed(int control, int action) { return _i(0xE2587F8CBBD87B1D, control, action); } // 0xe2587f8cbbd87b1d0x32a93544B323 - // control: see IsControlEnabled - inline BOOL IsDisabledControlReleased(int control, int action) { return _i(0xFB6C4072E9A32E92, control, action); } // 0xfb6c4072e9a32e92B757 - // control: see IsControlEnabled - inline BOOL IsDisabledControlJustPressed(int control, int action) { return _i(0x91AEF906BCA88877, control, action); } // 0x91aef906bca888770xee6abd32B323 - // control: see IsControlEnabled - inline BOOL IsDisabledControlJustReleased(int control, int action) { return _i(0x305C8DCD79DA8B0F, control, action); } // 0x305c8dcd79da8b0f0xd6a679e1B323 - // control: see IsControlEnabled - inline float GetDisabledControlNormal(int control, int action) { return _i(0x11E65974A982637C, control, action); } // 0x11e65974a982637c0x66ff4faaB323 - // The "disabled" variant of GetControlUnboundNormal. - // - // control: see IsControlEnabled - inline float GetDisabledControlUnboundNormal(int control, int action) { return _i(0x4F8A26A890FD62FB, control, action); } // 0x4f8a26a890fd62fb0xf2a65a4cB323 - // Returns time in ms since last input. - // - // control: see IsControlEnabled - inline int GetControlHowLongAgo(int control) { return _i(0xD7D22F5592AED8BA, control); } // 0xd7d22f5592aed8ba0x0e8ef929B323 - // control: unused parameter - inline BOOL IsUsingKeyboardAndMouse(int control) { return _i(0xA571D46727E2B718, control); } // 0xa571d46727e2b718B323 - // control: see IsControlEnabled - inline BOOL IsUsingCursor(int control) { return _i(0x13337B38DB572509, control); } // 0x13337b38db572509B323 - inline BOOL SetCursorPosition(float x, float y) { return _i(0xFC695459D4D0E219, x, y); } // 0xfc695459d4d0e219B323 - // control: see IsControlEnabled - // - // Hardcoded to return false. - inline BOOL IsUsingRemotePlay(int control) { return _i(0x23F09EADC01449D6, control); } // 0x23f09eadc01449d6B323 - // control: unused parameter - inline BOOL HaveControlsChanged(int control) { return _i(0x6CD79468A1E595C6, control); } // 0x6cd79468a1e595c6B323 - // allowXOSwap appears to always be true. - // - // EG: - // GET_CONTROL_INSTRUCTIONAL_BUTTON (2, 201, 1) /*INPUT_FRONTEND_ACCEPT (e.g. Enter button)*/ - // GET_CONTROL_INSTRUCTIONAL_BUTTON (2, 202, 1) /*INPUT_FRONTEND_CANCEL (e.g. ESC button)*/ - // GET_CONTROL_INSTRUCTIONAL_BUTTON (2, 51, 1) /*INPUT_CONTEXT (e.g. E button)*/ - // - // gtaforums.com/topic/819070-c-draw-instructional-buttons-scaleform-movie/#entry1068197378 - // - // control: unused parameter - inline String GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(int control, int action, BOOL allowXOSwap) { return _i(0x0499D7B09FC9B407, control, action, allowXOSwap); } // 0x0499D7B09FC9B407 b323 - // control: unused parameter - inline String GET_CONTROL_GROUP_INSTRUCTIONAL_BUTTONS_STRING(int control, int controlGroup, BOOL allowXOSwap) { return _i(0x80C2FD58D720C801, control, controlGroup, allowXOSwap); } // 0x80C2FD58D720C801 b323 - // control: see IsControlEnabled - inline Void SetControlLightEffectColor(int control, int red, int green, int blue) { return _i(0x8290252FFF36ACB5, control, red, green, blue); } // 0x8290252fff36acb5B323 - // control: see IsControlEnabled - inline Void ClearControlLightEffect(int control) { return _i(0xCB0360EFEFB2580D, control); } // 0xcb0360efefb2580dB323 - // control: see IsControlEnabled - // duration in milliseconds - // frequency should range from about 10 (slow vibration) to 255 (very fast) - // - // example: - // SetControlShake(PLAYER_CONTROL, 100, 200); - inline Void SetControlShake(int control, int duration, int frequency) { return _i(0x48B3886C1358D0D5, control, duration, frequency); } // 0x48b3886c1358d0d5B323 - // Does nothing (it's a nullsub). - inline Void SetControlTriggerShake(int control, int leftDuration, int leftFrequency, int rightDuration, int rightFrequency) { return _i(0x14D29BB12D47F68C, control, leftDuration, leftFrequency, rightDuration, rightFrequency); } // 0x14d29bb12d47f68cB323 - // control: see IsControlEnabled - inline Void StopControlShake(int control) { return _i(0x38C16A305E8CDC8D, control); } // 0x38c16a305e8cdc8dB323 - // control: see IsControlEnabled - inline Void SetControlShakeSuppressedId(int control, int uniqueId) { return _i(0xF239400E16C23E08, control, uniqueId); } // 0xf239400e16c23e08B323 - // control: see IsControlEnabled - inline Void ClearControlShakeSuppressedId(int control) { return _i(0xA0CEFCEA390AAB9B, control); } // 0xa0cefcea390aab9bB323 - inline BOOL IsLookInverted() { return _i(0x77B612531280010D); } // 0x77b612531280010d0x313434b2B323 - // Used with IsLookInverted() and negates its affect. - // - // -- - // - // Not sure how the person above got that description, but here's an actual example: - // - // if (PAD::IsUsingKeyboardAndMouse(2)) { - // if (a_5) { - // if (PAD::IsLookInverted()) { - // a_3 *= -1; - // } - // if (PAD::IsMouseLookInverted()) { - // a_3 *= -1; - // } - // } - // } - inline BOOL IsMouseLookInverted() { return _i(0xE1615EC03B3BB4FD); } // 0xe1615ec03b3bb4fdB323 - // Hard-coded to return 3 if using KBM, otherwise same behavior as GetLocalPlayerGamepadAimState. - inline int GetLocalPlayerAimState() { return _i(0xBB41AFBBBC0A0287); } // 0xbb41afbbbc0a02870x81802053B323 - // Returns the local player's targeting mode. See PLAYER::SetPlayerTargetingMode. - inline int GetLocalPlayerGamepadAimState() { return _i(0x59B9A7AF4C95133C); } // 0x59b9a7af4c95133cB323 - inline BOOL GetIsUsingAlternateHandbrake() { return _i(0x25AAA32BDC98F2A3); } // 0x25aaa32bdc98f2a3B1365 - // Returns profile setting 225. - inline BOOL GetIsUsingAlternateDriveby() { return _i(0x0F70731BACCFBB96); } // 0x0f70731baccfbb960xc1afabd5B323 - // Returns profile setting 17. - inline BOOL GetAllowMovementWhileZoomed() { return _i(0xFC859E2374407556); } // 0xfc859e23744075560xc0823820B323 - inline Void SetPlayerpadShakesWhenControllerDisabled(BOOL toggle) { return _i(0x798FDEB5B1575088, toggle); } // 0x798fdeb5b15750880xa86bd91fB323 - // control: see IsControlEnabled - inline Void SetInputExclusive(int control, int action) { return _i(0xEDE476E5EE29EDB1, control, action); } // 0xede476e5ee29edb10x4e8e29e6B323 - // control: see IsControlEnabled - inline Void DisableControlAction(int control, int action, BOOL disableRelatedActions) { return _i(0xFE99B66D079CF6BC, control, action, disableRelatedActions); } // 0xfe99b66d079cf6bc0x3800c0dcB323 - // control: see IsControlEnabled - inline Void EnableControlAction(int control, int action, BOOL enableRelatedActions) { return _i(0x351220255D64C155, control, action, enableRelatedActions); } // 0x351220255d64c1550xd2753551B323 - // control: see IsControlEnabled - inline Void DisableAllControlActions(int control) { return _i(0x5F4B6931816E599B, control); } // 0x5f4b6931816e599b0x16753cf4B323 - // control: see IsControlEnabled - inline Void EnableAllControlActions(int control) { return _i(0xA5FFE9B05F199DE7, control); } // 0xa5ffe9b05f199de70xfc2f119fB323 - // Used in carsteal3 script with schemeName = "Carsteal4_spycar". - inline BOOL InitPcScriptedControls(String schemeName) { return _i(0x3D42B92563939375, schemeName); } // 0x3d42b925639393750xd2c80b2eB323 - // Same as InitPcScriptedControls - inline BOOL SwitchPcScriptedControls(String schemeName) { return _i(0x4683149ED1DDE7A1, schemeName); } // 0x4683149ed1dde7a10xbbfc9050B323 - inline Void ShutdownPcScriptedControls() { return _i(0x643ED62D5EA3BEBD); } // 0x643ed62d5ea3bebd0x42140ff9B323 - // control: see IsControlEnabled - inline Void AllowAlternativeScriptControlsLayout(int control) { return _i(0x7F4724035FDCA1DD, control); } // 0x7f4724035fdca1dd0x2cede6c5B323 + // control: 0: PLAYER_CONTROL, 1: CAMERA_CONTROL, 2: FRONTEND_CONTROL + // For more info, see https://docs.fivem.net/docs/game-references/controls/ + inline BOOL IsControlEnabled(int control, int action) { return _i(0x1CEA6BFDF248E5D9, control, action); } // 0x1cea6bfdf248e5d90x9174af84B323 + // Returns whether a control is currently pressed. + // control: see IsControlEnabled + inline BOOL IsControlPressed(int control, int action) { return _i(0xF3A21BCD95725A4A, control, action); } // 0xf3a21bcd95725a4a0x517a4384B323 + // Returns whether a control is currently _not_ pressed. + // control: see IsControlEnabled + inline BOOL IsControlReleased(int control, int action) { return _i(0x648EE3E7F38877DD, control, action); } // 0x648ee3e7f38877dd0x1f91a06eB323 + // Returns whether a control was newly pressed since the last check. + // control: see IsControlEnabled + inline BOOL IsControlJustPressed(int control, int action) { return _i(0x580417101DDB492F, control, action); } // 0x580417101ddb492f0x4487f579B323 + // Returns whether a control was newly released since the last check. + // control: see IsControlEnabled + inline BOOL IsControlJustReleased(int control, int action) { return _i(0x50F940259D3841E6, control, action); } // 0x50f940259d3841e60x2314444bB323 + // control: see IsControlEnabled + inline int GetControlValue(int control, int action) { return _i(0xD95E79E8686D2C27, control, action); } // 0xd95e79e8686d2c270xc526f3c6B323 + // Returns the value of GetControlValue normalized (i.e. a real number value between -1 and 1) + // + // control: see IsControlEnabled + inline float GetControlNormal(int control, int action) { return _i(0xEC3C9B8D5327B563, control, action); } // 0xec3c9b8d5327b5630x5de226a5B323 + inline Void SetUseAdjustedMouseCoords(BOOL toggle) { return _i(0x5B73C77D9EB66E24, toggle); } // 0x5b73c77d9eb66e24B323 + // Seems to return values between -1 and 1 for controls like gas and steering. + // + // control: see IsControlEnabled + inline float GetControlUnboundNormal(int control, int action) { return _i(0x5B84D09CEC5209C5, control, action); } // 0x5b84d09cec5209c50xc49343bbB323 + // This is for simulating player input. + // value is a float value from 0 - 1 + // + // control: see IsControlEnabled + inline BOOL SetControlValueNextFrame(int control, int action, float value) { return _i(0xE8A25867FBA3B05E, control, action, value); } // 0xe8a25867fba3b05eB323 + // control: see IsControlEnabled + inline BOOL IsDisabledControlPressed(int control, int action) { return _i(0xE2587F8CBBD87B1D, control, action); } // 0xe2587f8cbbd87b1d0x32a93544B323 + // control: see IsControlEnabled + inline BOOL IsDisabledControlReleased(int control, int action) { return _i(0xFB6C4072E9A32E92, control, action); } // 0xfb6c4072e9a32e92B757 + // control: see IsControlEnabled + inline BOOL IsDisabledControlJustPressed(int control, int action) { return _i(0x91AEF906BCA88877, control, action); } // 0x91aef906bca888770xee6abd32B323 + // control: see IsControlEnabled + inline BOOL IsDisabledControlJustReleased(int control, int action) { return _i(0x305C8DCD79DA8B0F, control, action); } // 0x305c8dcd79da8b0f0xd6a679e1B323 + // control: see IsControlEnabled + inline float GetDisabledControlNormal(int control, int action) { return _i(0x11E65974A982637C, control, action); } // 0x11e65974a982637c0x66ff4faaB323 + // The "disabled" variant of GetControlUnboundNormal. + // + // control: see IsControlEnabled + inline float GetDisabledControlUnboundNormal(int control, int action) { return _i(0x4F8A26A890FD62FB, control, action); } // 0x4f8a26a890fd62fb0xf2a65a4cB323 + // Returns time in ms since last input. + // + // control: see IsControlEnabled + inline int GetControlHowLongAgo(int control) { return _i(0xD7D22F5592AED8BA, control); } // 0xd7d22f5592aed8ba0x0e8ef929B323 + // control: unused parameter + inline BOOL IsUsingKeyboardAndMouse(int control) { return _i(0xA571D46727E2B718, control); } // 0xa571d46727e2b718B323 + // control: see IsControlEnabled + inline BOOL IsUsingCursor(int control) { return _i(0x13337B38DB572509, control); } // 0x13337b38db572509B323 + inline BOOL SetCursorPosition(float x, float y) { return _i(0xFC695459D4D0E219, x, y); } // 0xfc695459d4d0e219B323 + // control: see IsControlEnabled + // + // Hardcoded to return false. + inline BOOL IsUsingRemotePlay(int control) { return _i(0x23F09EADC01449D6, control); } // 0x23f09eadc01449d6B323 + // control: unused parameter + inline BOOL HaveControlsChanged(int control) { return _i(0x6CD79468A1E595C6, control); } // 0x6cd79468a1e595c6B323 + // allowXOSwap appears to always be true. + // + // EG: + // GET_CONTROL_INSTRUCTIONAL_BUTTON (2, 201, 1) /*INPUT_FRONTEND_ACCEPT (e.g. Enter button)*/ + // GET_CONTROL_INSTRUCTIONAL_BUTTON (2, 202, 1) /*INPUT_FRONTEND_CANCEL (e.g. ESC button)*/ + // GET_CONTROL_INSTRUCTIONAL_BUTTON (2, 51, 1) /*INPUT_CONTEXT (e.g. E button)*/ + // + // gtaforums.com/topic/819070-c-draw-instructional-buttons-scaleform-movie/#entry1068197378 + // + // control: unused parameter + inline String GetControlInstructionalButtonsString(int control, int action, BOOL allowXOSwap) { return _i(0x0499D7B09FC9B407, control, action, allowXOSwap); } // 0x0499d7b09fc9b407B323 + // control: unused parameter + inline String GetControlGroupInstructionalButtonsString(int control, int controlGroup, BOOL allowXOSwap) { return _i(0x80C2FD58D720C801, control, controlGroup, allowXOSwap); } // 0x80c2fd58d720c801B323 + // control: see IsControlEnabled + inline Void SetControlLightEffectColor(int control, int red, int green, int blue) { return _i(0x8290252FFF36ACB5, control, red, green, blue); } // 0x8290252fff36acb5B323 + // control: see IsControlEnabled + inline Void ClearControlLightEffect(int control) { return _i(0xCB0360EFEFB2580D, control); } // 0xcb0360efefb2580dB323 + // control: see IsControlEnabled + // duration in milliseconds + // frequency should range from about 10 (slow vibration) to 255 (very fast) + // + // example: + // SetControlShake(PLAYER_CONTROL, 100, 200); + inline Void SetControlShake(int control, int duration, int frequency) { return _i(0x48B3886C1358D0D5, control, duration, frequency); } // 0x48b3886c1358d0d5B323 + // Does nothing (it's a nullsub). + inline Void SetControlTriggerShake(int control, int leftDuration, int leftFrequency, int rightDuration, int rightFrequency) { return _i(0x14D29BB12D47F68C, control, leftDuration, leftFrequency, rightDuration, rightFrequency); } // 0x14d29bb12d47f68cB323 + // control: see IsControlEnabled + inline Void StopControlShake(int control) { return _i(0x38C16A305E8CDC8D, control); } // 0x38c16a305e8cdc8dB323 + // control: see IsControlEnabled + inline Void SetControlShakeSuppressedId(int control, int uniqueId) { return _i(0xF239400E16C23E08, control, uniqueId); } // 0xf239400e16c23e08B323 + // control: see IsControlEnabled + inline Void ClearControlShakeSuppressedId(int control) { return _i(0xA0CEFCEA390AAB9B, control); } // 0xa0cefcea390aab9bB323 + inline BOOL IsLookInverted() { return _i(0x77B612531280010D); } // 0x77b612531280010d0x313434b2B323 + // Used with IsLookInverted() and negates its affect. + // + // -- + // + // Not sure how the person above got that description, but here's an actual example: + // + // if (PAD::IsUsingKeyboardAndMouse(2)) { + // if (a_5) { + // if (PAD::IsLookInverted()) { + // a_3 *= -1; + // } + // if (PAD::IsMouseLookInverted()) { + // a_3 *= -1; + // } + // } + // } + inline BOOL IsMouseLookInverted() { return _i(0xE1615EC03B3BB4FD); } // 0xe1615ec03b3bb4fdB323 + // Hard-coded to return 3 if using KBM, otherwise same behavior as GetLocalPlayerGamepadAimState. + inline int GetLocalPlayerAimState() { return _i(0xBB41AFBBBC0A0287); } // 0xbb41afbbbc0a02870x81802053B323 + // Returns the local player's targeting mode. See PLAYER::SetPlayerTargetingMode. + inline int GetLocalPlayerGamepadAimState() { return _i(0x59B9A7AF4C95133C); } // 0x59b9a7af4c95133cB323 + inline BOOL GetIsUsingAlternateHandbrake() { return _i(0x25AAA32BDC98F2A3); } // 0x25aaa32bdc98f2a3B1365 + // Returns profile setting 225. + inline BOOL GetIsUsingAlternateDriveby() { return _i(0x0F70731BACCFBB96); } // 0x0f70731baccfbb960xc1afabd5B323 + // Returns profile setting 17. + inline BOOL GetAllowMovementWhileZoomed() { return _i(0xFC859E2374407556); } // 0xfc859e23744075560xc0823820B323 + inline Void SetPlayerpadShakesWhenControllerDisabled(BOOL toggle) { return _i(0x798FDEB5B1575088, toggle); } // 0x798fdeb5b15750880xa86bd91fB323 + // control: see IsControlEnabled + inline Void SetInputExclusive(int control, int action) { return _i(0xEDE476E5EE29EDB1, control, action); } // 0xede476e5ee29edb10x4e8e29e6B323 + // control: see IsControlEnabled + inline Void DisableControlAction(int control, int action, BOOL disableRelatedActions) { return _i(0xFE99B66D079CF6BC, control, action, disableRelatedActions); } // 0xfe99b66d079cf6bc0x3800c0dcB323 + // control: see IsControlEnabled + inline Void EnableControlAction(int control, int action, BOOL enableRelatedActions) { return _i(0x351220255D64C155, control, action, enableRelatedActions); } // 0x351220255d64c1550xd2753551B323 + // control: see IsControlEnabled + inline Void DisableAllControlActions(int control) { return _i(0x5F4B6931816E599B, control); } // 0x5f4b6931816e599b0x16753cf4B323 + // control: see IsControlEnabled + inline Void EnableAllControlActions(int control) { return _i(0xA5FFE9B05F199DE7, control); } // 0xa5ffe9b05f199de70xfc2f119fB323 + // Used in carsteal3 script with schemeName = "Carsteal4_spycar". + inline BOOL InitPcScriptedControls(String schemeName) { return _i(0x3D42B92563939375, schemeName); } // 0x3d42b925639393750xd2c80b2eB323 + // Same as InitPcScriptedControls + inline BOOL SwitchPcScriptedControls(String schemeName) { return _i(0x4683149ED1DDE7A1, schemeName); } // 0x4683149ed1dde7a10xbbfc9050B323 + inline Void ShutdownPcScriptedControls() { return _i(0x643ED62D5EA3BEBD); } // 0x643ed62d5ea3bebd0x42140ff9B323 + // control: see IsControlEnabled + inline Void AllowAlternativeScriptControlsLayout(int control) { return _i(0x7F4724035FDCA1DD, control); } // 0x7f4724035fdca1dd0x2cede6c5B323 } namespace PATHFIND { - // When nodeEnabled is set to false, all nodes in the area get disabled. - // `GetVehicleNodeIsSwitchedOff` returns true afterwards. - // If it's true, `GetVehicleNodeIsSwitchedOff` returns false. - inline Void SetRoadsInArea(float x1, float y1, float z1, float x2, float y2, float z2, BOOL nodeEnabled, BOOL unknown2) { return _i(0xBF1A602B5BA52FEE, x1, y1, z1, x2, y2, z2, nodeEnabled, unknown2); } // 0xbf1a602b5ba52fee0xebc7b918B323 - // unknown3 is related to `SEND_SCRIPT_WORLD_STATE_EVENT > CNetworkRoadNodeWorldStateData` in networked environments. - // See IsPointInAngledArea for the definition of an angled area. - inline Void SetRoadsInAngledArea(float x1, float y1, float z1, float x2, float y2, float z2, float width, BOOL unknown1, BOOL unknown2, BOOL unknown3) { return _i(0x1A5AA1208AF5DB59, x1, y1, z1, x2, y2, z2, width, unknown1, unknown2, unknown3); } // 0x1a5aa1208af5db590xbd088f4bB323 - inline Void SetPedPathsInArea(float x1, float y1, float z1, float x2, float y2, float z2, BOOL p6, Any p7) { return _i(0x34F060F4BF92E018, x1, y1, z1, x2, y2, z2, p6, p7); } // 0x34f060f4bf92e0180x2148ea84B323 - // Flags are: - // 1 = 1 = B02_IsFootpath - // 2 = 4 = !B15_InteractionUnk - // 4 = 0x20 = !B14_IsInterior - // 8 = 0x40 = !B07_IsWater - // 16 = 0x200 = B17_IsFlatGround - // When onGround == true outPosition is a position located on the nearest pavement. - // - // When a safe coord could not be found the result of a function is false and outPosition == Vector3.Zero. - // - // In the scripts these flags are used: 0, 14, 12, 16, 20, 21, 28. 0 is most commonly used, then 16. - // - // 16 works for me, 0 crashed the script. - inline BOOL GetSafeCoordForPed(float x, float y, float z, BOOL onGround, Vector3* outPosition, int flags) { return _i(0xB61C8E878A4199CA, x, y, z, onGround, outPosition, flags); } // 0xb61c8e878a4199ca0xb370270aB323 - // https://gtaforums.com/topic/843561-pathfind-node-types - inline BOOL GetClosestVehicleNode(float x, float y, float z, Vector3* outPosition, int nodeFlags, float p5, float p6) { return _i(0x240A18690AE96513, x, y, z, outPosition, nodeFlags, p5, p6); } // 0x240a18690ae965130x6f5f1e6cB323 - // Get the closest vehicle node to a given position. - inline BOOL GetClosestMajorVehicleNode(float x, float y, float z, Vector3* outPosition, float unknown1, float unknown2) { return _i(0x2EABE3B06F58C1BE, x, y, z, outPosition, unknown1, unknown2); } // 0x2eabe3b06f58c1be0x04b5f15bB323 - // p5, p6 and p7 seems to be about the same as p4, p5 and p6 for GetClosestVehicleNode. p6 and/or p7 has something to do with finding a node on the same path/road and same direction(at least for this native, something to do with the heading maybe). Edit this when you find out more. - // - // nodeType: 0 = main roads, 1 = any dry path, 3 = water - // p6 is always 3.0 - // p7 is always 0 - // - // gtaforums.com/topic/843561-pathfind-node-types - // - // Example of usage, moving vehicle to closest path/road: - // Vector3 coords = ENTITY::GetEntityCoords(playerVeh, true); - // Vector3 closestVehicleNodeCoords; - // float roadHeading; - // PATHFIND::GetClosestVehicleNodeWithHeading(coords.x, coords.y, coords.z, &closestVehicleNodeCoords, &roadHeading, 1, 3, 0); - // ENTITY::SetEntityHeading(playerVeh, roadHeading); - // ENTITY::SetEntityCoords(playerVeh, closestVehicleNodeCoords.x, closestVehicleNodeCoords.y, closestVehicleNodeCoords.z, 1, 0, 0, 1); - // VEHICLE::SetVehicleOnGroundProperly(playerVeh); - // - // ------------------------------------------------------------------ - // C# Example (ins1de) : https://pastebin.com/fxtMWAHD - inline BOOL GetClosestVehicleNodeWithHeading(float x, float y, float z, Vector3* outPosition, float* outHeading, int nodeType, float p6, float p7) { return _i(0xFF071FB798B803B0, x, y, z, outPosition, outHeading, nodeType, p6, p7); } // 0xff071fb798b803b00x8bd5759bB323 - inline BOOL GetNthClosestVehicleNode(float x, float y, float z, int nthClosest, Vector3* outPosition, int nodeFlags, float unknown1, float unknown2) { return _i(0xE50E52416CCF948B, x, y, z, nthClosest, outPosition, nodeFlags, unknown1, unknown2); } // 0xe50e52416ccf948b0xf125bfccB323 - // Returns the id. - inline int GetNthClosestVehicleNodeId(float x, float y, float z, int nth, int nodeFlags, float p5, float p6) { return _i(0x22D7275A79FE8215, x, y, z, nth, nodeFlags, p5, p6); } // 0x22d7275a79fe82150x3f358beaB323 - // Get the nth closest vehicle node and its heading. - inline BOOL GetNthClosestVehicleNodeWithHeading(float x, float y, float z, int nthClosest, Vector3* outPosition, float* outHeading, int* outNumLanes, int nodeFlags, float unknown3, float unknown4) { return _i(0x80CA6A8B6C094CC4, x, y, z, nthClosest, outPosition, outHeading, outNumLanes, nodeFlags, unknown3, unknown4); } // 0x80ca6a8b6c094cc40x7349c856B323 - inline int GetNthClosestVehicleNodeIdWithHeading(float x, float y, float z, int nthClosest, Vector3* outPosition, float* outHeading, int nodeFlags, float p7, float p8) { return _i(0x6448050E9C2A7207, x, y, z, nthClosest, outPosition, outHeading, nodeFlags, p7, p8); } // 0x6448050e9c2a72070xc1aeb88dB323 - // See gtaforums.com/topic/843561-pathfind-node-types for node type info. 0 = paved road only, 1 = any road, 3 = water - // - // p10 always equals 3.0 - // p11 always equals 0 - inline BOOL GetNthClosestVehicleNodeFavourDirection(float x, float y, float z, float desiredX, float desiredY, float desiredZ, int nthClosest, Vector3* outPosition, float* outHeading, int nodeFlags, float p10, float p11) { return _i(0x45905BE8654AE067, x, y, z, desiredX, desiredY, desiredZ, nthClosest, outPosition, outHeading, nodeFlags, p10, p11); } // 0x45905be8654ae0670x928a4decB323 - // Gets the density and flags of the closest node to the specified position. - // Density is a value between 0 and 15, indicating how busy the road is. - // Flags is a bit field. - inline BOOL GetVehicleNodeProperties(float x, float y, float z, int* density, int* flags) { return _i(0x0568566ACBB5DEDC, x, y, z, density, flags); } // 0x0568566acbb5dedc0xcc90110bB323 - // Returns true if the id is non zero. - inline BOOL IsVehicleNodeIdValid(int vehicleNodeId) { return _i(0x1EAF30FCFBF5AF74, vehicleNodeId); } // 0x1eaf30fcfbf5af740x57dfb1efB323 - // Calling this with an invalid node id, will crash the game. - // Note that IsVehicleNodeIdValid simply checks if nodeId is not zero. It does not actually ensure that the id is valid. - // Eg. IsVehicleNodeIdValid(1) will return true, but will crash when calling GetVehicleNodePosition(). - inline Void GetVehicleNodePosition(int nodeId, Vector3* outPosition) { return _i(0x703123E5E7D429C2, nodeId, outPosition); } // 0x703123e5e7d429c20xe38e252dB323 - // Returns false for nodes that aren't used for GPS routes. - // Example: - // Nodes in Fort Zancudo and LSIA are false - inline BOOL GetVehicleNodeIsGpsAllowed(int nodeID) { return _i(0xA2AE5C478B96E3B6, nodeID); } // 0xa2ae5c478b96e3b60xee4b1219B323 - // Returns true when the node is Offroad. Alleys, some dirt roads, and carparks return true. - // Normal roads where plenty of Peds spawn will return false - inline BOOL GetVehicleNodeIsSwitchedOff(int nodeID) { return _i(0x4F5070AA58F69279, nodeID); } // 0x4f5070aa58f692790x56737a3cB323 - // p1 seems to be always 1.0f in the scripts - inline BOOL GetClosestRoad(float x, float y, float z, float p3, int p4, Vector3* p5, Vector3* p6, Any* p7, Any* p8, float* p9, BOOL p10) { return _i(0x132F52BBA570FE92, x, y, z, p3, p4, p5, p6, p7, p8, p9, p10); } // 0x132f52bba570fe920x567b0e11B323 - inline BOOL LoadAllPathNodes(BOOL set) { return _i(0xC2AB6BFE34E92F8B, set); } // 0xc2ab6bfe34e92f8bB2802 - inline Void SetAllowStreamPrologueNodes(BOOL toggle) { return _i(0x228E5C6AD4D74BFD, toggle); } // 0x228e5c6ad4d74bfd0xd6a3b458B323 - // Activates Cayo Perico path nodes if passed `1`. GPS navigation will start working, maybe more stuff will change, not sure. It seems if you try to unload (pass `0`) when close to the island, your game might crash. - inline Void SetAllowStreamHeistIslandNodes(int type) { return _i(0xF74B1FFA4A15FBEA, type); } // 0xf74b1ffa4a15fbeaB2189 - inline BOOL AreNodesLoadedForArea(float x1, float y1, float x2, float y2) { return _i(0xF7B79A50B905A30D, x1, y1, x2, y2); } // 0xf7b79a50b905a30d0x86e80a17B323 - // Used internally for long range tasks - inline BOOL RequestPathNodesInAreaThisFrame(float x1, float y1, float x2, float y2) { return _i(0x07FB139B592FA687, x1, y1, x2, y2); } // 0x07fb139b592fa6870x2cda5012B323 - inline Void SetRoadsBackToOriginal(float p0, float p1, float p2, float p3, float p4, float p5, Any p6) { return _i(0x1EE7063B80FFC77C, p0, p1, p2, p3, p4, p5, p6); } // 0x1ee7063b80ffc77c0x86ac4a85B323 - // See IsPointInAngledArea for the definition of an angled area. - // bool p7 - always 1 - inline Void SetRoadsBackToOriginalInAngledArea(float x1, float y1, float z1, float x2, float y2, float z2, float width, Any p7) { return _i(0x0027501B9F3B407E, x1, y1, z1, x2, y2, z2, width, p7); } // 0x0027501b9f3b407e0x9db5d209B323 - inline Void SetAmbientPedRangeMultiplierThisFrame(float multiplier) { return _i(0x0B919E1FB47CC4E0, multiplier); } // 0x0b919e1fb47cc4e00x3c5085e4B323 - inline Void AdjustAmbientPedSpawnDensitiesThisFrame(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6) { return _i(0xAA76052DDA9BFC3E, p0, p1, p2, p3, p4, p5, p6); } // 0xaa76052dda9bfc3e0xd0f51299B323 - // p6 is always 0 - inline Void SetPedPathsBackToOriginal(float x1, float y1, float z1, float x2, float y2, float z2, Any p6) { return _i(0xE04B48F2CC926253, x1, y1, z1, x2, y2, z2, p6); } // 0xe04b48f2cc9262530x3f1abda4B323 - inline BOOL GetRandomVehicleNode(float x, float y, float z, float radius, BOOL p4, BOOL p5, BOOL p6, Vector3* outPosition, int* nodeId) { return _i(0x93E0DB8440B73A7D, x, y, z, radius, p4, p5, p6, outPosition, nodeId); } // 0x93e0db8440b73a7d0xad1476eaB323 - inline Vector3 GetSpawnCoordsForVehicleNode(int nodeAddress, float towardsCoorsX, float towardsCoorsY, float towardsCoorsZ, Vector3* centrePoint, float* heading) { return _i(0x809549AFC7AEC597, nodeAddress, towardsCoorsX, towardsCoorsY, towardsCoorsZ, centrePoint, heading); } // 0x809549afc7aec597B2944 - // Determines the name of the street which is the closest to the given coordinates. - // - // x,y,z - the coordinates of the street - // streetName - returns a hash to the name of the street the coords are on - // crossingRoad - if the coordinates are on an intersection, a hash to the name of the crossing road - // - // Note: the names are returned as hashes, the strings can be returned using the function HUD::GET_STREET_NAME_FROM_HASH_KEY. - inline Void GetStreetNameAtCoord(float x, float y, float z, Hash* streetName, Hash* crossingRoad) { return _i(0x2EB41072B4C1E4C0, x, y, z, streetName, crossingRoad); } // 0x2eb41072b4c1e4c00xdebeefcfB323 - // p3 is 0 in the only game script occurrence (trevor3) but 1 doesn't seem to make a difference - // - // distToNxJunction seems to be the distance in metres * 10.0f - // - // direction: - // 0 = This happens randomly during the drive for seemingly no reason but if you consider that this native is only used in trevor3, it seems to mean "Next frame, stop whatever's being said and tell the player the direction." - // 1 = Route is being calculated or the player is going in the wrong direction - // 2 = Please Proceed the Highlighted Route - // 3 = In (distToNxJunction) Turn Left - // 4 = In (distToNxJunction) Turn Right - // 5 = In (distToNxJunction) Keep Straight - // 6 = In (distToNxJunction) Turn Sharply To The Left - // 7 = In (distToNxJunction) Turn Sharply To The Right - // 8 = Route is being recalculated or the navmesh is confusing. This happens randomly during the drive but consistently at {2044.0358, 2996.6116, 44.9717} if you face towards the bar and the route needs you to turn right. In that particular case, it could be a bug with how the turn appears to be 270 deg. CCW instead of "right." Either way, this seems to be the engine saying "I don't know the route right now." - // - // return value set to 0 always - inline int GenerateDirectionsToCoord(float x, float y, float z, BOOL p3, int* direction, float* p5, float* distToNxJunction) { return _i(0xF90125F1F79ECDF8, x, y, z, p3, direction, p5, distToNxJunction); } // 0xf90125f1f79ecdf80xed35c094B323 - inline Void SetIgnoreNoGpsFlag(BOOL toggle) { return _i(0x72751156E7678833, toggle); } // 0x72751156e76788330xb72cf194B323 - // See: SetBlipRoute - inline Void SetIgnoreNoGpsFlagUntilFirstNormalNode(BOOL toggle) { return _i(0x1FC289A0C3FF470F, toggle); } // 0x1fc289a0c3ff470f0x90df7a4cB323 - inline Void SetGpsDisabledZone(float x1, float y1, float z1, float x2, float y2, float z3) { return _i(0xDC20483CD3DD5201, x1, y1, z1, x2, y2, z3); } // 0xdc20483cd3dd52010x720b8073B323 - inline int GetGpsBlipRouteLength() { return _i(0xBBB45C3CF5C8AA85); } // 0xbbb45c3cf5c8aa850x4b770634B323 - // p3 can be 0, 1 or 2. - inline BOOL GetPosAlongGpsTypeRoute(Vector3* result, BOOL p1, float p2, int p3) { return _i(0xF3162836C28F9DA5, result, p1, p2, p3); } // 0xf3162836c28f9da5B505 - inline BOOL GetGpsBlipRouteFound() { return _i(0x869DAACBBE9FA006); } // 0x869daacbbe9fa0060x286f82ccB323 - inline BOOL GetRoadBoundaryUsingHeading(float x, float y, float z, float heading, Vector3* outPosition) { return _i(0xA0F8A7517A273C05, x, y, z, heading, outPosition); } // 0xa0f8a7517a273c050x5e440ac7B463 - inline BOOL GetPositionBySideOfRoad(float x, float y, float z, int p3, Vector3* outPosition) { return _i(0x16F46FB18C8009E4, x, y, z, p3, outPosition); } // 0x16f46fb18c8009e40xf6422f9aB323 - // Gets a value indicating whether the specified position is on a road. - // The vehicle parameter is not implemented (ignored). - inline BOOL IsPointOnRoad(float x, float y, float z, Vehicle vehicle) { return _i(0x125BF4ABFC536B09, x, y, z, vehicle); } // 0x125bf4abfc536b090xcf198055B323 - // Gets the next zone that has been disabled using SetGpsDisabledZoneAtIndex. - inline int GetNextGpsDisabledZoneIndex() { return _i(0xD3A6A0EF48823A8C); } // 0xd3a6a0ef48823a8c0xbe92551fB323 - // Disables the GPS route displayed on the minimap while within a certain zone (area). When in a disabled zone and creating a waypoint, the GPS route is not shown on the minimap until you are outside of the zone. When disabled, the direct distance is shown on minimap opposed to distance to travel. Seems to only work before setting a waypoint. - // You can clear the disabled zone with ClearGpsDisabledZoneAtIndex. - // - // **Setting a waypoint at the same coordinate:** - // Disabled Zone: https://i.imgur.com/P9VUuxM.png - // Enabled Zone (normal): https://i.imgur.com/BPi24aw.png - inline Void SetGpsDisabledZoneAtIndex(float x1, float y1, float z1, float x2, float y2, float z2, int index) { return _i(0xD0BC1C6FB18EE154, x1, y1, z1, x2, y2, z2, index); } // 0xd0bc1c6fb18ee1540x98bdb311B323 - // Clears a disabled GPS route area from a certain index previously set using `SetGpsDisabledZoneAtIndex`. - inline Void ClearGpsDisabledZoneAtIndex(int index) { return _i(0x2801D0012266DF07, index); } // 0x2801d0012266df070x59090745B323 - inline Void AddNavmeshRequiredRegion(float x, float y, float radius) { return _i(0x387EAD7EE42F6685, x, y, radius); } // 0x387ead7ee42f66850x12b086eaB323 - inline Void RemoveNavmeshRequiredRegions() { return _i(0x916F0A3CDEC3445E); } // 0x916f0a3cdec3445e0x637bb680B323 - inline BOOL IsNavmeshRequiredRegionInUse() { return _i(0x705A844002B39DC0); } // 0x705a844002b39dc0B944 - // Set toggle true to disable navmesh. - // Set toggle false to enable navmesh. - inline Void DisableNavmeshInArea(float x1, float y1, float z1, float x2, float y2, float z2, BOOL toggle) { return _i(0x4C8872D8CDBE1B8B, x1, y1, z1, x2, y2, z2, toggle); } // 0x4c8872d8cdbe1b8b0x6e37f132B323 - inline BOOL AreAllNavmeshRegionsLoaded() { return _i(0x8415D95B194A3AEA); } // 0x8415d95b194a3aea0x34c4e789B323 - // Returns whether navmesh for the region is loaded. The region is a rectangular prism defined by it's top left deepest corner to it's bottom right shallowest corner. - // - // If you can re-word this so it makes more sense, please do. I'm horrible with words sometimes... - inline BOOL IsNavmeshLoadedInArea(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0xF813C7E63F9062A5, x1, y1, z1, x2, y2, z2); } // 0xf813c7e63f9062a50x4c2ba99eB323 - inline int GetNumNavmeshesExistingInArea(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x01708E8DD3FF8C65, x1, y1, z1, x2, y2, z2); } // 0x01708e8dd3ff8c650x76affbb5B323 - inline int AddNavmeshBlockingObject(float p0, float p1, float p2, float p3, float p4, float p5, float p6, BOOL p7, Any p8) { return _i(0xFCD5C8E06E502F5A, p0, p1, p2, p3, p4, p5, p6, p7, p8); } // 0xfcd5c8e06e502f5a0x2952ba56B323 - inline Void UpdateNavmeshBlockingObject(Any p0, float p1, float p2, float p3, float p4, float p5, float p6, float p7, Any p8) { return _i(0x109E99373F290687, p0, p1, p2, p3, p4, p5, p6, p7, p8); } // 0x109e99373f2906870x4e9776d0B323 - inline Void RemoveNavmeshBlockingObject(Any p0) { return _i(0x46399A7895957C0E, p0); } // 0x46399a7895957c0e0x098602b0B323 - inline BOOL DoesNavmeshBlockingObjectExist(Any p0) { return _i(0x0EAEB0DB4B132399, p0); } // 0x0eaeb0db4b1323990x4b67d7eeB323 - // Returns CGameWorldHeightMap's maximum Z value at specified point (grid node). - inline float GetApproxHeightForPoint(float x, float y) { return _i(0x29C24BFBED8AB8FB, x, y); } // 0x29c24bfbed8ab8fb0x3fe8c5a0B323 - // Returns CGameWorldHeightMap's maximum Z among all grid nodes that intersect with the specified rectangle. - inline float GetApproxHeightForArea(float x1, float y1, float x2, float y2) { return _i(0x8ABE8608576D9CE3, x1, y1, x2, y2); } // 0x8abe8608576d9ce30x3ed21c90B323 - // Returns CGameWorldHeightMap's minimum Z value at specified point (grid node). - inline float GetApproxFloorForPoint(float x, float y) { return _i(0x336511A34F2E5185, x, y); } // 0x336511a34f2e51850xa07c5b7dB323 - // Returns CGameWorldHeightMap's minimum Z among all grid nodes that intersect with the specified rectangle. - inline float GetApproxFloorForArea(float x1, float y1, float x2, float y2) { return _i(0x3599D741C9AC6310, x1, y1, x2, y2); } // 0x3599d741c9ac63100x76751dd4B323 - // Calculates the travel distance between a set of points. - // - // Doesn't seem to correlate with distance on gps sometimes. - // This function returns the value 100000.0 over long distances, seems to be a failure mode result, potentially occurring when not all path nodes are loaded into pathfind. - inline float CalculateTravelDistanceBetweenPoints(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0xADD95C7005C4A197, x1, y1, z1, x2, y2, z2); } // 0xadd95c7005c4a1970xb114489bB323 + // When nodeEnabled is set to false, all nodes in the area get disabled. + // `GetVehicleNodeIsSwitchedOff` returns true afterwards. + // If it's true, `GetVehicleNodeIsSwitchedOff` returns false. + inline Void SetRoadsInArea(float x1, float y1, float z1, float x2, float y2, float z2, BOOL nodeEnabled, BOOL unknown2) { return _i(0xBF1A602B5BA52FEE, x1, y1, z1, x2, y2, z2, nodeEnabled, unknown2); } // 0xbf1a602b5ba52fee0xebc7b918B323 + // unknown3 is related to `SEND_SCRIPT_WORLD_STATE_EVENT > CNetworkRoadNodeWorldStateData` in networked environments. + // See IsPointInAngledArea for the definition of an angled area. + inline Void SetRoadsInAngledArea(float x1, float y1, float z1, float x2, float y2, float z2, float width, BOOL unknown1, BOOL unknown2, BOOL unknown3) { return _i(0x1A5AA1208AF5DB59, x1, y1, z1, x2, y2, z2, width, unknown1, unknown2, unknown3); } // 0x1a5aa1208af5db590xbd088f4bB323 + inline Void SetPedPathsInArea(float x1, float y1, float z1, float x2, float y2, float z2, BOOL p6, Any p7) { return _i(0x34F060F4BF92E018, x1, y1, z1, x2, y2, z2, p6, p7); } // 0x34f060f4bf92e0180x2148ea84B323 + // Flags are: + // 1 = 1 = B02_IsFootpath + // 2 = 4 = !B15_InteractionUnk + // 4 = 0x20 = !B14_IsInterior + // 8 = 0x40 = !B07_IsWater + // 16 = 0x200 = B17_IsFlatGround + // When onGround == true outPosition is a position located on the nearest pavement. + // + // When a safe coord could not be found the result of a function is false and outPosition == Vector3.Zero. + // + // In the scripts these flags are used: 0, 14, 12, 16, 20, 21, 28. 0 is most commonly used, then 16. + // + // 16 works for me, 0 crashed the script. + inline BOOL GetSafeCoordForPed(float x, float y, float z, BOOL onGround, Vector3* outPosition, int flags) { return _i(0xB61C8E878A4199CA, x, y, z, onGround, outPosition, flags); } // 0xb61c8e878a4199ca0xb370270aB323 + // https://gtaforums.com/topic/843561-pathfind-node-types + inline BOOL GetClosestVehicleNode(float x, float y, float z, Vector3* outPosition, int nodeFlags, float p5, float p6) { return _i(0x240A18690AE96513, x, y, z, outPosition, nodeFlags, p5, p6); } // 0x240a18690ae965130x6f5f1e6cB323 + // Get the closest vehicle node to a given position. + inline BOOL GetClosestMajorVehicleNode(float x, float y, float z, Vector3* outPosition, float unknown1, float unknown2) { return _i(0x2EABE3B06F58C1BE, x, y, z, outPosition, unknown1, unknown2); } // 0x2eabe3b06f58c1be0x04b5f15bB323 + // p5, p6 and p7 seems to be about the same as p4, p5 and p6 for GetClosestVehicleNode. p6 and/or p7 has something to do with finding a node on the same path/road and same direction(at least for this native, something to do with the heading maybe). Edit this when you find out more. + // + // nodeType: 0 = main roads, 1 = any dry path, 3 = water + // p6 is always 3.0 + // p7 is always 0 + // + // gtaforums.com/topic/843561-pathfind-node-types + // + // Example of usage, moving vehicle to closest path/road: + // Vector3 coords = ENTITY::GetEntityCoords(playerVeh, true); + // Vector3 closestVehicleNodeCoords; + // float roadHeading; + // PATHFIND::GetClosestVehicleNodeWithHeading(coords.x, coords.y, coords.z, &closestVehicleNodeCoords, &roadHeading, 1, 3, 0); + // ENTITY::SetEntityHeading(playerVeh, roadHeading); + // ENTITY::SetEntityCoords(playerVeh, closestVehicleNodeCoords.x, closestVehicleNodeCoords.y, closestVehicleNodeCoords.z, 1, 0, 0, 1); + // VEHICLE::SetVehicleOnGroundProperly(playerVeh); + // + // ------------------------------------------------------------------ + // C# Example (ins1de) : https://pastebin.com/fxtMWAHD + inline BOOL GetClosestVehicleNodeWithHeading(float x, float y, float z, Vector3* outPosition, float* outHeading, int nodeType, float p6, float p7) { return _i(0xFF071FB798B803B0, x, y, z, outPosition, outHeading, nodeType, p6, p7); } // 0xff071fb798b803b00x8bd5759bB323 + inline BOOL GetNthClosestVehicleNode(float x, float y, float z, int nthClosest, Vector3* outPosition, int nodeFlags, float unknown1, float unknown2) { return _i(0xE50E52416CCF948B, x, y, z, nthClosest, outPosition, nodeFlags, unknown1, unknown2); } // 0xe50e52416ccf948b0xf125bfccB323 + // Returns the id. + inline int GetNthClosestVehicleNodeId(float x, float y, float z, int nth, int nodeFlags, float p5, float p6) { return _i(0x22D7275A79FE8215, x, y, z, nth, nodeFlags, p5, p6); } // 0x22d7275a79fe82150x3f358beaB323 + // Get the nth closest vehicle node and its heading. + inline BOOL GetNthClosestVehicleNodeWithHeading(float x, float y, float z, int nthClosest, Vector3* outPosition, float* outHeading, int* outNumLanes, int nodeFlags, float unknown3, float unknown4) { return _i(0x80CA6A8B6C094CC4, x, y, z, nthClosest, outPosition, outHeading, outNumLanes, nodeFlags, unknown3, unknown4); } // 0x80ca6a8b6c094cc40x7349c856B323 + inline int GetNthClosestVehicleNodeIdWithHeading(float x, float y, float z, int nthClosest, Vector3* outPosition, float* outHeading, int nodeFlags, float p7, float p8) { return _i(0x6448050E9C2A7207, x, y, z, nthClosest, outPosition, outHeading, nodeFlags, p7, p8); } // 0x6448050e9c2a72070xc1aeb88dB323 + // See gtaforums.com/topic/843561-pathfind-node-types for node type info. 0 = paved road only, 1 = any road, 3 = water + // + // p10 always equals 3.0 + // p11 always equals 0 + inline BOOL GetNthClosestVehicleNodeFavourDirection(float x, float y, float z, float desiredX, float desiredY, float desiredZ, int nthClosest, Vector3* outPosition, float* outHeading, int nodeFlags, float p10, float p11) { return _i(0x45905BE8654AE067, x, y, z, desiredX, desiredY, desiredZ, nthClosest, outPosition, outHeading, nodeFlags, p10, p11); } // 0x45905be8654ae0670x928a4decB323 + // Gets the density and flags of the closest node to the specified position. + // Density is a value between 0 and 15, indicating how busy the road is. + // Flags is a bit field. + inline BOOL GetVehicleNodeProperties(float x, float y, float z, int* density, int* flags) { return _i(0x0568566ACBB5DEDC, x, y, z, density, flags); } // 0x0568566acbb5dedc0xcc90110bB323 + // Returns true if the id is non zero. + inline BOOL IsVehicleNodeIdValid(int vehicleNodeId) { return _i(0x1EAF30FCFBF5AF74, vehicleNodeId); } // 0x1eaf30fcfbf5af740x57dfb1efB323 + // Calling this with an invalid node id, will crash the game. + // Note that IsVehicleNodeIdValid simply checks if nodeId is not zero. It does not actually ensure that the id is valid. + // Eg. IsVehicleNodeIdValid(1) will return true, but will crash when calling GetVehicleNodePosition(). + inline Void GetVehicleNodePosition(int nodeId, Vector3* outPosition) { return _i(0x703123E5E7D429C2, nodeId, outPosition); } // 0x703123e5e7d429c20xe38e252dB323 + // Returns false for nodes that aren't used for GPS routes. + // Example: + // Nodes in Fort Zancudo and LSIA are false + inline BOOL GetVehicleNodeIsGpsAllowed(int nodeID) { return _i(0xA2AE5C478B96E3B6, nodeID); } // 0xa2ae5c478b96e3b60xee4b1219B323 + // Returns true when the node is Offroad. Alleys, some dirt roads, and carparks return true. + // Normal roads where plenty of Peds spawn will return false + inline BOOL GetVehicleNodeIsSwitchedOff(int nodeID) { return _i(0x4F5070AA58F69279, nodeID); } // 0x4f5070aa58f692790x56737a3cB323 + // p1 seems to be always 1.0f in the scripts + inline BOOL GetClosestRoad(float x, float y, float z, float p3, int p4, Vector3* p5, Vector3* p6, Any* p7, Any* p8, float* p9, BOOL p10) { return _i(0x132F52BBA570FE92, x, y, z, p3, p4, p5, p6, p7, p8, p9, p10); } // 0x132f52bba570fe920x567b0e11B323 + inline BOOL LoadAllPathNodes(BOOL set) { return _i(0xC2AB6BFE34E92F8B, set); } // 0xc2ab6bfe34e92f8bB2802 + inline Void SetAllowStreamPrologueNodes(BOOL toggle) { return _i(0x228E5C6AD4D74BFD, toggle); } // 0x228e5c6ad4d74bfd0xd6a3b458B323 + // Activates Cayo Perico path nodes if passed `1`. GPS navigation will start working, maybe more stuff will change, not sure. It seems if you try to unload (pass `0`) when close to the island, your game might crash. + inline Void SetAllowStreamHeistIslandNodes(int type) { return _i(0xF74B1FFA4A15FBEA, type); } // 0xf74b1ffa4a15fbeaB2189 + inline BOOL AreNodesLoadedForArea(float x1, float y1, float x2, float y2) { return _i(0xF7B79A50B905A30D, x1, y1, x2, y2); } // 0xf7b79a50b905a30d0x86e80a17B323 + // Used internally for long range tasks + inline BOOL RequestPathNodesInAreaThisFrame(float x1, float y1, float x2, float y2) { return _i(0x07FB139B592FA687, x1, y1, x2, y2); } // 0x07fb139b592fa6870x2cda5012B323 + inline Void SetRoadsBackToOriginal(float p0, float p1, float p2, float p3, float p4, float p5, Any p6) { return _i(0x1EE7063B80FFC77C, p0, p1, p2, p3, p4, p5, p6); } // 0x1ee7063b80ffc77c0x86ac4a85B323 + // See IsPointInAngledArea for the definition of an angled area. + // BOOL p7 - always 1 + inline Void SetRoadsBackToOriginalInAngledArea(float x1, float y1, float z1, float x2, float y2, float z2, float width, Any p7) { return _i(0x0027501B9F3B407E, x1, y1, z1, x2, y2, z2, width, p7); } // 0x0027501b9f3b407e0x9db5d209B323 + inline Void SetAmbientPedRangeMultiplierThisFrame(float multiplier) { return _i(0x0B919E1FB47CC4E0, multiplier); } // 0x0b919e1fb47cc4e00x3c5085e4B323 + inline Void AdjustAmbientPedSpawnDensitiesThisFrame(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6) { return _i(0xAA76052DDA9BFC3E, p0, p1, p2, p3, p4, p5, p6); } // 0xaa76052dda9bfc3e0xd0f51299B323 + // p6 is always 0 + inline Void SetPedPathsBackToOriginal(float x1, float y1, float z1, float x2, float y2, float z2, Any p6) { return _i(0xE04B48F2CC926253, x1, y1, z1, x2, y2, z2, p6); } // 0xe04b48f2cc9262530x3f1abda4B323 + inline BOOL GetRandomVehicleNode(float x, float y, float z, float radius, BOOL p4, BOOL p5, BOOL p6, Vector3* outPosition, int* nodeId) { return _i(0x93E0DB8440B73A7D, x, y, z, radius, p4, p5, p6, outPosition, nodeId); } // 0x93e0db8440b73a7d0xad1476eaB323 + inline Vector3 GetSpawnCoordsForVehicleNode(int nodeAddress, float towardsCoorsX, float towardsCoorsY, float towardsCoorsZ, Vector3* centrePoint, float* heading) { return _i(0x809549AFC7AEC597, nodeAddress, towardsCoorsX, towardsCoorsY, towardsCoorsZ, centrePoint, heading); } // 0x809549afc7aec597B2944 + // Determines the name of the street which is the closest to the given coordinates. + // + // x,y,z - the coordinates of the street + // streetName - returns a hash to the name of the street the coords are on + // crossingRoad - if the coordinates are on an intersection, a hash to the name of the crossing road + // + // Note: the names are returned as hashes, the strings can be returned using the function HUD::GetStreetNameFromHashKey. + inline Void GetStreetNameAtCoord(float x, float y, float z, Hash* streetName, Hash* crossingRoad) { return _i(0x2EB41072B4C1E4C0, x, y, z, streetName, crossingRoad); } // 0x2eb41072b4c1e4c00xdebeefcfB323 + // p3 is 0 in the only game script occurrence (trevor3) but 1 doesn't seem to make a difference + // + // distToNxJunction seems to be the distance in metres * 10.0f + // + // direction: + // 0 = This happens randomly during the drive for seemingly no reason but if you consider that this native is only used in trevor3, it seems to mean "Next frame, stop whatever's being said and tell the player the direction." + // 1 = Route is being calculated or the player is going in the wrong direction + // 2 = Please Proceed the Highlighted Route + // 3 = In (distToNxJunction) Turn Left + // 4 = In (distToNxJunction) Turn Right + // 5 = In (distToNxJunction) Keep Straight + // 6 = In (distToNxJunction) Turn Sharply To The Left + // 7 = In (distToNxJunction) Turn Sharply To The Right + // 8 = Route is being recalculated or the navmesh is confusing. This happens randomly during the drive but consistently at {2044.0358, 2996.6116, 44.9717} if you face towards the bar and the route needs you to turn right. In that particular case, it could be a bug with how the turn appears to be 270 deg. CCW instead of "right." Either way, this seems to be the engine saying "I don't know the route right now." + // + // return value set to 0 always + inline int GenerateDirectionsToCoord(float x, float y, float z, BOOL p3, int* direction, float* p5, float* distToNxJunction) { return _i(0xF90125F1F79ECDF8, x, y, z, p3, direction, p5, distToNxJunction); } // 0xf90125f1f79ecdf80xed35c094B323 + inline Void SetIgnoreNoGpsFlag(BOOL toggle) { return _i(0x72751156E7678833, toggle); } // 0x72751156e76788330xb72cf194B323 + // See: SetBlipRoute + inline Void SetIgnoreNoGpsFlagUntilFirstNormalNode(BOOL toggle) { return _i(0x1FC289A0C3FF470F, toggle); } // 0x1fc289a0c3ff470f0x90df7a4cB323 + inline Void SetGpsDisabledZone(float x1, float y1, float z1, float x2, float y2, float z3) { return _i(0xDC20483CD3DD5201, x1, y1, z1, x2, y2, z3); } // 0xdc20483cd3dd52010x720b8073B323 + inline int GetGpsBlipRouteLength() { return _i(0xBBB45C3CF5C8AA85); } // 0xbbb45c3cf5c8aa850x4b770634B323 + // p3 can be 0, 1 or 2. + inline BOOL GetPosAlongGpsTypeRoute(Vector3* result, BOOL p1, float p2, int p3) { return _i(0xF3162836C28F9DA5, result, p1, p2, p3); } // 0xf3162836c28f9da5B505 + inline BOOL GetGpsBlipRouteFound() { return _i(0x869DAACBBE9FA006); } // 0x869daacbbe9fa0060x286f82ccB323 + inline BOOL GetRoadBoundaryUsingHeading(float x, float y, float z, float heading, Vector3* outPosition) { return _i(0xA0F8A7517A273C05, x, y, z, heading, outPosition); } // 0xa0f8a7517a273c050x5e440ac7B463 + inline BOOL GetPositionBySideOfRoad(float x, float y, float z, int p3, Vector3* outPosition) { return _i(0x16F46FB18C8009E4, x, y, z, p3, outPosition); } // 0x16f46fb18c8009e40xf6422f9aB323 + // Gets a value indicating whether the specified position is on a road. + // The vehicle parameter is not implemented (ignored). + inline BOOL IsPointOnRoad(float x, float y, float z, Vehicle vehicle) { return _i(0x125BF4ABFC536B09, x, y, z, vehicle); } // 0x125bf4abfc536b090xcf198055B323 + // Gets the next zone that has been disabled using SetGpsDisabledZoneAtIndex. + inline int GetNextGpsDisabledZoneIndex() { return _i(0xD3A6A0EF48823A8C); } // 0xd3a6a0ef48823a8c0xbe92551fB323 + // Disables the GPS route displayed on the minimap while within a certain zone (area). When in a disabled zone and creating a waypoint, the GPS route is not shown on the minimap until you are outside of the zone. When disabled, the direct distance is shown on minimap opposed to distance to travel. Seems to only work before setting a waypoint. + // You can clear the disabled zone with ClearGpsDisabledZoneAtIndex. + // + // **Setting a waypoint at the same coordinate:** + // Disabled Zone: https://i.imgur.com/P9VUuxM.png + // Enabled Zone (normal): https://i.imgur.com/BPi24aw.png + inline Void SetGpsDisabledZoneAtIndex(float x1, float y1, float z1, float x2, float y2, float z2, int index) { return _i(0xD0BC1C6FB18EE154, x1, y1, z1, x2, y2, z2, index); } // 0xd0bc1c6fb18ee1540x98bdb311B323 + // Clears a disabled GPS route area from a certain index previously set using `SetGpsDisabledZoneAtIndex`. + inline Void ClearGpsDisabledZoneAtIndex(int index) { return _i(0x2801D0012266DF07, index); } // 0x2801d0012266df070x59090745B323 + inline Void AddNavmeshRequiredRegion(float x, float y, float radius) { return _i(0x387EAD7EE42F6685, x, y, radius); } // 0x387ead7ee42f66850x12b086eaB323 + inline Void RemoveNavmeshRequiredRegions() { return _i(0x916F0A3CDEC3445E); } // 0x916f0a3cdec3445e0x637bb680B323 + inline BOOL IsNavmeshRequiredRegionInUse() { return _i(0x705A844002B39DC0); } // 0x705a844002b39dc0B944 + // Set toggle true to disable navmesh. + // Set toggle false to enable navmesh. + inline Void DisableNavmeshInArea(float x1, float y1, float z1, float x2, float y2, float z2, BOOL toggle) { return _i(0x4C8872D8CDBE1B8B, x1, y1, z1, x2, y2, z2, toggle); } // 0x4c8872d8cdbe1b8b0x6e37f132B323 + inline BOOL AreAllNavmeshRegionsLoaded() { return _i(0x8415D95B194A3AEA); } // 0x8415d95b194a3aea0x34c4e789B323 + // Returns whether navmesh for the region is loaded. The region is a rectangular prism defined by it's top left deepest corner to it's bottom right shallowest corner. + // + // If you can re-word this so it makes more sense, please do. I'm horrible with words sometimes... + inline BOOL IsNavmeshLoadedInArea(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0xF813C7E63F9062A5, x1, y1, z1, x2, y2, z2); } // 0xf813c7e63f9062a50x4c2ba99eB323 + inline int GetNumNavmeshesExistingInArea(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x01708E8DD3FF8C65, x1, y1, z1, x2, y2, z2); } // 0x01708e8dd3ff8c650x76affbb5B323 + inline int AddNavmeshBlockingObject(float p0, float p1, float p2, float p3, float p4, float p5, float p6, BOOL p7, Any p8) { return _i(0xFCD5C8E06E502F5A, p0, p1, p2, p3, p4, p5, p6, p7, p8); } // 0xfcd5c8e06e502f5a0x2952ba56B323 + inline Void UpdateNavmeshBlockingObject(Any p0, float p1, float p2, float p3, float p4, float p5, float p6, float p7, Any p8) { return _i(0x109E99373F290687, p0, p1, p2, p3, p4, p5, p6, p7, p8); } // 0x109e99373f2906870x4e9776d0B323 + inline Void RemoveNavmeshBlockingObject(Any p0) { return _i(0x46399A7895957C0E, p0); } // 0x46399a7895957c0e0x098602b0B323 + inline BOOL DoesNavmeshBlockingObjectExist(Any p0) { return _i(0x0EAEB0DB4B132399, p0); } // 0x0eaeb0db4b1323990x4b67d7eeB323 + // Returns CGameWorldHeightMap's maximum Z value at specified point (grid node). + inline float GetApproxHeightForPoint(float x, float y) { return _i(0x29C24BFBED8AB8FB, x, y); } // 0x29c24bfbed8ab8fb0x3fe8c5a0B323 + // Returns CGameWorldHeightMap's maximum Z among all grid nodes that intersect with the specified rectangle. + inline float GetApproxHeightForArea(float x1, float y1, float x2, float y2) { return _i(0x8ABE8608576D9CE3, x1, y1, x2, y2); } // 0x8abe8608576d9ce30x3ed21c90B323 + // Returns CGameWorldHeightMap's minimum Z value at specified point (grid node). + inline float GetApproxFloorForPoint(float x, float y) { return _i(0x336511A34F2E5185, x, y); } // 0x336511a34f2e51850xa07c5b7dB323 + // Returns CGameWorldHeightMap's minimum Z among all grid nodes that intersect with the specified rectangle. + inline float GetApproxFloorForArea(float x1, float y1, float x2, float y2) { return _i(0x3599D741C9AC6310, x1, y1, x2, y2); } // 0x3599d741c9ac63100x76751dd4B323 + // Calculates the travel distance between a set of points. + // + // Doesn't seem to correlate with distance on gps sometimes. + // This function returns the value 100000.0 over long distances, seems to be a failure mode result, potentially occurring when not all path nodes are loaded into pathfind. + inline float CalculateTravelDistanceBetweenPoints(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0xADD95C7005C4A197, x1, y1, z1, x2, y2, z2); } // 0xadd95c7005c4a1970xb114489bB323 } namespace PED { - // https://alloc8or.re/gta5/doc/enums/ePedType.txt - // - // Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json - inline Ped CreatePed(int pedType, Hash modelHash, float x, float y, float z, float heading, BOOL isNetwork, BOOL bScriptHostPed) { return _i(0xD49F9B0955C367DE, pedType, modelHash, x, y, z, heading, isNetwork, bScriptHostPed); } // 0xd49f9b0955c367de0x0389ef71B323 - // Deletes the specified ped, then sets the handle pointed to by the pointer to NULL. - inline Void DeletePed(Ped* ped) { return _i(0x9614299DCB53E54B, ped); } // 0x9614299dcb53e54b0x13efb9a0B323 - inline Ped ClonePed(Ped ped, BOOL isNetwork, BOOL bScriptHostPed, BOOL copyHeadBlendFlag) { return _i(0xEF29A16337FACADB, ped, isNetwork, bScriptHostPed, copyHeadBlendFlag); } // 0xef29a16337facadb0x8c8a8d6eB323 - inline Ped ClonePedAlt(Ped ped, BOOL isNetwork, BOOL bScriptHostPed, BOOL copyHeadBlendFlag, BOOL p4) { return _i(0x668FD40BCBA5DE48, ped, isNetwork, bScriptHostPed, copyHeadBlendFlag, p4); } // 0x668fd40bcba5de48B463 - // Copies ped's components and props to targetPed. - inline Void ClonePedToTarget(Ped ped, Ped targetPed) { return _i(0xE952D6431689AD9A, ped, targetPed); } // 0xe952d6431689ad9a0xfc70eec7B323 - inline Void ClonePedToTargetAlt(Ped ped, Ped targetPed, BOOL p2) { return _i(0x148B08C2D2ACB884, ped, targetPed, p2); } // 0x148b08c2d2acb884B463 - // Gets a value indicating whether the specified ped is in the specified vehicle. - // - // If 'atGetIn' is false, the function will not return true until the ped is sitting in the vehicle and is about to close the door. If it's true, the function returns true the moment the ped starts to get onto the seat (after opening the door). Eg. if false, and the ped is getting into a submersible, the function will not return true until the ped has descended down into the submersible and gotten into the seat, while if it's true, it'll return true the moment the hatch has been opened and the ped is about to descend into the submersible. - inline BOOL IsPedInVehicle(Ped ped, Vehicle vehicle, BOOL atGetIn) { return _i(0xA3EE4A07279BB9DB, ped, vehicle, atGetIn); } // 0xa3ee4a07279bb9db0x7da6bc83B323 - inline BOOL IsPedInModel(Ped ped, Hash modelHash) { return _i(0x796D90EFB19AA332, ped, modelHash); } // 0x796d90efb19aa3320xa6438d4bB323 - // Gets a value indicating whether the specified ped is in any vehicle. - // - // If 'atGetIn' is false, the function will not return true until the ped is sitting in the vehicle and is about to close the door. If it's true, the function returns true the moment the ped starts to get onto the seat (after opening the door). Eg. if false, and the ped is getting into a submersible, the function will not return true until the ped has descended down into the submersible and gotten into the seat, while if it's true, it'll return true the moment the hatch has been opened and the ped is about to descend into the submersible. - inline BOOL IsPedInAnyVehicle(Ped ped, BOOL atGetIn) { return _i(0x997ABD671D25CA0B, ped, atGetIn); } // 0x997abd671d25ca0b0x3b0171eeB323 - // xyz - relative to the world origin. - inline BOOL IsCopPedInArea3d(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x16EC4839969F9F5E, x1, y1, z1, x2, y2, z2); } // 0x16ec4839969f9f5e0xb98db96bB323 - // Gets a value indicating whether this ped's health is below its injured threshold. - // - // The default threshold is 100. - inline BOOL IsPedInjured(Ped ped) { return _i(0x84A2DD9AC37C35C1, ped); } // 0x84a2dd9ac37c35c10x2530a087B323 - // Returns whether the specified ped is hurt. - inline BOOL IsPedHurt(Ped ped) { return _i(0x5983BB449D7FDB12, ped); } // 0x5983bb449d7fdb120x69dfa0afB323 - // Gets a value indicating whether this ped's health is below its fatally injured threshold. The default threshold is 100. - // If the handle is invalid, the function returns true. - inline BOOL IsPedFatallyInjured(Ped ped) { return _i(0xD839450756ED5A80, ped); } // 0xd839450756ed5a800xbada0093B323 - // Seems to consistently return true if the ped is dead. - // - // p1 is always passed 1 in the scripts. - // - // I suggest to remove "OR_DYING" part, because it does not detect dying phase. - // - // That's what the devs call it, cry about it. - // - // lol - inline BOOL IsPedDeadOrDying(Ped ped, BOOL p1) { return _i(0x3317DEDB88C95038, ped, p1); } // 0x3317dedb88c950380xcbdb7739B323 - inline BOOL IsConversationPedDead(Ped ped) { return _i(0xE0A0AEC214B1FABA, ped); } // 0xe0a0aec214b1faba0x1fa39efeB323 - inline BOOL IsPedAimingFromCover(Ped ped) { return _i(0x3998B1276A3300E5, ped); } // 0x3998b1276a3300e50xdebab2afB323 - // Returns whether the specified ped is reloading. - inline BOOL IsPedReloading(Ped ped) { return _i(0x24B100C68C645951, ped); } // 0x24b100c68c6459510x961e1745B323 - // Returns true if the given ped has a valid pointer to CPlayerInfo in its CPed class. That's all. - inline BOOL IsPedAPlayer(Ped ped) { return _i(0x12534C348C6CB68B, ped); } // 0x12534c348c6cb68b0x404794caB323 - // pedType: see CreatePed - // - // Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json - inline Ped CreatePedInsideVehicle(Vehicle vehicle, int pedType, Hash modelHash, int seat, BOOL isNetwork, BOOL bScriptHostPed) { return _i(0x7DD959874C1FD534, vehicle, pedType, modelHash, seat, isNetwork, bScriptHostPed); } // 0x7dd959874c1fd5340x3000f092B323 - inline Void SetPedDesiredHeading(Ped ped, float heading) { return _i(0xAA5A7ECE2AA8FE70, ped, heading); } // 0xaa5a7ece2aa8fe700x961458f9B323 - inline Void ForceAllHeadingValuesToAlign(Ped ped) { return _i(0xFF287323B0E2C69A, ped); } // 0xff287323b0e2c69a0x290421beB323 - // angle is ped's view cone - inline BOOL IsPedFacingPed(Ped ped, Ped otherPed, float angle) { return _i(0xD71649DB0A545AA3, ped, otherPed, angle); } // 0xd71649db0a545aa30x0b775838B323 - // Notes: The function only returns true while the ped is: - // A.) Swinging a random melee attack (including pistol-whipping) - // - // B.) Reacting to being hit by a melee attack (including pistol-whipping) - // - // C.) Is locked-on to an enemy (arms up, strafing/skipping in the default fighting-stance, ready to dodge+counter). - // - // You don't have to be holding the melee-targetting button to be in this stance; you stay in it by default for a few seconds after swinging at someone. If you do a sprinting punch, it returns true for the duration of the punch animation and then returns false again, even if you've punched and made-angry many peds - inline BOOL IsPedInMeleeCombat(Ped ped) { return _i(0x4E209B2C1EAD5159, ped); } // 0x4e209b2c1ead51590xfd7814a5B323 - // Returns true if the ped doesn't do any movement. If the ped is being pushed forwards by using ApplyForceToEntity for example, the function returns false. - inline BOOL IsPedStopped(Ped ped) { return _i(0x530944F6F4B8A214, ped); } // 0x530944f6f4b8a2140xa0dc0b87B323 - inline BOOL IsPedShootingInArea(Ped ped, float x1, float y1, float z1, float x2, float y2, float z2, BOOL p7, BOOL p8) { return _i(0x7E9DFE24AC1E58EF, ped, x1, y1, z1, x2, y2, z2, p7, p8); } // 0x7e9dfe24ac1e58ef0x741bf04fB323 - inline BOOL IsAnyPedShootingInArea(float x1, float y1, float z1, float x2, float y2, float z2, BOOL p6, BOOL p7) { return _i(0xA0D3D71EA1086C55, x1, y1, z1, x2, y2, z2, p6, p7); } // 0xa0d3d71ea1086c550x91833867B323 - // Returns whether the specified ped is shooting. - inline BOOL IsPedShooting(Ped ped) { return _i(0x34616828CD07F1A1, ped); } // 0x34616828cd07f1a10xe7c3405eB323 - // accuracy = 0-100, 100 being perfectly accurate - inline Void SetPedAccuracy(Ped ped, int accuracy) { return _i(0x7AEFB85C1D49DEB6, ped, accuracy); } // 0x7aefb85c1d49deb60x6c17122eB323 - inline int GetPedAccuracy(Ped ped) { return _i(0x37F4AD56ECBC0CD6, ped); } // 0x37f4ad56ecbc0cd60x0a2a0aa0B323 - inline Void SetAmbientLawPedAccuracyModifier(float multiplier) { return _i(0x87DDEB611B329A9C, multiplier); } // 0x87ddeb611b329a9cB1103 - inline BOOL IsPedModel(Ped ped, Hash modelHash) { return _i(0xC9D55B1A358A5BF7, ped, modelHash); } // 0xc9d55b1a358a5bf70x5f1ddfcbB323 - // Forces the ped to fall back and kills it. - // - // It doesn't really explode the ped's head but it kills the ped - inline Void ExplodePedHead(Ped ped, Hash weaponHash) { return _i(0x2D05CED3A38D0F3A, ped, weaponHash); } // 0x2d05ced3a38d0f3a0x05cc1380B323 - // Judging purely from a quick disassembly, if the ped is in a vehicle, the ped will be deleted immediately. If not, it'll be marked as no longer needed. - very elegant.. - inline Void RemovePedElegantly(Ped* ped) { return _i(0xAC6D445B994DF95E, ped); } // 0xac6d445b994df95e0x4ffb8c6cB323 - // Same as SetPedArmour, but ADDS 'amount' to the armor the Ped already has. - inline Void AddArmourToPed(Ped ped, int amount) { return _i(0x5BA652A0CD14DF2F, ped, amount); } // 0x5ba652a0cd14df2f0xf686b26eB323 - // Sets the armor of the specified ped. - // - // ped: The Ped to set the armor of. - // amount: A value between 0 and 100 indicating the value to set the Ped's armor to. - inline Void SetPedArmour(Ped ped, int amount) { return _i(0xCEA04D83135264CC, ped, amount); } // 0xcea04d83135264cc0x4e3a0cc4B323 - // Ped: The ped to warp. - // vehicle: The vehicle to warp the ped into. - // Seat_Index: [-1 is driver seat, -2 first free passenger seat] - // - // Moreinfo of Seat Index - // DriverSeat = -1 - // Passenger = 0 - // Left Rear = 1 - // RightRear = 2 - inline Void SetPedIntoVehicle(Ped ped, Vehicle vehicle, int seatIndex) { return _i(0xF75B0D629E1C063D, ped, vehicle, seatIndex); } // 0xf75b0d629e1c063d0x07500c79B323 - inline Void SetPedAllowVehiclesOverride(Ped ped, BOOL toggle) { return _i(0x3C028C636A414ED9, ped, toggle); } // 0x3c028c636a414ed90x58a80bd5B323 - inline BOOL CanCreateRandomPed(BOOL p0) { return _i(0x3E8349C08E4B82E4, p0); } // 0x3e8349c08e4b82e40xf9abe88fB323 - // vb.net - // Dim ped_handle As Integer - // With Game.Player.Character - // Dim pos As Vector3 = .Position + .ForwardVector * 3 - // ped_handle = Native.Function.Call(Of Integer)(Hash.CreateRandomPed, pos.X, pos.Y, pos.Z) - // End With - // - // Creates a Ped at the specified location, returns the Ped Handle. - // Ped will not act until SetPedAsNoLongerNeeded is called. - inline Ped CreateRandomPed(float posX, float posY, float posZ) { return _i(0xB4AC7D0CF06BFE8F, posX, posY, posZ); } // 0xb4ac7d0cf06bfe8f0x5a949543B323 - inline Ped CreateRandomPedAsDriver(Vehicle vehicle, BOOL returnHandle) { return _i(0x9B62392B474F44A0, vehicle, returnHandle); } // 0x9b62392b474f44a00xb927ce9aB323 - inline BOOL CanCreateRandomDriver() { return _i(0xB8EB95E5B4E56978); } // 0xb8eb95e5b4e569780x99861609B323 - inline BOOL CanCreateRandomBikeRider() { return _i(0xEACEEDA81751915C); } // 0xeaceeda81751915c0x7018be31B323 - inline Void SetPedMoveAnimsBlendOut(Ped ped) { return _i(0x9E8C908F41584ECD, ped); } // 0x9e8c908f41584ecd0x20e01957B323 - inline Void SetPedCanBeDraggedOut(Ped ped, BOOL toggle) { return _i(0xC1670E958EEE24E5, ped, toggle); } // 0xc1670e958eee24e50xaa7f1131B323 - // ntoggle was always false except in one instance (b678). - // - // The one time this is set to true seems to do with when you fail the mission. - inline Void SetPedAllowHurtCombatForAllMissionPeds(BOOL toggle) { return _i(0xF2BEBCDFAFDAA19E, toggle); } // 0xf2bebcdfafdaa19e0x6cd58238B323 - // Returns true/false if the ped is/isn't male. - inline BOOL IsPedMale(Ped ped) { return _i(0x6D9F5FAA7488BA46, ped); } // 0x6d9f5faa7488ba460x90950455B323 - // Returns true/false if the ped is/isn't humanoid. - inline BOOL IsPedHuman(Ped ped) { return _i(0xB980061DA992779D, ped); } // 0xb980061da992779d0x194bb7b0B323 - // Gets the vehicle the specified Ped is in. Returns 0 if the ped is/was not in a vehicle. - inline Vehicle GetVehiclePedIsIn(Ped ped, BOOL includeEntering) { return _i(0x9A9112A0FE9A4713, ped, includeEntering); } // 0x9a9112a0fe9a47130xafe92319B323 - // Resets the value for the last vehicle driven by the Ped. - inline Void ResetPedLastVehicle(Ped ped) { return _i(0xBB8DE8CF6A8DD8BB, ped); } // 0xbb8de8cf6a8dd8bb0x5e3b5942B323 - inline Void SetPedDensityMultiplierThisFrame(float multiplier) { return _i(0x95E3D6257B166CF2, multiplier); } // 0x95e3d6257b166cf20x039c82bbB323 - inline Void SetScenarioPedDensityMultiplierThisFrame(float p0, float p1) { return _i(0x7A556143A1C03898, p0, p1); } // 0x7a556143a1c038980x2909abf0B323 - inline Void SuppressAmbientPedAggressiveCleanupThisFrame() { return _i(0x5A7F62FDA59759BD); } // 0x5a7f62fda59759bd0xb48c0c04B323 - inline Void SetScriptedConversionCoordThisFrame(float x, float y, float z) { return _i(0x5086C7843552CF85, x, y, z); } // 0x5086c7843552cf850x25ea2aa5B323 - // The distance between these points, is the diagonal of a box (remember it's 3D). - inline Void SetPedNonCreationArea(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0xEE01041D559983EA, x1, y1, z1, x2, y2, z2); } // 0xee01041d559983ea0x7a97283fB323 - inline Void ClearPedNonCreationArea() { return _i(0x2E05208086BA0651); } // 0x2e05208086ba06510x6f7043a3B323 - inline Void InstantlyFillPedPopulation() { return _i(0x4759CC730F947C81); } // 0x4759cc730f947c810x8c555addB323 - // Same function call as PED::GetMount, aka just returns 0 - inline BOOL IsPedOnMount(Ped ped) { return _i(0x460BC76A0E10655E, ped); } // 0x460bc76a0e10655e0x43103006B323 - // - // Function just returns 0 - // Void __fastcall ped__get_mount(NativeContext *a1) - // { - // NativeContext *v1; // rbx@1 - // - // v1 = a1; - // GetAddressOfPedFromScriptHandle(a1->Args->Arg1); - // v1->Returns->Item1= 0; - // } - inline Ped GetMount(Ped ped) { return _i(0xE7E11B8DCBED1058, ped); } // 0xe7e11b8dcbed10580xdd31ec4eB323 - // Gets a value indicating whether the specified ped is on top of any vehicle. - // - // Return 1 when ped is on vehicle. - // Return 0 when ped is not on a vehicle. - // - inline BOOL IsPedOnVehicle(Ped ped) { return _i(0x67722AEB798E5FAB, ped); } // 0x67722aeb798e5fab0xa1ae7cc7B323 - inline BOOL IsPedOnSpecificVehicle(Ped ped, Vehicle vehicle) { return _i(0xEC5F66E459AF3BB2, ped, vehicle); } // 0xec5f66e459af3bb20x63cb4603B323 - // Maximum possible amount of money on MP is 2000. ~JX - // - // ----------------------------------------------------------------------------- - // - // Maximum amount that a ped can theoretically have is 65535 (0xFFFF) since the amount is stored as an unsigned short (uint16_t) value. - inline Void SetPedMoney(Ped ped, int amount) { return _i(0xA9C8960E8684C1B5, ped, amount); } // 0xa9c8960e8684c1b50x40d90bf2B323 - inline int GetPedMoney(Ped ped) { return _i(0x3F69145BBA87BAE7, ped); } // 0x3f69145bba87bae70xeb3c4c7eB323 - // Related to Peds dropping pickup_health_snack; p0 is a value between [0.0, 1.0] that corresponds to drop rate - inline Void SetHealthSnacksCarriedByAllNewPeds(float p0, Any p1) { return _i(0xFF4803BC019852D9, p0, p1); } // 0xff4803bc019852d90xd41c9aedB323 - inline Void SetAmbientPedsDropMoney(BOOL p0) { return _i(0x6B0E6172C9A4D902, p0); } // 0x6b0e6172c9a4d9020x30b98369B323 - inline Void SetBlockingOfNonTemporaryEventsForAmbientPedsThisFrame(BOOL p0) { return _i(0x9911F4A24485F653, p0); } // 0x9911f4a24485f6530x02a080c8B323 - // Ped no longer takes critical damage modifiers if set to FALSE. - // Example: Headshotting a player no longer one shots them. Instead they will take the same damage as a torso shot. - inline Void SetPedSuffersCriticalHits(Ped ped, BOOL toggle) { return _i(0xEBD76F2359F190AC, ped, toggle); } // 0xebd76f2359f190ac0x6f6fc7e6B323 - inline Void SetPedUpperBodyDamageOnly(Ped ped, BOOL toggle) { return _i(0xAFC976FD0580C7B3, ped, toggle); } // 0xafc976fd0580c7b30x1572022aB323 - // Detect if ped is sitting in the specified vehicle - // [True/False] - inline BOOL IsPedSittingInVehicle(Ped ped, Vehicle vehicle) { return _i(0xA808AA1D79230FC2, ped, vehicle); } // 0xa808aa1d79230fc20xddde26faB323 - // Detect if ped is in any vehicle - // [True/False] - inline BOOL IsPedSittingInAnyVehicle(Ped ped) { return _i(0x826AA586EDB9FEF8, ped); } // 0x826aa586edb9fef80x0ea9ca03B323 - inline BOOL IsPedOnFoot(Ped ped) { return _i(0x01FEE67DB37F59B2, ped); } // 0x01fee67db37f59b20xc60d0785B323 - inline BOOL IsPedOnAnyBike(Ped ped) { return _i(0x94495889E22C6479, ped); } // 0x94495889e22c64790x4d885b2eB323 - inline BOOL IsPedPlantingBomb(Ped ped) { return _i(0xC70B5FAE151982D8, ped); } // 0xc70b5fae151982d80x0edac574B323 - inline Vector3 GetDeadPedPickupCoords(Ped ped, float p1, float p2) { return _i(0xCD5003B097200F36, ped, p1, p2); } // 0xcd5003b097200f360x129f9dc1B323 - inline BOOL IsPedInAnyBoat(Ped ped) { return _i(0x2E0E1C2B4F6CB339, ped); } // 0x2e0e1c2b4f6cb3390x1118a947B323 - inline BOOL IsPedInAnySub(Ped ped) { return _i(0xFBFC01CCFB35D99E, ped); } // 0xfbfc01ccfb35d99e0xe65f8059B323 - inline BOOL IsPedInAnyHeli(Ped ped) { return _i(0x298B91AE825E5705, ped); } // 0x298b91ae825e57050x7ab5523bB323 - inline BOOL IsPedInAnyPlane(Ped ped) { return _i(0x5FFF4CFC74D8FB80, ped); } // 0x5fff4cfc74d8fb800x51bbce7eB323 - inline BOOL IsPedInFlyingVehicle(Ped ped) { return _i(0x9134873537FA419C, ped); } // 0x9134873537fa419c0xca072485B323 - inline Void SetPedDiesInWater(Ped ped, BOOL toggle) { return _i(0x56CEF0AC79073BDE, ped, toggle); } // 0x56cef0ac79073bde0x604c872bB323 - inline BOOL GetPedDiesInWater(Ped ped) { return _i(0x65671A4FB8218930, ped); } // 0x65671a4fb8218930B2699 - inline Void SetPedDiesInSinkingVehicle(Ped ped, BOOL toggle) { return _i(0xD718A22995E2B4BC, ped, toggle); } // 0xd718a22995e2b4bc0x8d4d9abbB323 - inline int GetPedArmour(Ped ped) { return _i(0x9483AF821605B1D8, ped); } // 0x9483af821605b1d80x2ce311a7B323 - inline Void SetPedStayInVehicleWhenJacked(Ped ped, BOOL toggle) { return _i(0xEDF4079F9D54C9A1, ped, toggle); } // 0xedf4079f9d54c9a10xb014a09cB323 - inline Void SetPedCanBeShotInVehicle(Ped ped, BOOL toggle) { return _i(0xC7EF1BA83230BA07, ped, toggle); } // 0xc7ef1ba83230ba070x5db7b3a9B323 - inline BOOL GetPedLastDamageBone(Ped ped, int* outBone) { return _i(0xD75960F6BD9EA49C, ped, outBone); } // 0xd75960f6bd9ea49c0xab933841B323 - inline Void ClearPedLastDamageBone(Ped ped) { return _i(0x8EF6B7AC68E2F01B, ped); } // 0x8ef6b7ac68e2f01b0x56cb715eB323 - inline Void SetAiWeaponDamageModifier(float value) { return _i(0x1B1E2A40A65B8521, value); } // 0x1b1e2a40a65b85210x516e30eeB323 - inline Void ResetAiWeaponDamageModifier() { return _i(0xEA16670E7BA4743C); } // 0xea16670e7ba4743c0x6e965420B323 - inline Void SetAiMeleeWeaponDamageModifier(float modifier) { return _i(0x66460DEDDD417254, modifier); } // 0x66460deddd4172540x0f9a401fB323 - inline Void ResetAiMeleeWeaponDamageModifier() { return _i(0x46E56A7CD1D63C3F); } // 0x46e56a7cd1d63c3f0x97886238B323 - inline Void SetTreatAsAmbientPedForDriverLockon(Ped ped, BOOL p1) { return _i(0x2F3C3D9F50681DE4, ped, p1); } // 0x2f3c3d9f50681de40xcc9d7f1aB323 - inline Void SetPedCanBeTargetted(Ped ped, BOOL toggle) { return _i(0x63F58F7C80513AAD, ped, toggle); } // 0x63f58f7c80513aad0x75c49f74B323 - inline Void SetPedCanBeTargettedByTeam(Ped ped, int team, BOOL toggle) { return _i(0xBF1CA77833E58F2C, ped, team, toggle); } // 0xbf1ca77833e58f2c0xb103a8e1B323 - inline Void SetPedCanBeTargettedByPlayer(Ped ped, Player player, BOOL toggle) { return _i(0x66B57B72E0836A76, ped, player, toggle); } // 0x66b57b72e0836a760xd050f490B323 - inline Void SetAllowLockonToPedIfFriendly(Ped ped, BOOL toggle) { return _i(0x061CB768363D6424, ped, toggle); } // 0x061cb768363d64240x7da12905B323 - inline Void SetUseCameraHeadingForDesiredDirectionLockOnTest(Ped ped, BOOL toggle) { return _i(0xFD325494792302D7, ped, toggle); } // 0xfd325494792302d70x7f67671dB323 - inline BOOL IsPedInAnyPoliceVehicle(Ped ped) { return _i(0x0BD04E29640C9C12, ped); } // 0x0bd04e29640c9c120x84fa790dB323 - inline Void ForcePedToOpenParachute(Ped ped) { return _i(0x16E42E800B472221, ped); } // 0x16e42e800b4722210xa819680bB323 - inline BOOL IsPedInParachuteFreeFall(Ped ped) { return _i(0x7DCE8BDA0F1C1200, ped); } // 0x7dce8bda0f1c12000xcd71f11bB323 - inline BOOL IsPedFalling(Ped ped) { return _i(0xFB92A102F1C4DFA3, ped); } // 0xfb92a102f1c4dfa30xabf77334B323 - inline BOOL IsPedJumping(Ped ped) { return _i(0xCEDABC5900A0BF97, ped); } // 0xcedabc5900a0bf970x07e5bc0eB323 - inline BOOL IsPedLanding(Any p0) { return _i(0x412F1364FA066CFB, p0); } // 0x412f1364fa066cfbB573 - inline BOOL IsPedDoingABeastJump(Any p0) { return _i(0x451D05012CCEC234, p0); } // 0x451d05012ccec234B573 - inline BOOL IsPedClimbing(Ped ped) { return _i(0x53E8CB4F48BFE623, ped); } // 0x53e8cb4f48bfe6230xbce03d35B323 - inline BOOL IsPedVaulting(Ped ped) { return _i(0x117C70D1F5730B5E, ped); } // 0x117c70d1f5730b5e0xc3169bdaB323 - inline BOOL IsPedDiving(Ped ped) { return _i(0x5527B8246FEF9B11, ped); } // 0x5527b8246fef9b110x7bc5bf3cB323 - inline BOOL IsPedJumpingOutOfVehicle(Ped ped) { return _i(0x433DDFFE2044B636, ped); } // 0x433ddffe2044b6360xb19215f6B323 - // Returns true if the ped is currently opening a door (CTaskOpenDoor). - inline BOOL IsPedOpeningDoor(Ped ped) { return _i(0x26AF0E8E30BD2A2C, ped); } // 0x26af0e8e30bd2a2cB323 - // Returns: - // - // -1: Normal - // 0: Wearing parachute on back - // 1: Parachute opening - // 2: Parachute open - // 3: Falling to doom (e.g. after exiting parachute) - // - // Normal means no parachute? - inline int GetPedParachuteState(Ped ped) { return _i(0x79CFD9827CC979B6, ped); } // 0x79cfd9827cc979b60x7d4bc475B323 - // -1: no landing - // 0: landing on both feet - // 1: stumbling - // 2: rolling - // 3: ragdoll - inline int GetPedParachuteLandingType(Ped ped) { return _i(0x8B9F1FC6AE8166C0, ped); } // 0x8b9f1fc6ae8166c00x01f3b035B323 - inline Void SetPedParachuteTintIndex(Ped ped, int tintIndex) { return _i(0x333FC8DB079B7186, ped, tintIndex); } // 0x333fc8db079b71860x5aefec3aB323 - inline Void GetPedParachuteTintIndex(Ped ped, int* outTintIndex) { return _i(0xEAF5F7E5AE7C6C9D, ped, outTintIndex); } // 0xeaf5f7e5ae7c6c9d0xe9e7fac5B323 - inline Void SetPedReserveParachuteTintIndex(Ped ped, Any p1) { return _i(0xE88DA0751C22A2AD, ped, p1); } // 0xe88da0751c22a2ad0x177efc79B323 - inline Object CreateParachuteBagObject(Ped ped, BOOL p1, BOOL p2) { return _i(0x8C4F3BF23B6237DB, ped, p1, p2); } // 0x8c4f3bf23b6237db0x19198a16B323 - // This is the SET_CHAR_DUCKING from GTA IV, that makes Peds duck. This function does nothing in GTA V. It cannot set the ped as ducking in vehicles, and IsPedDucking will always return false. - inline Void SetPedDucking(Ped ped, BOOL toggle) { return _i(0x030983CA930B692D, ped, toggle); } // 0x030983ca930b692d0xb90353d7B323 - inline BOOL IsPedDucking(Ped ped) { return _i(0xD125AE748725C6BC, ped); } // 0xd125ae748725c6bc0x9199c77dB323 - inline BOOL IsPedInAnyTaxi(Ped ped) { return _i(0x6E575D6A898AB852, ped); } // 0x6e575d6a898ab8520x16fd386cB323 - inline Void SetPedIdRange(Ped ped, float value) { return _i(0xF107E836A70DCE05, ped, value); } // 0xf107e836a70dce050xef3b4ed9B323 - inline Void SetPedHighlyPerceptive(Ped ped, BOOL toggle) { return _i(0x52D59AB61DDC05DD, ped, toggle); } // 0x52d59ab61ddc05dd0x9a2180ffB323 - inline Void SetCopPerceptionOverrides(float seeingRange, float seeingRangePeripheral, float hearingRange, float visualFieldMinAzimuthAngle, float visualFieldMaxAzimuthAngle, float fieldOfGazeMaxAngle, float p6) { return _i(0x2F074C904D85129E, seeingRange, seeingRangePeripheral, hearingRange, visualFieldMinAzimuthAngle, visualFieldMaxAzimuthAngle, fieldOfGazeMaxAngle, p6); } // 0x2f074c904d85129eB393 - inline Void SetPedInjuredOnGroundBehaviour(Ped ped, float p1) { return _i(0xEC4B4B3B9908052A, ped, p1); } // 0xec4b4b3b9908052a0xf30658d2B323 - inline Void DisablePedInjuredOnGroundBehaviour(Ped ped) { return _i(0x733C87D4CE22BEA2, ped); } // 0x733c87d4ce22bea20x43709044B323 - inline Void SetPedSeeingRange(Ped ped, float value) { return _i(0xF29CF591C4BF6CEE, ped, value); } // 0xf29cf591c4bf6cee0x4bd72fe8B323 - inline Void SetPedHearingRange(Ped ped, float value) { return _i(0x33A8F7F7D5F7F33C, ped, value); } // 0x33a8f7f7d5f7f33c0xb32087e0B323 - inline Void SetPedVisualFieldMinAngle(Ped ped, float value) { return _i(0x2DB492222FB21E26, ped, value); } // 0x2db492222fb21e260x72e2e18bB323 - inline Void SetPedVisualFieldMaxAngle(Ped ped, float value) { return _i(0x70793BDCA1E854D4, ped, value); } // 0x70793bdca1e854d40x0cea0f9aB323 - // This native refers to the field of vision the ped has below them, starting at 0 degrees. The angle value should be negative. - // -90f should let the ped see 90 degrees below them, for example. - inline Void SetPedVisualFieldMinElevationAngle(Ped ped, float angle) { return _i(0x7A276EB2C224D70F, ped, angle); } // 0x7a276eb2c224d70f0x5cc2f1b8B323 - // This native refers to the field of vision the ped has above them, starting at 0 degrees. 90f would let the ped see enemies directly above of them. - inline Void SetPedVisualFieldMaxElevationAngle(Ped ped, float angle) { return _i(0x78D0B67629D75856, ped, angle); } // 0x78d0b67629d758560x39d9102fB323 - inline Void SetPedVisualFieldPeripheralRange(Ped ped, float range) { return _i(0x9C74B0BC831B753A, ped, range); } // 0x9c74b0bc831b753a0xfdf2f7c2B323 - inline Void SetPedVisualFieldCenterAngle(Ped ped, float angle) { return _i(0x3B6405E8AB34A907, ped, angle); } // 0x3b6405e8ab34a9070xe57202a1B323 - inline float GetPedVisualFieldCenterAngle(Ped ped) { return _i(0xEF2C71A32CAD5FBD, ped); } // 0xef2c71a32cad5fbdB1493 - // p1 is usually 0 in the scripts. action is either 0 or a pointer to "DEFAULT_ACTION". - inline Void SetPedStealthMovement(Ped ped, BOOL p1, String action) { return _i(0x88CBB5CEB96B7BD2, ped, p1, action); } // 0x88cbb5ceb96b7bd20x67e28e1dB323 - // Returns whether the entity is in stealth mode - inline BOOL GetPedStealthMovement(Ped ped) { return _i(0x7C2AC9CA66575FBF, ped); } // 0x7c2ac9ca66575fbf0x40321b83B323 - // Creates a new ped group. - // Groups can contain up to 8 peds. - // - // The parameter is unused. - // - // Returns a handle to the created group, or 0 if a group couldn't be created. - inline int CreateGroup(int unused) { return _i(0x90370EBE0FEE1A3D, unused); } // 0x90370ebe0fee1a3d0x8dc0368dB323 - inline Void SetPedAsGroupLeader(Ped ped, int groupId) { return _i(0x2A7819605465FBCE, ped, groupId); } // 0x2a7819605465fbce0x7265bea2B323 - inline Void SetPedAsGroupMember(Ped ped, int groupId) { return _i(0x9F3480FE65DB31B5, ped, groupId); } // 0x9f3480fe65db31b50x0ee13f92B323 - // This only will teleport the ped to the group leader if the group leader teleports (sets coords). - // - // Only works in singleplayer - inline Void SetPedCanTeleportToGroupLeader(Ped pedHandle, int groupHandle, BOOL toggle) { return _i(0x2E2F4240B3F24647, pedHandle, groupHandle, toggle); } // 0x2e2f4240b3f246470xd0d8bdbcB323 - inline Void RemoveGroup(int groupId) { return _i(0x8EB2F69076AF7053, groupId); } // 0x8eb2f69076af70530x48d72b88B323 - inline Void RemovePedFromGroup(Ped ped) { return _i(0xED74007FFB146BC2, ped); } // 0xed74007ffb146bc20x82697713B323 - inline BOOL IsPedGroupMember(Ped ped, int groupId) { return _i(0x9BB01E3834671191, ped, groupId); } // 0x9bb01e38346711910x876d5363B323 - inline BOOL IsPedHangingOnToVehicle(Ped ped) { return _i(0x1C86D8AEF8254B78, ped); } // 0x1c86d8aef8254b780x9678d4ffB323 - // Sets the range at which members will automatically leave the group. - inline Void SetGroupSeparationRange(int groupHandle, float separationRange) { return _i(0x4102C7858CFEE4E4, groupHandle, separationRange); } // 0x4102c7858cfee4e40x7b820cd5B323 - // Ped will stay on the ground after being stunned for at lest ms time. (in milliseconds) - inline Void SetPedMinGroundTimeForStungun(Ped ped, int ms) { return _i(0xFA0675AB151073FA, ped, ms); } // 0xfa0675ab151073fa0x2f0d0973B323 - inline BOOL IsPedProne(Ped ped) { return _i(0xD6A86331A537A7B9, ped); } // 0xd6a86331a537a7b90x02c2a6c3B323 - // Checks to see if ped and target are in combat with eachother. Only goes one-way: if target is engaged in combat with ped but ped has not yet reacted, the function will return false until ped starts fighting back. - // - // p1 is usually 0 in the scripts because it gets the ped id during the task sequence. For instance: PED::IsPedInCombat(l_42E[4/*14*/], PLAYER::PlayerPedId()) // armenian2.ct4: 43794 - inline BOOL IsPedInCombat(Ped ped, Ped target) { return _i(0x4859F1FC66A6278E, ped, target); } // 0x4859f1fc66a6278e0xfe027cb5B323 - inline Entity GetPedTargetFromCombatPed(Ped ped, Any p1) { return _i(0x32C27A11307B01CC, ped, p1); } // 0x32c27a11307b01ccB2372 - inline BOOL CanPedInCombatSeeTarget(Ped ped, Ped target) { return _i(0xEAD42DE3610D0721, ped, target); } // 0xead42de3610d07210xccd525e1B323 - inline BOOL IsPedDoingDriveby(Ped ped) { return _i(0xB2C086CC1BF8F2BF, ped); } // 0xb2c086cc1bf8f2bf0xac3ceb9cB323 - inline BOOL IsPedJacking(Ped ped) { return _i(0x4AE4FF911DFB61DA, ped); } // 0x4ae4ff911dfb61da0x3b321816B323 - inline BOOL IsPedBeingJacked(Ped ped) { return _i(0x9A497FE2DF198913, ped); } // 0x9a497fe2df1989130xd45d605cB323 - // p1 is always 0 - inline BOOL IsPedBeingStunned(Ped ped, int p1) { return _i(0x4FBACCE3B4138EE8, ped, p1); } // 0x4fbacce3b4138ee80x0a66ce30B323 - inline Ped GetPedsJacker(Ped ped) { return _i(0x9B128DC36C1E04CF, ped); } // 0x9b128dc36c1e04cf0xde1dbb59B323 - inline Ped GetJackTarget(Ped ped) { return _i(0x5486A79D9FBD342D, ped); } // 0x5486a79d9fbd342d0x1d196361B323 - inline BOOL IsPedFleeing(Ped ped) { return _i(0xBBCCE00B381F8482, ped); } // 0xbbcce00b381f84820x85d813c6B323 - // p1 is nearly always 0 in the scripts. - inline BOOL IsPedInCover(Ped ped, BOOL exceptUseWeapon) { return _i(0x60DFD0691A170B88, ped, exceptUseWeapon); } // 0x60dfd0691a170b880x972c5a8bB323 - inline BOOL IsPedInCoverFacingLeft(Ped ped) { return _i(0x845333B3150583AB, ped); } // 0x845333b3150583ab0xb89dbb80B323 - inline BOOL IsPedInHighCover(Ped ped) { return _i(0x6A03BF943D767C93, ped); } // 0x6a03bf943d767c930xdd5d08a7B323 - inline BOOL IsPedGoingIntoCover(Ped ped) { return _i(0x9F65DBC537E59AD5, ped); } // 0x9f65dbc537e59ad50xa3589628B323 - // i could be time. Only example in the decompiled scripts uses it as -1. - inline BOOL SetPedPinnedDown(Ped ped, BOOL pinned, int i) { return _i(0xAAD6D1ACF08F4612, ped, pinned, i); } // 0xaad6d1acf08f46120xcc78999dB323 - inline int GetSeatPedIsTryingToEnter(Ped ped) { return _i(0x6F4C85ACD641BCD2, ped); } // 0x6f4c85acd641bcd20xacf162e0B323 - inline Vehicle GetVehiclePedIsTryingToEnter(Ped ped) { return _i(0x814FA8BE5449445D, ped); } // 0x814fa8be5449445d0x99968b37B323 - // Returns the Entity (Ped, Vehicle, or ?Object?) that killed the 'ped' - // - // Is best to check if the Ped is dead before asking for its killer. - inline Entity GetPedSourceOfDeath(Ped ped) { return _i(0x93C8B64DEB84728C, ped); } // 0x93c8b64deb84728c0x84adf9ebB323 - // Returns the hash of the weapon/model/object that killed the ped. - inline Hash GetPedCauseOfDeath(Ped ped) { return _i(0x16FFE42AB2D2DC59, ped); } // 0x16ffe42ab2d2dc590x63458c27B323 - inline int GetPedTimeOfDeath(Ped ped) { return _i(0x1E98817B311AE98A, ped); } // 0x1e98817b311ae98a0xdf6d5d54B323 - inline int CountPedsInCombatWithTarget(Ped ped) { return _i(0x5407B7288D0478B7, ped); } // 0x5407b7288d0478b70xef0b78e6B323 - inline int CountPedsInCombatWithTargetWithinRadius(Ped ped, float x, float y, float z, float radius) { return _i(0x336B3D200AB007CB, ped, x, y, z, radius); } // 0x336b3d200ab007cb0xfb18cb19B323 - inline Void SetPedRelationshipGroupDefaultHash(Ped ped, Hash hash) { return _i(0xADB3F206518799E8, ped, hash); } // 0xadb3f206518799e80x423b7ba2B323 - inline Void SetPedRelationshipGroupHash(Ped ped, Hash hash) { return _i(0xC80A74AC829DDD92, ped, hash); } // 0xc80a74ac829ddd920x79f8c18cB323 - // Sets the relationship between two groups. This should be called twice (once for each group). - // - // Relationship types: - // 0 = Companion - // 1 = Respect - // 2 = Like - // 3 = Neutral - // 4 = Dislike - // 5 = Hate - // 255 = Pedestrians - // - // Example: - // PED::SetRelationshipBetweenGroups(2, l_1017, 0xA49E591C); - // PED::SetRelationshipBetweenGroups(2, 0xA49E591C, l_1017); - inline Void SetRelationshipBetweenGroups(int relationship, Hash group1, Hash group2) { return _i(0xBF25EB89375A37AD, relationship, group1, group2); } // 0xbf25eb89375a37ad0xd4a215baB323 - // Clears the relationship between two groups. This should be called twice (once for each group). - // - // Relationship types: - // 0 = Companion - // 1 = Respect - // 2 = Like - // 3 = Neutral - // 4 = Dislike - // 5 = Hate - // 255 = Pedestrians - // (Credits: Inco) - // - // Example: - // PED::ClearRelationshipBetweenGroups(2, l_1017, 0xA49E591C); - // PED::ClearRelationshipBetweenGroups(2, 0xA49E591C, l_1017); - inline Void ClearRelationshipBetweenGroups(int relationship, Hash group1, Hash group2) { return _i(0x5E29243FB56FC6D4, relationship, group1, group2); } // 0x5e29243fb56fc6d40x994b8c2dB323 - // Can't select Void. This function returns nothing. The hash of the created relationship group is output in the second parameter. - inline BOOL AddRelationshipGroup(String name, Hash* groupHash) { return _i(0xF372BC22FCB88606, name, groupHash); } // 0xf372bc22fcb886060x8b635546B323 - inline Void RemoveRelationshipGroup(Hash groupHash) { return _i(0xB6BA2444AB393DA2, groupHash); } // 0xb6ba2444ab393da20x4a1dc59aB323 - inline BOOL DoesRelationshipGroupExist(Hash groupHash) { return _i(0xCC6E3B6BB69501F1, groupHash); } // 0xcc6e3b6bb69501f1B505 - // Gets the relationship between two peds. This should be called twice (once for each ped). - // - // Relationship types: - // 0 = Companion - // 1 = Respect - // 2 = Like - // 3 = Neutral - // 4 = Dislike - // 5 = Hate - // 255 = Pedestrians - // (Credits: Inco) - // - // Example: - // PED::GetRelationshipBetweenPeds(2, l_1017, 0xA49E591C); - // PED::GetRelationshipBetweenPeds(2, 0xA49E591C, l_1017); - inline int GetRelationshipBetweenPeds(Ped ped1, Ped ped2) { return _i(0xEBA5AD3A0EAF7121, ped1, ped2); } // 0xeba5ad3a0eaf71210xe254c39cB323 - inline Hash GetPedRelationshipGroupDefaultHash(Ped ped) { return _i(0x42FDD0F017B1E38E, ped); } // 0x42fdd0f017b1e38e0x714bd6e4B323 - inline Hash GetPedRelationshipGroupHash(Ped ped) { return _i(0x7DBDD04862D95F04, ped); } // 0x7dbdd04862d95f040x354f283cB323 - // Gets the relationship between two groups. This should be called twice (once for each group). - // - // Relationship types: - // 0 = Companion - // 1 = Respect - // 2 = Like - // 3 = Neutral - // 4 = Dislike - // 5 = Hate - // 255 = Pedestrians - // - // Example: - // PED::GetRelationshipBetweenGroups(l_1017, 0xA49E591C); - // PED::GetRelationshipBetweenGroups(0xA49E591C, l_1017); - inline int GetRelationshipBetweenGroups(Hash group1, Hash group2) { return _i(0x9E6B70061662AE5C, group1, group2); } // 0x9e6b70061662ae5c0x4e372fe2B323 - inline Void SetRelationshipGroupAffectsWantedLevel(Hash group, BOOL p1) { return _i(0x5615E0C5EB2BC6E2, group, p1); } // 0x5615e0c5eb2bc6e2B877 - inline Void TellGroupPedsInAreaToAttack(Ped ped, Any p1, float p2, Hash hash, Any p4, Any p5) { return _i(0xAD27D957598E49E9, ped, p1, p2, hash, p4, p5); } // 0xad27d957598e49e9B1290 - inline Void SetPedCanBeTargetedWithoutLos(Ped ped, BOOL toggle) { return _i(0x4328652AE5769C71, ped, toggle); } // 0x4328652ae5769c710x7fddc0a6B323 - inline Void SetPedToInformRespectedFriends(Ped ped, float radius, int maxFriends) { return _i(0x112942C6E708F70B, ped, radius, maxFriends); } // 0x112942c6e708f70b0xd78ac46cB323 - inline BOOL IsPedRespondingToEvent(Ped ped, Any event) { return _i(0x625B774D75C87068, ped, event); } // 0x625b774d75c870680x7a877554B323 - inline BOOL GetPosFromFiredEvent(Ped ped, int eventType, Any* outData) { return _i(0xBA656A3BB01BDEA3, ped, eventType, outData); } // 0xba656a3bb01bdea3B2189 - // FIRING_PATTERN_BURST_FIRE = 0xD6FF6D61 ( 1073727030 ) - // FIRING_PATTERN_BURST_FIRE_IN_COVER = 0x026321F1 ( 40051185 ) - // FIRING_PATTERN_BURST_FIRE_DRIVEBY = 0xD31265F2 ( -753768974 ) - // FIRING_PATTERN_FROM_GROUND = 0x2264E5D6 ( 577037782 ) - // FIRING_PATTERN_DELAY_FIRE_BY_ONE_SEC = 0x7A845691 ( 2055493265 ) - // FIRING_PATTERN_FULL_AUTO = 0xC6EE6B4C ( -957453492 ) - // FIRING_PATTERN_SINGLE_SHOT = 0x5D60E4E0 ( 1566631136 ) - // FIRING_PATTERN_BURST_FIRE_PISTOL = 0xA018DB8A ( -1608983670 ) - // FIRING_PATTERN_BURST_FIRE_SMG = 0xD10DADEE ( 1863348768 ) - // FIRING_PATTERN_BURST_FIRE_RIFLE = 0x9C74B406 ( -1670073338 ) - // FIRING_PATTERN_BURST_FIRE_MG = 0xB573C5B4 ( -1250703948 ) - // FIRING_PATTERN_BURST_FIRE_PUMPSHOTGUN = 0x00BAC39B ( 12239771 ) - // FIRING_PATTERN_BURST_FIRE_HELI = 0x914E786F ( -1857128337 ) - // FIRING_PATTERN_BURST_FIRE_MICRO = 0x42EF03FD ( 1122960381 ) - // FIRING_PATTERN_SHORT_BURSTS = 0x1A92D7DF ( 445831135 ) - // FIRING_PATTERN_SLOW_FIRE_TANK = 0xE2CA3A71 ( -490063247 ) - // - // Firing pattern info: https://pastebin.com/Px036isB - inline Void SetPedFiringPattern(Ped ped, Hash patternHash) { return _i(0x9AC577F5A12AD8A9, ped, patternHash); } // 0x9ac577f5a12ad8a90xb4629d66B323 - // shootRate 0-1000 - inline Void SetPedShootRate(Ped ped, int shootRate) { return _i(0x614DA022990752DC, ped, shootRate); } // 0x614da022990752dc0xfb301746B323 - // combatType can be between 0-14. See GetCombatFloat below for a list of possible parameters. - inline Void SetCombatFloat(Ped ped, int combatType, float p2) { return _i(0xFF41B4B141ED981C, ped, combatType, p2); } // 0xff41b4b141ed981c0xd8b7637cB323 - // p0: Ped Handle - // p1: int i | 0 <= i <= 27 - // - // p1 probably refers to the attributes configured in combatbehavior.meta. There are 13. Example: - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // -------------Confirmed by editing combatbehavior.meta: - // p1: - // 0=BlindFireChance - // 1=BurstDurationInCover - // 3=TimeBetweenBurstsInCover - // 4=TimeBetweenPeeks - // 5=StrafeWhenMovingChance - // 8=WalkWhenStrafingChance - // 11=AttackWindowDistanceForCover - // 12=TimeToInvalidateInjuredTarget - // 16=OptimalCoverDistance - // - inline float GetCombatFloat(Ped ped, int p1) { return _i(0x52DFF8A10508090A, ped, p1); } // 0x52dff8a10508090a0x511d7ef8B323 - // p1 may be a BOOL representing whether or not the group even exists - inline Void GetGroupSize(int groupID, Any* p1, int* sizeInMembers) { return _i(0x8DE69FE35CA09A45, groupID, p1, sizeInMembers); } // 0x8de69fe35ca09a450xf7e1a691B323 - inline BOOL DoesGroupExist(int groupId) { return _i(0x7C6B0C22F9F40BBE, groupId); } // 0x7c6b0c22f9f40bbe0x935c978dB323 - // Returns the group id of which the specified ped is a member of. - inline int GetPedGroupIndex(Ped ped) { return _i(0xF162E133B4E7A675, ped); } // 0xf162e133b4e7a6750x134e0785B323 - inline BOOL IsPedInGroup(Ped ped) { return _i(0x5891CAC5D4ACFF74, ped); } // 0x5891cac5d4acff740x836d9795B323 - inline Player GetPlayerPedIsFollowing(Ped ped) { return _i(0x6A3975DEA89F9A17, ped); } // 0x6a3975dea89f9a170xde7442eeB323 - // 0: Default - // 1: Circle Around Leader - // 2: Alternative Circle Around Leader - // 3: Line, with Leader at center - inline Void SetGroupFormation(int groupId, int formationType) { return _i(0xCE2F5FC3AF7E8C1E, groupId, formationType); } // 0xce2f5fc3af7e8c1e0x08fac739B323 - inline Void SetGroupFormationSpacing(int groupId, float x, float y, float z) { return _i(0x1D9D45004C28C916, groupId, x, y, z); } // 0x1d9d45004c28c9160xb1e086ffB323 - inline Void ResetGroupFormationDefaultSpacing(int groupHandle) { return _i(0x63DAB4CCB3273205, groupHandle); } // 0x63dab4ccb32732050x267fceadB323 - // Gets ID of vehicle player using. It means it can get ID at any interaction with vehicle. Enter\exit for example. And that means it is faster than GetVehiclePedIsIn but less safe. - inline Vehicle GetVehiclePedIsUsing(Ped ped) { return _i(0x6094AD011A2EA87D, ped); } // 0x6094ad011a2ea87d0x6de3aadaB323 - inline Vehicle GetVehiclePedIsEntering(Ped ped) { return _i(0xF92691AED837A5FC, ped); } // 0xf92691aed837a5fc0x56e0c163B323 - // enable or disable the gravity of a ped - // - // Examples: - // PED::SetPedGravity(PLAYER::PlayerPedId(), 0x00000001); - // PED::SetPedGravity(Local_289[iVar0 /*20*/], 0x00000001); - inline Void SetPedGravity(Ped ped, BOOL toggle) { return _i(0x9FF447B6B6AD960A, ped, toggle); } // 0x9ff447b6b6ad960a0x3ca16652B323 - // damages a ped with the given amount - inline Void ApplyDamageToPed(Ped ped, int damageAmount, BOOL p2, Any p3) { return _i(0x697157CED63F18D4, ped, damageAmount, p2, p3); } // 0x697157ced63f18d40x4dc27fcfB323 - inline int GetTimePedDamagedByWeapon(Ped ped, Hash weaponHash) { return _i(0x36B77BB84687C318, ped, weaponHash); } // 0x36b77bb84687c3180x0170c6e1B323 - inline Void SetPedAllowedToDuck(Ped ped, BOOL toggle) { return _i(0xDA1F1B7BE1A8766F, ped, toggle); } // 0xda1f1b7be1a8766f0xc4d122f8B323 - inline Void SetPedNeverLeavesGroup(Ped ped, BOOL toggle) { return _i(0x3DBFC55D5C9BB447, ped, toggle); } // 0x3dbfc55d5c9bb4470x0e038813B323 - // https://alloc8or.re/gta5/doc/enums/ePedType.txt - inline int GetPedType(Ped ped) { return _i(0xFF059E1E4C01E63C, ped); } // 0xff059e1e4c01e63c0xb1460d43B323 - // Turns the desired ped into a cop. If you use this on the player ped, you will become almost invisible to cops dispatched for you. You will also report your own crimes, get a generic cop voice, get a cop-vision-cone on the radar, and you will be unable to shoot at other cops. SWAT and Army will still shoot at you. Toggling ped as "false" has no effect; you must change p0's ped model to disable the effect. - inline Void SetPedAsCop(Ped ped, BOOL toggle) { return _i(0xBB03C38DD3FB7FFD, ped, toggle); } // 0xbb03c38dd3fb7ffd0x84e7de9fB323 - inline Void SetPedHealthPendingLastDamageEventOverrideFlag(BOOL toggle) { return _i(0xB3352E018D6F89DF, toggle); } // 0xb3352e018d6f89dfB2699 - // Sets the maximum health of a ped. - inline Void SetPedMaxHealth(Ped ped, int value) { return _i(0xF5F6378C4F3419D3, ped, value); } // 0xf5f6378c4f3419d30x5533f60bB323 - inline int GetPedMaxHealth(Ped ped) { return _i(0x4700A416E8324EF3, ped); } // 0x4700a416e8324ef30xa45b6c8dB323 - inline Void SetPedMaxTimeInWater(Ped ped, float value) { return _i(0x43C851690662113D, ped, value); } // 0x43c851690662113d0xfe0a106bB323 - inline Void SetPedMaxTimeUnderwater(Ped ped, float value) { return _i(0x6BA428C528D9E522, ped, value); } // 0x6ba428c528d9e5220x082ef240B323 - inline Void SetCorpseRagdollFriction(Ped ped, float p1) { return _i(0x2735233A786B1BEF, ped, p1); } // 0x2735233a786b1bef0x373cc405B323 - // seatIndex must be <= 2 - inline Void SetPedVehicleForcedSeatUsage(Ped ped, Vehicle vehicle, int seatIndex, int flags, Any p4) { return _i(0x952F06BEECD775CC, ped, vehicle, seatIndex, flags, p4); } // 0x952f06beecd775cc0x79ca237bB323 - inline Void ClearAllPedVehicleForcedSeatUsage(Ped ped) { return _i(0xE6CA85E7259CE16B, ped); } // 0xe6ca85e7259ce16b0xcc1d8f66B323 - // This native does absolutely nothing, just a nullsub - inline Void SetPedCanBeKnockedOffBike(Any p0, Any p1) { return _i(0xB282749D5E028163, p0, p1); } // 0xb282749d5e028163B877 - // state: https://alloc8or.re/gta5/doc/enums/eKnockOffVehicle.txt - inline Void SetPedCanBeKnockedOffVehicle(Ped ped, int state) { return _i(0x7A6535691B477C48, ped, state); } // 0x7a6535691b477c480x8a251612B323 - inline BOOL CanKnockPedOffVehicle(Ped ped) { return _i(0x51AC07A44D4F5B8A, ped); } // 0x51ac07a44d4f5b8a0xc9d098b3B323 - inline Void KnockPedOffVehicle(Ped ped) { return _i(0x45BBCBA77C29A841, ped); } // 0x45bbcba77c29a8410xacdd0674B323 - inline Void SetPedCoordsNoGang(Ped ped, float posX, float posY, float posZ) { return _i(0x87052FE446E07247, ped, posX, posY, posZ); } // 0x87052fe446e072470x9561ad98B323 - // from fm_mission_controller.c4 (variable names changed for clarity): - // - // int groupID = PLAYER::GetPlayerGroup(PLAYER::PlayerId()); - // PED::GetGroupSize(group, &unused, &groupSize); - // if (groupSize >= 1) { - // . . . . for (int memberNumber = 0; memberNumber < groupSize; memberNumber++) { - // . . . . . . . . Ped ped1 = PED::GetPedAsGroupMember(groupID, memberNumber); - // . . . . . . . . //and so on - inline Ped GetPedAsGroupMember(int groupID, int memberNumber) { return _i(0x51455483CF23ED97, groupID, memberNumber); } // 0x51455483cf23ed970x9aa3cc8cB323 - inline Ped GetPedAsGroupLeader(int groupID) { return _i(0x5CCE68DBD5FE93EC, groupID); } // 0x5cce68dbd5fe93ec0x52873c6aB323 - inline Void SetPedKeepTask(Ped ped, BOOL toggle) { return _i(0x971D38760FBC02EF, ped, toggle); } // 0x971d38760fbc02ef0xa7ec79ceB323 - inline Void SetPedAllowMinorReactionsAsMissionPed(Ped ped, BOOL toggle) { return _i(0x49E50BDB8BA4DAB2, ped, toggle); } // 0x49e50bdb8ba4dab20x397f06e3B323 - inline BOOL IsPedSwimming(Ped ped) { return _i(0x9DE327631295B4C2, ped); } // 0x9de327631295b4c20x7ab43db8B323 - inline BOOL IsPedSwimmingUnderWater(Ped ped) { return _i(0xC024869A53992F34, ped); } // 0xc024869a53992f340x0e8d524fB323 - // teleports ped to coords along with the vehicle ped is in - inline Void SetPedCoordsKeepVehicle(Ped ped, float posX, float posY, float posZ) { return _i(0x9AFEFF481A85AB2E, ped, posX, posY, posZ); } // 0x9afeff481a85ab2e0xd66ae1d3B323 - inline Void SetPedDiesInVehicle(Ped ped, BOOL toggle) { return _i(0x2A30922C90C9B42C, ped, toggle); } // 0x2a30922c90c9b42c0x6fe1e440B323 - inline Void SetCreateRandomCops(BOOL toggle) { return _i(0x102E68B2024D536D, toggle); } // 0x102e68b2024d536d0x23441648B323 - inline Void SetCreateRandomCopsNotOnScenarios(BOOL toggle) { return _i(0x8A4986851C4EF6E7, toggle); } // 0x8a4986851c4ef6e70x82e548ccB323 - inline Void SetCreateRandomCopsOnScenarios(BOOL toggle) { return _i(0x444CB7D7DBE6973D, toggle); } // 0x444cb7d7dbe6973d0xedc31475B323 - inline BOOL CanCreateRandomCops() { return _i(0x5EE2CAFF7F17770D); } // 0x5ee2caff7f17770d0xaa73dad9B323 - inline Void SetPedAsEnemy(Ped ped, BOOL toggle) { return _i(0x02A0C9720B854BFA, ped, toggle); } // 0x02a0c9720b854bfa0xae620a1bB323 - inline Void SetPedCanSmashGlass(Ped ped, BOOL p1, BOOL p2) { return _i(0x1CCE141467FF42A2, ped, p1, p2); } // 0x1cce141467ff42a20x149c60a8B323 - inline BOOL IsPedInAnyTrain(Ped ped) { return _i(0x6F972C1AB75A1ED0, ped); } // 0x6f972c1ab75a1ed00x759ef63aB323 - inline BOOL IsPedGettingIntoAVehicle(Ped ped) { return _i(0xBB062B2B5722478E, ped); } // 0xbb062b2b5722478e0x90e805acB323 - inline BOOL IsPedTryingToEnterALockedVehicle(Ped ped) { return _i(0x44D28D5DDFE5F68C, ped); } // 0x44d28d5ddfe5f68c0x46828b4eB323 - // ped can not pull out a weapon when true - inline Void SetEnableHandcuffs(Ped ped, BOOL toggle) { return _i(0xDF1AF8B5D56542FA, ped, toggle); } // 0xdf1af8b5d56542fa0xac9bba23B323 - // Used with SetEnableHandcuffs in decompiled scripts. From my observations, I have noticed that while being ragdolled you are not able to get up but you can still run. Your legs can also bend. - inline Void SetEnableBoundAnkles(Ped ped, BOOL toggle) { return _i(0xC52E0F855C58FC2E, ped, toggle); } // 0xc52e0f855c58fc2e0x9208d689B323 - // Enables diving motion when underwater. - inline Void SetEnableScuba(Ped ped, BOOL toggle) { return _i(0xF99F62004024D506, ped, toggle); } // 0xf99f62004024d5060x7bf61471B323 - // Setting ped to true allows the ped to shoot "friendlies". - // - // p2 set to true when toggle is also true seams to make peds permanently unable to aim at, even if you set p2 back to false. - // - // p1 = false & p2 = false for unable to aim at. - // p1 = true & p2 = false for able to aim at. - inline Void SetCanAttackFriendly(Ped ped, BOOL toggle, BOOL p2) { return _i(0xB3B1CB349FF9C75D, ped, toggle, p2); } // 0xb3b1cb349ff9c75d0x47c60963B323 - // Returns the ped's alertness (0-3). - // - // Values : - // - // 0 : Neutral - // 1 : Heard something (gun shot, hit, etc) - // 2 : Knows (the origin of the event) - // 3 : Fully alerted (is facing the event?) - // - // If the Ped does not exist, returns -1. - inline int GetPedAlertness(Ped ped) { return _i(0xF6AA118530443FD2, ped); } // 0xf6aa118530443fd20xf83e4dafB323 - // value ranges from 0 to 3. - inline Void SetPedAlertness(Ped ped, int value) { return _i(0xDBA71115ED9941A6, ped, value); } // 0xdba71115ed9941a60x2c32d9aeB323 - inline Void SetPedGetOutUpsideDownVehicle(Ped ped, BOOL toggle) { return _i(0xBC0ED94165A48BC2, ped, toggle); } // 0xbc0ed94165a48bc20x89ad49ffB323 - // transitionSpeed is the time in seconds it takes to transition from one movement clipset to another. ransitionSpeed is usually 1.0f - // - // List of movement clipsets: - // Thanks to elsewhat for list. - // - // "ANIM_GROUP_MOVE_BALLISTIC" - // "ANIM_GROUP_MOVE_LEMAR_ALLEY" - // "clipset@move@trash_fast_turn" - // "FEMALE_FAST_RUNNER" - // "missfbi4prepp1_garbageman" - // "move_characters@franklin@fire" - // "move_characters@Jimmy@slow@" - // "move_characters@michael@fire" - // "move_f@flee@a" - // "move_f@scared" - // "move_f@sexy@a" - // "move_heist_lester" - // "move_injured_generic" - // "move_lester_CaneUp" - // "move_m@bag" - // "MOVE_M@BAIL_BOND_NOT_TAZERED" - // "MOVE_M@BAIL_BOND_TAZERED" - // "move_m@brave" - // "move_m@casual@d" - // "move_m@drunk@moderatedrunk" - // "MOVE_M@DRUNK@MODERATEDRUNK" - // "MOVE_M@DRUNK@MODERATEDRUNK_HEAD_UP" - // "MOVE_M@DRUNK@SLIGHTLYDRUNK" - // "MOVE_M@DRUNK@VERYDRUNK" - // "move_m@fire" - // "move_m@gangster@var_e" - // "move_m@gangster@var_f" - // "move_m@gangster@var_i" - // "move_m@JOG@" - // "MOVE_M@PRISON_GAURD" - // "MOVE_P_M_ONE" - // "MOVE_P_M_ONE_BRIEFCASE" - // "move_p_m_zero_janitor" - // "move_p_m_zero_slow" - // "move_ped_bucket" - // "move_ped_crouched" - // "move_ped_mop" - // "MOVE_M@FEMME@" - // "MOVE_F@FEMME@" - // "MOVE_M@GANGSTER@NG" - // "MOVE_F@GANGSTER@NG" - // "MOVE_M@POSH@" - // "MOVE_F@POSH@" - // "MOVE_M@TOUGH_GUY@" - // "MOVE_F@TOUGH_GUY@" - // - // ~ NotCrunchyTaco - // - // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - inline Void SetPedMovementClipset(Ped ped, String clipSet, float transitionSpeed) { return _i(0xAF8A94EDE7712BEF, ped, clipSet, transitionSpeed); } // 0xaf8a94ede7712bef0xa817cdebB323 - // If p1 is 0.0, I believe you are back to normal. - // If p1 is 1.0, it looks like you can only rotate the ped, not walk. - // - // Using the following code to reset back to normal - // PED::ResetPedMovementClipset(PLAYER::PlayerPedId(), 0.0); - inline Void ResetPedMovementClipset(Ped ped, float p1) { return _i(0xAA74EC0CB0AAEA2C, ped, p1); } // 0xaa74ec0cb0aaea2c0xb83cee93B323 - // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - inline Void SetPedStrafeClipset(Ped ped, String clipSet) { return _i(0x29A28F3F8CF6D854, ped, clipSet); } // 0x29a28f3f8cf6d8540x0bacf010B323 - inline Void ResetPedStrafeClipset(Ped ped) { return _i(0x20510814175EA477, ped); } // 0x20510814175ea4770xf1967a12B323 - inline Void SetPedWeaponMovementClipset(Ped ped, String clipSet) { return _i(0x2622E35B77D3ACA2, ped, clipSet); } // 0x2622e35b77d3aca20xf8be54dcB323 - inline Void ResetPedWeaponMovementClipset(Ped ped) { return _i(0x97B0DB5B4AA74E77, ped); } // 0x97b0db5b4aa74e770xc60c9acdB323 - inline Void SetPedDriveByClipsetOverride(Ped ped, String clipset) { return _i(0xED34AB6C5CB36520, ped, clipset); } // 0xed34ab6c5cb365200xd4c73595B323 - inline Void ClearPedDriveByClipsetOverride(Ped ped) { return _i(0x4AFE3690D7E0B5AC, ped); } // 0x4afe3690d7e0b5ac0xaec9163bB323 - // Found in the b617d scripts: - // PED::SetPedMotionInCoverClipsetOverride(v_7, "trevor_heist_cover_2h"); - inline Void SetPedMotionInCoverClipsetOverride(Ped ped, String p1) { return _i(0x9DBA107B4937F809, ped, p1); } // 0x9dba107b4937f809B323 - inline Void ClearPedMotionInCoverClipsetOverride(Ped ped) { return _i(0xC79196DCB36F6121, ped); } // 0xc79196dcb36f6121B323 - inline Void ClearPedFallUpperBodyClipsetOverride(Ped ped) { return _i(0x80054D7FCC70EEC6, ped); } // 0x80054d7fcc70eec6B323 - // PED::SetPedInVehicleContext(l_128, MISC::GetHashKey("MINI_PROSTITUTE_LOW_PASSENGER")); - // PED::SetPedInVehicleContext(l_128, MISC::GetHashKey("MINI_PROSTITUTE_LOW_RESTRICTED_PASSENGER")); - // PED::SetPedInVehicleContext(l_3212, MISC::GetHashKey("MISS_FAMILY1_JIMMY_SIT")); - // PED::SetPedInVehicleContext(l_3212, MISC::GetHashKey("MISS_FAMILY1_JIMMY_SIT_REAR")); - // PED::SetPedInVehicleContext(l_95, MISC::GetHashKey("MISS_FAMILY2_JIMMY_BICYCLE")); - // PED::SetPedInVehicleContext(num3, MISC::GetHashKey("MISSFBI2_MICHAEL_DRIVEBY")); - // PED::SetPedInVehicleContext(PLAYER::PlayerPedId(), MISC::GetHashKey("MISS_ARMENIAN3_FRANKLIN_TENSE")); - // PED::SetPedInVehicleContext(PLAYER::PlayerPedId(), MISC::GetHashKey("MISSFBI5_TREVOR_DRIVING")); - inline Void SetPedInVehicleContext(Ped ped, Hash context) { return _i(0x530071295899A8C6, ped, context); } // 0x530071295899a8c60x27f25c0eB323 - inline Void ResetPedInVehicleContext(Ped ped) { return _i(0x22EF8FF8778030EB, ped); } // 0x22ef8ff8778030eb0x3c94d88aB323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline BOOL IsScriptedScenarioPedUsingConditionalAnim(Ped ped, String animDict, String anim) { return _i(0x6EC47A344923E1ED, ped, animDict, anim); } // 0x6ec47a344923e1ed0x3c30b447B323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - // - // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - inline Void SetPedAlternateWalkAnim(Ped ped, String animDict, String animName, float p3, BOOL p4) { return _i(0x6C60394CB4F75E9A, ped, animDict, animName, p3, p4); } // 0x6c60394cb4f75e9a0x895e1d67B323 - inline Void ClearPedAlternateWalkAnim(Ped ped, float p1) { return _i(0x8844BBFCE30AA9E9, ped, p1); } // 0x8844bbfce30aa9e90x5736fb23B323 - // stance: - // 0 = idle - // 1 = walk - // 2 = running - // - // p5 = usually set to true - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - // - // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - inline Void SetPedAlternateMovementAnim(Ped ped, int stance, String animDictionary, String animationName, float p4, BOOL p5) { return _i(0x90A43CC281FFAB46, ped, stance, animDictionary, animationName, p4, p5); } // 0x90a43cc281ffab460xba84fd8cB323 - inline Void ClearPedAlternateMovementAnim(Ped ped, int stance, float p2) { return _i(0xD8D19675ED5FBDCE, ped, stance, p2); } // 0xd8d19675ed5fbdce0x7a7f5bc3B323 - // From the scripts: - // PED::SetPedGestureGroup(PLAYER::PlayerPedId(), - // "ANIM_GROUP_GESTURE_MISS_FRA0"); - // PED::SetPedGestureGroup(PLAYER::PlayerPedId(), - // "ANIM_GROUP_GESTURE_MISS_DocksSetup1"); - inline Void SetPedGestureGroup(Ped ped, String animGroupGesture) { return _i(0xDDF803377F94AAA8, ped, animGroupGesture); } // 0xddf803377f94aaa80x170da109B323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline Vector3 GetAnimInitialOffsetPosition(String animDict, String animName, float x, float y, float z, float xRot, float yRot, float zRot, float p8, int p9) { return _i(0xBE22B26DD764C040, animDict, animName, x, y, z, xRot, yRot, zRot, p8, p9); } // 0xbe22b26dd764c0400xc59d4268B323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline Vector3 GetAnimInitialOffsetRotation(String animDict, String animName, float x, float y, float z, float xRot, float yRot, float zRot, float p8, int p9) { return _i(0x4B805E6046EE9E47, animDict, animName, x, y, z, xRot, yRot, zRot, p8, p9); } // 0x4b805e6046ee9e470x5f7789e6B323 - // Ids - // 0 - Head - // 1 - Beard - // 2 - Hair - // 3 - Torso - // 4 - Legs - // 5 - Hands - // 6 - Foot - // 7 - ------ - // 8 - Accessories 1 - // 9 - Accessories 2 - // 10- Decals - // 11 - Auxiliary parts for torso - inline int GetPedDrawableVariation(Ped ped, int componentId) { return _i(0x67F3780DD425D4FC, ped, componentId); } // 0x67f3780dd425d4fc0x29850fe2B323 - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline int GetNumberOfPedDrawableVariations(Ped ped, int componentId) { return _i(0x27561561732A7842, ped, componentId); } // 0x27561561732a78420x9754c27dB323 - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline int GetPedTextureVariation(Ped ped, int componentId) { return _i(0x04A355E041E004E6, ped, componentId); } // 0x04a355e041e004e60xc0a8590aB323 - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline int GetNumberOfPedTextureVariations(Ped ped, int componentId, int drawableId) { return _i(0x8F7156A3142A6BAD, ped, componentId, drawableId); } // 0x8f7156a3142a6bad0x83d9fbe7B323 - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline int GetNumberOfPedPropDrawableVariations(Ped ped, int propId) { return _i(0x5FAF9754E789FB47, ped, propId); } // 0x5faf9754e789fb470xc9780b95B323 - // Need to check behavior when drawableId = -1 - // - // - Doofy.Ass - // Why this function doesn't work and return nill value? - // GetNumberOfPedPropTextureVariations(PLAYER.PlayerPedId(), 0, 5) - // - // tick: scripts/addins/menu_execute.lua:51: attempt to call field 'GetNumberOfPedPropTextureVariations' (a nil value) - // - // - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline int GetNumberOfPedPropTextureVariations(Ped ped, int propId, int drawableId) { return _i(0xA6E7F1CEB523E171, ped, propId, drawableId); } // 0xa6e7f1ceb523e1710x4892b882B323 - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline int GetPedPaletteVariation(Ped ped, int componentId) { return _i(0xE3DD5F2A84B42281, ped, componentId); } // 0xe3dd5f2a84b422810xef1bc082B323 - inline BOOL GetMpOutfitDataFromMetadata(Any* p0, Any* p1) { return _i(0x9E30E91FB03A2CAF, p0, p1); } // 0x9e30e91fb03a2caf0x52559bb6B323 - inline int GetFmMaleShopPedApparelItemIndex(int p0) { return _i(0x1E77FA7A62EE6C4C, p0); } // 0x1e77fa7a62ee6c4c0x021f5b36B323 - inline int GetFmFemaleShopPedApparelItemIndex(int p0) { return _i(0xF033419D1B81FAE8, p0); } // 0xf033419d1b81fae80x8fddb5dbB323 - // Checks if the component variation is valid, this works great for randomizing components using loops. - // - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - // - // Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json - inline BOOL IsPedComponentVariationValid(Ped ped, int componentId, int drawableId, int textureId) { return _i(0xE825F6B6CEA7671D, ped, componentId, drawableId, textureId); } // 0xe825f6b6cea7671d0x952abd9aB323 - // paletteId: 0 to 3. - // - // componentId: - // enum ePedVarComp - // { - // PV_COMP_INVALID = -1, - // PV_COMP_HEAD, - // PV_COMP_BERD, - // PV_COMP_HAIR, - // PV_COMP_UPPR, - // PV_COMP_LOWR, - // PV_COMP_HAND, - // PV_COMP_FEET, - // PV_COMP_TEEF, - // PV_COMP_ACCS, - // PV_COMP_TASK, - // PV_COMP_DECL, - // PV_COMP_JBIB, - // PV_COMP_MAX - // }; - // - // Examples: https://gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - // - // Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json - inline Void SetPedComponentVariation(Ped ped, int componentId, int drawableId, int textureId, int paletteId) { return _i(0x262B14F48D29DE80, ped, componentId, drawableId, textureId, paletteId); } // 0x262b14f48d29de800xd4f7b05cB323 - // p1 is always 0 in R* scripts. - // - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline Void SetPedRandomComponentVariation(Ped ped, int p1) { return _i(0xC8A9481A01E63C28, ped, p1); } // 0xc8a9481a01e63c280x4111ba46B323 - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline Void SetPedRandomProps(Ped ped) { return _i(0xC44AA05345C992C6, ped); } // 0xc44aa05345c992c60xe3318e0eB323 - // Sets Ped Default Clothes - inline Void SetPedDefaultComponentVariation(Ped ped) { return _i(0x45EEE61580806D63, ped); } // 0x45eee61580806d630xc866a984B323 - inline Void SetPedBlendFromParents(Ped ped, Any p1, Any p2, float p3, float p4) { return _i(0x137BBD05230DB22D, ped, p1, p2, p3, p4); } // 0x137bbd05230db22d0x837bd370B323 - // The "shape" parameters control the shape of the ped's face. The "skin" parameters control the skin tone. ShapeMix and skinMix control how much the first and second IDs contribute,(typically mother and father.) ThirdMix overrides the others in favor of the third IDs. IsParent is set for "children" of the player character's grandparents during old-gen character creation. It has unknown effect otherwise. - // - // The IDs start at zero and go Male Non-DLC, Female Non-DLC, Male DLC, and Female DLC. - // - // !!!Can someone add working example for this??? - // - // try this: - // headBlendData headData; - // GetPedHeadBlendData(PlayerPedId(), &headData); - // - // SetPedHeadBlendData(PlayerPedId(), headData.shapeFirst, headData.shapeSecond, headData.shapeThird, headData.skinFirst, headData.skinSecond - // , headData.skinThird, headData.shapeMix, headData.skinMix, headData.skinThird, 0); - // - // - // For more info please refer to this topic. - // gtaforums.com/topic/858970-all-gtao-face-ids-pedset-ped-head-blend-data-explained - inline Void SetPedHeadBlendData(Ped ped, int shapeFirstID, int shapeSecondID, int shapeThirdID, int skinFirstID, int skinSecondID, int skinThirdID, float shapeMix, float skinMix, float thirdMix, BOOL isParent) { return _i(0x9414E18B9434C2FE, ped, shapeFirstID, shapeSecondID, shapeThirdID, skinFirstID, skinSecondID, skinThirdID, shapeMix, skinMix, thirdMix, isParent); } // 0x9414e18b9434c2fe0x60746b88B323 - // The pointer is to a padded struct that matches the arguments to SetPedHeadBlendData(...). There are 4 bytes of padding after each field. - // pass this struct in the second parameter - // struct headBlendData - // { - // int shapeFirst; - // int padding1; - // int shapeSecond; - // int padding2; - // int shapeThird; - // int padding3; - // int skinFirst; - // int padding4; - // int skinSecond; - // int padding5; - // int skinThird; - // int padding6; - // float shapeMix; - // int padding7; - // float skinMix; - // int padding8; - // float thirdMix; - // int padding9; - // bool isParent; - // }; - inline BOOL GetPedHeadBlendData(Ped ped, Any* headBlendData) { return _i(0x2746BD9D88C5C5D0, ped, headBlendData); } // 0x2746bd9d88c5c5d00x44e1680cB323 - // See SetPedHeadBlendData(). - inline Void UpdatePedHeadBlendData(Ped ped, float shapeMix, float skinMix, float thirdMix) { return _i(0x723538F61C647C5A, ped, shapeMix, skinMix, thirdMix); } // 0x723538f61c647c5a0x5cb76219B323 - // Used for freemode (online) characters. - // - // For some reason, the scripts use a rounded float for the index. - // Indexes: - // 1. black - // 2. very light blue/green - // 3. dark blue - // 4. brown - // 5. darker brown - // 6. light brown - // 7. blue - // 8. light blue - // 9. pink - // 10. yellow - // 11. purple - // 12. black - // 13. dark green - // 14. light brown - // 15. yellow/black pattern - // 16. light colored spiral pattern - // 17. shiny red - // 18. shiny half blue/half red - // 19. half black/half light blue - // 20. white/red perimter - // 21. green snake - // 22. red snake - // 23. dark blue snake - // 24. dark yellow - // 25. bright yellow - // 26. all black - // 28. red small pupil - // 29. devil blue/black - // 30. white small pupil - // 31. glossed over - inline Void SetHeadBlendEyeColor(Ped ped, int index) { return _i(0x50B56988B170AFDF, ped, index); } // 0x50b56988b170afdfB323 - // A getter for _SET_PED_EYE_COLOR. Returns -1 if fails to get. - inline int GetHeadBlendEyeColor(Ped ped) { return _i(0x76BBA2CEE66D47E9, ped); } // 0x76bba2cee66d47e9B1011 - // OverlayID ranges from 0 to 12, index from 0 to _GET_NUM_OVERLAY_VALUES(overlayID)-1, and opacity from 0.0 to 1.0. - // - // overlayID Part Index, to disable - // 0 Blemishes 0 - 23, 255 - // 1 Facial Hair 0 - 28, 255 - // 2 Eyebrows 0 - 33, 255 - // 3 Ageing 0 - 14, 255 - // 4 Makeup 0 - 74, 255 - // 5 Blush 0 - 6, 255 - // 6 Complexion 0 - 11, 255 - // 7 Sun Damage 0 - 10, 255 - // 8 Lipstick 0 - 9, 255 - // 9 Moles/Freckles 0 - 17, 255 - // 10 Chest Hair 0 - 16, 255 - // 11 Body Blemishes 0 - 11, 255 - // 12 Add Body Blemishes 0 - 1, 255 - inline Void SetPedHeadOverlay(Ped ped, int overlayID, int index, float opacity) { return _i(0x48F44967FA05CC1E, ped, overlayID, index, opacity); } // 0x48f44967fa05cc1e0xd28dba90B323 - // Likely a char, if that overlay is not set, e.i. "None" option, returns 255; - // - // This might be the once removed native GetPedHeadOverlay. - inline int GetPedHeadOverlay(Ped ped, int overlayID) { return _i(0xA60EF3B6461A4D43, ped, overlayID); } // 0xa60ef3b6461a4d43B323 - inline int GetPedHeadOverlayNum(int overlayID) { return _i(0xCF1CE768BB43480E, overlayID); } // 0xcf1ce768bb43480e0xff43c18dB323 - // - // - // ColorType is 1 for eyebrows, beards, and chest hair; 2 for blush and lipstick; and 0 otherwise, though not called in those cases. - // - // Called after SetPedHeadOverlay(). - inline Void SetPedHeadOverlayTint(Ped ped, int overlayID, int colorType, int colorID, int secondColorID) { return _i(0x497BF74A7B9CB952, ped, overlayID, colorType, colorID, secondColorID); } // 0x497bf74a7b9cb952B323 - inline Void SetPedHairTint(Ped ped, int colorID, int highlightColorID) { return _i(0x4CFFC65454C93A49, ped, colorID, highlightColorID); } // 0x4cffc65454c93a49B323 - inline int GetNumPedHairTints() { return _i(0xE5C0CF872C2AD150); } // 0xe5c0cf872c2ad150B323 - inline int GetNumPedMakeupTints() { return _i(0xD1F7CA1535D22818); } // 0xd1f7ca1535d22818B323 - // Input: Haircolor index, value between 0 and 63 (inclusive). - // Output: RGB values for the haircolor specified in the input. - // - // This is used with the hair color swatches scaleform. - // Use `GetPedMakeupTintColor` to get the makeup colors. - inline Void GetPedHairTintColor(int hairColorIndex, int* outR, int* outG, int* outB) { return _i(0x4852FC386E2E1BB5, hairColorIndex, outR, outG, outB); } // 0x4852fc386e2e1bb5B323 - // Input: Makeup color index, value between 0 and 63 (inclusive). - // Output: RGB values for the makeup color specified in the input. - // - // This is used with the makeup color swatches scaleform. - // Use `GetPedHairTintColor` to get the hair colors. - inline Void GetPedMakeupTintColor(int makeupColorIndex, int* outR, int* outG, int* outB) { return _i(0x013E5CFC38CD5387, makeupColorIndex, outR, outG, outB); } // 0x013e5cfc38cd5387B323 - inline BOOL IsPedHairTintForCreator(int colorId) { return _i(0xED6D8E27A43B8CDE, colorId); } // 0xed6d8e27a43b8cdeB323 - inline int GetDefaultSecondaryTintForCreator(int colorId) { return _i(0xEA9960D07DADCF10, colorId); } // 0xea9960d07dadcf10B323 - inline BOOL IsPedLipstickTintForCreator(int colorId) { return _i(0x3E802F11FBE27674, colorId); } // 0x3e802f11fbe27674B323 - inline BOOL IsPedBlushTintForCreator(int colorId) { return _i(0xF41B5D290C99A3D6, colorId); } // 0xf41b5d290c99a3d6B323 - inline BOOL IsPedHairTintForBarber(int colorID) { return _i(0xE0D36E5D9E99CC21, colorID); } // 0xe0d36e5d9e99cc21B323 - inline int GetDefaultSecondaryTintForBarber(int colorID) { return _i(0xAAA6A3698A69E048, colorID); } // 0xaaa6a3698a69e048B323 - inline BOOL IsPedLipstickTintForBarber(int colorID) { return _i(0x0525A2C2562F3CD4, colorID); } // 0x0525a2c2562f3cd4B323 - inline BOOL IsPedBlushTintForBarber(int colorID) { return _i(0x604E810189EE3A59, colorID); } // 0x604e810189ee3a59B323 - inline BOOL IsPedBlushFacepaintTintForBarber(int colorId) { return _i(0x09E7ECA981D9B210, colorId); } // 0x09e7eca981d9b210B1290 - inline int GetTintIndexForLastGenHairTexture(Hash modelHash, int drawableId, int textureId) { return _i(0xC56FBF2F228E1DAC, modelHash, drawableId, textureId); } // 0xc56fbf2f228e1dacB323 - // Sets the various freemode face features, e.g. nose length, chin shape. Scale ranges from -1.0 to 1.0. - // - // - // - // 0 - Nose Width (Thin/Wide) - // - // 1 - Nose Peak (Up/Down) - // - // 2 - Nose Length (Long/Short) - // - // 3 - Nose Bone Curveness (Crooked/Curved) - // - // 4 - Nose Tip (Up/Down) - // - // 5 - Nose Bone Twist (Left/Right) - // - // 6 - Eyebrow (Up/Down) - // - // 7 - Eyebrow (In/Out) - // - // 8 - Cheek Bones (Up/Down) - // - // 9 - Cheek Sideways Bone Size (In/Out) - // - // 10 - Cheek Bones Width (Puffed/Gaunt) - // - // 11 - Eye Opening (Both) (Wide/Squinted) - // - // 12 - Lip Thickness (Both) (Fat/Thin) - // - // 13 - Jaw Bone Width (Narrow/Wide) - // - // 14 - Jaw Bone Shape (Round/Square) - // - // 15 - Chin Bone (Up/Down) - // - // 16 - Chin Bone Length (In/Out or Backward/Forward) - // - // 17 - Chin Bone Shape (Pointed/Square) - // - // 18 - Chin Hole (Chin Bum) - // - // 19 - Neck Thickness (Thin/Thick) - inline Void SetPedMicroMorph(Ped ped, int index, float scale) { return _i(0x71A5C1DBA060049E, ped, index, scale); } // 0x71a5c1dba060049eB323 - inline BOOL HasPedHeadBlendFinished(Ped ped) { return _i(0x654CD0A825161131, ped); } // 0x654cd0a8251611310x2b1bd9c5B323 - inline Void FinalizeHeadBlend(Ped ped) { return _i(0x4668D80430D6C299, ped); } // 0x4668d80430d6c2990x894314a4B323 - // p4 seems to vary from 0 to 3. - // Preview: https://gfycat.com/MaleRareAmazonparrot - inline Void SetHeadBlendPaletteColor(Ped ped, int r, int g, int b, int id) { return _i(0xCC9682B8951C5229, ped, r, g, b, id); } // 0xcc9682b8951c52290x57e5b3f9B323 - inline Void DisableHeadBlendPaletteColor(Ped ped) { return _i(0xA21C118553BBDF02, ped); } // 0xa21c118553bbdf020xc6f36292B323 - // Type equals 0 for male non-dlc, 1 for female non-dlc, 2 for male dlc, and 3 for female dlc. - // - // Used when calling SetPedHeadBlendData. - inline int GetPedHeadBlendFirstIndex(int type) { return _i(0x68D353AB88B97E0C, type); } // 0x68d353ab88b97e0c0x211defecB323 - // Type equals 0 for male non-dlc, 1 for female non-dlc, 2 for male dlc, and 3 for female dlc. - inline int GetPedHeadBlendNumHeads(int type) { return _i(0x5EF37013A6539C9D, type); } // 0x5ef37013a6539c9d0x095d3bd8B323 - // from extreme3.c4 - // PED::SetPedPreloadVariationData(PLAYER::PlayerPedId(), 8, PED::GetPedDrawableVariation(PLAYER::PlayerPedId(), 8), PED::GetPedTextureVariation(PLAYER::PlayerPedId(), 8)); - // - // p1 is probably componentId - inline int SetPedPreloadVariationData(Ped ped, int slot, int drawableId, int textureId) { return _i(0x39D55A620FCB6A3A, ped, slot, drawableId, textureId); } // 0x39d55a620fcb6a3a0x45f3bdfbB323 - inline BOOL HasPedPreloadVariationDataFinished(Ped ped) { return _i(0x66680A92700F43DF, ped); } // 0x66680a92700f43df0xc6517d52B323 - inline Void ReleasePedPreloadVariationData(Ped ped) { return _i(0x5AAB586FFEC0FD96, ped); } // 0x5aab586ffec0fd960x6435f67fB323 - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline int SetPedPreloadPropData(Ped ped, int componentId, int drawableId, int TextureId) { return _i(0x2B16A3BFF1FBCE49, ped, componentId, drawableId, TextureId); } // 0x2b16a3bff1fbce490xc0e23671B323 - inline BOOL HasPedPreloadPropDataFinished(Ped ped) { return _i(0x784002A632822099, ped); } // 0x784002a6328220990x3b0ca391B323 - inline Void ReleasePedPreloadPropData(Ped ped) { return _i(0xF79F9DEF0AADE61A, ped); } // 0xf79f9def0aade61a0xfd103ba7B323 - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline int GetPedPropIndex(Ped ped, int componentId, Any p2) { return _i(0x898CC20EA75BACD8, ped, componentId, p2); } // 0x898cc20ea75bacd80x746ddac0B323 - // ComponentId can be set to various things based on what category you're wanting to set - // enum PedPropsData - // { - // PED_PROP_HATS = 0, - // PED_PROP_GLASSES = 1, - // PED_PROP_EARS = 2, - // PED_PROP_WATCHES = 3, - // }; - // Usage: SetPedPropIndex(playerPed, PED_PROP_HATS, GetNumberOfPedPropDrawableVariations(playerPed, PED_PROP_HATS), GetNumberOfPedPropTextureVariations(playerPed, PED_PROP_HATS, 0), TRUE); - // - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline Void SetPedPropIndex(Ped ped, int componentId, int drawableId, int TextureId, BOOL attach, Any p5) { return _i(0x93376B65A266EB5F, ped, componentId, drawableId, TextureId, attach, p5); } // 0x93376b65a266eb5f0x0829f2e2B323 - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline Void KnockOffPedProp(Ped ped, BOOL p1, BOOL p2, BOOL p3, BOOL p4) { return _i(0x6FD7816A36615F48, ped, p1, p2, p3, p4); } // 0x6fd7816a36615f480x08d8b180B323 - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline Void ClearPedProp(Ped ped, int propId, Any p2) { return _i(0x0943E5B8E078E76E, ped, propId, p2); } // 0x0943e5b8e078e76e0x2d23d743B323 - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline Void ClearAllPedProps(Ped ped, Any p1) { return _i(0xCD8A7537A9B52F06, ped, p1); } // 0xcd8a7537a9b52f060x81df8b43B323 - inline Void DropAmbientProp(Ped ped) { return _i(0xAFF4710E2A0A6C12, ped); } // 0xaff4710e2a0a6c120x728d3d53B323 - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline int GetPedPropTextureIndex(Ped ped, int componentId) { return _i(0xE131A28626F81AB2, ped, componentId); } // 0xe131a28626f81ab20x922a6653B323 - inline Void ClearPedParachutePackVariation(Ped ped) { return _i(0x1280804F7CFD2D6C, ped); } // 0x1280804f7cfd2d6c0x7bcd8991B323 - // This native sets a scuba mask for freemode models and an oxygen bottle for player_* models. It works on freemode and player_* models. - inline Void SetPedScubaGearVariation(Ped ped) { return _i(0x36C6984C3ED0C911, ped); } // 0x36c6984c3ed0c911B323 - // Removes the scubagear (for mp male: component id: 8, drawableId: 123, textureId: any) from peds. Does not play the 'remove scuba gear' animation, but instantly removes it. - inline Void ClearPedScubaGearVariation(Ped ped) { return _i(0xB50EB4CCB29704AC, ped); } // 0xb50eb4ccb29704ac0x080275eeB323 - inline BOOL IsUsingPedScubaGearVariation(Any p0) { return _i(0xFEC9A3B1820F3331, p0); } // 0xfec9a3b1820f3331B323 - // works with TASK::TaskSetBlockingOfNonTemporaryEvents to make a ped completely oblivious to all events going on around him - inline Void SetBlockingOfNonTemporaryEvents(Ped ped, BOOL toggle) { return _i(0x9F8AA94D6D97DBF4, ped, toggle); } // 0x9f8aa94d6d97dbf40xdfe34e4aB323 - inline Void SetPedBoundsOrientation(Ped ped, float p1, float p2, float x, float y, float z) { return _i(0x4F5F651ACCC9C4CF, ped, p1, p2, x, y, z); } // 0x4f5f651accc9c4cf0xcfa20d68B323 - // PED::RegisterTarget(l_216, PLAYER::PlayerPedId()); from re_prisonbreak.txt. - // - // l_216 = RECSBRobber1 - inline Void RegisterTarget(Ped ped, Ped target) { return _i(0x2F25D9AEFA34FBA2, ped, target); } // 0x2f25d9aefa34fba20x50a95442B323 - // Based on TaskCombatHatedTargetsAroundPed, the parameters are likely similar (PedHandle, and area to attack in). - inline Void RegisterHatedTargetsAroundPed(Ped ped, float radius) { return _i(0x9222F300BF8354FE, ped, radius); } // 0x9222f300bf8354fe0x7f87559eB323 - // Gets a random ped in the x/y/zRadius near the x/y/z coordinates passed. - // - // Ped Types: - // Any = -1 - // Player = 1 - // Male = 4 - // Female = 5 - // Cop = 6 - // Human = 26 - // SWAT = 27 - // Animal = 28 - // Army = 29 - inline Ped GetRandomPedAtCoord(float x, float y, float z, float xRadius, float yRadius, float zRadius, int pedType) { return _i(0x876046A8E3A4B71C, x, y, z, xRadius, yRadius, zRadius, pedType); } // 0x876046a8e3a4b71c0xdc8239ebB323 - // Gets the closest ped in a radius. - // - // Ped Types: - // Any ped = -1 - // Player = 1 - // Male = 4 - // Female = 5 - // Cop = 6 - // Human = 26 - // SWAT = 27 - // Animal = 28 - // Army = 29 - // - // ------------------ - // P4 P5 P7 P8 - // 1 0 x x = return nearest walking Ped - // 1 x 0 x = return nearest walking Ped - // x 1 1 x = return Ped you are using - // 0 0 x x = no effect - // 0 x 0 x = no effect - // - // x = can be 1 or 0. Does not have any obvious changes. - // - // This function does not return ped who is: - // 1. Standing still - // 2. Driving - // 3. Fleeing - // 4. Attacking - // - // This function only work if the ped is: - // 1. walking normally. - // 2. waiting to cross a road. - // - // Note: PED::GetPedNearbyPeds works for more peds. - inline BOOL GetClosestPed(float x, float y, float z, float radius, BOOL p4, BOOL p5, Ped* outPed, BOOL p7, BOOL p8, int pedType) { return _i(0xC33AB876A77F8164, x, y, z, radius, p4, p5, outPed, p7, p8, pedType); } // 0xc33ab876a77f81640x8f6c1f55B323 - // Sets a value indicating whether scenario peds should be returned by the next call to a command that returns peds. Eg. GetClosestPed. - inline Void SetScenarioPedsToBeReturnedByNextCommand(BOOL value) { return _i(0x14F19A8782C8071E, value); } // 0x14f19a8782c8071e0x85615fd0B323 - inline BOOL GetCanPedBeGrabbedByScript(Ped ped, BOOL p1, BOOL p2, BOOL p3, BOOL p4, BOOL p5, BOOL p6, BOOL p7, Any p8) { return _i(0x03EA03AF85A85CB7, ped, p1, p2, p3, p4, p5, p6, p7, p8); } // 0x03ea03af85a85cb70x18dd76a1B323 - // Scripts use 0.2, 0.5 and 1.0. Value must be >= 0.0 && <= 1.0 - inline Void SetDriverRacingModifier(Ped driver, float modifier) { return _i(0xDED5AF5A0EA4B297, driver, modifier); } // 0xded5af5a0ea4b2970x6d55b3b3B323 - // The function specifically verifies the value is equal to, or less than 1.0f. If it is greater than 1.0f, the function does nothing at all. - inline Void SetDriverAbility(Ped driver, float ability) { return _i(0xB195FFA8042FC5C3, driver, ability); } // 0xb195ffa8042fc5c30xaad4012cB323 - // range 0.0f - 1.0f - inline Void SetDriverAggressiveness(Ped driver, float aggressiveness) { return _i(0xA731F608CA104E3C, driver, aggressiveness); } // 0xa731f608ca104e3c0x8b02a8fbB323 - // Prevents the ped from going limp. - // - // [Example: Can prevent peds from falling when standing on moving vehicles.] - inline BOOL CanPedRagdoll(Ped ped) { return _i(0x128F79EDCECE4FD5, ped); } // 0x128f79edcece4fd50xc0efb7a3B323 - // p4/p5: Unused in TU27 - // Ragdoll Types: - // **0**: CTaskNMRelax - // **1**: CTaskNMScriptControl: Hardcoded not to work in networked environments. - // **Else**: CTaskNMBalance - // time1- Time(ms) Ped is in ragdoll mode; only applies to ragdoll types 0 and not 1. - // - // time2- Unknown time, in milliseconds - // - // ragdollType- - // 0 : Normal ragdoll - // 1 : Falls with stiff legs/body - // 2 : Narrow leg stumble(may not fall) - // 3 : Wide leg stumble(may not fall) - // - // p4, p5, p6- No idea. In R*'s scripts they are usually either "true, true, false" or "false, false, false". - // - // - // - // - // EDIT 3/11/16: unclear what 'mircoseconds' mean-- a microsecond is 1000x a ms, so time2 must be 1000x time1? more testing needed. -sob - // - // Edit Mar 21, 2017: removed part about time2 being the microseconds version of time1. this just isn't correct. time2 is in milliseconds, and time1 and time2 don't seem to be connected in any way. - inline BOOL SetPedToRagdoll(Ped ped, int time1, int time2, int ragdollType, BOOL p4, BOOL p5, BOOL p6) { return _i(0xAE99FB955581844A, ped, time1, time2, ragdollType, p4, p5, p6); } // 0xae99fb955581844a0x83cb5052B323 - // Return variable is never used in R*'s scripts. - // - // Not sure what p2 does. It seems like it would be a time judging by it's usage in R*'s scripts, but didn't seem to affect anything in my testings. - // - // enum eRagdollType - // { - // RD_MALE=0, - // RD_FEMALE = 1, - // RD_MALE_LARGE = 2, - // RD_CUSTOM = 3, - // } - // - // x, y, and z are coordinates, most likely to where the ped will fall. - // - // p8 to p13 are always 0f in R*'s scripts. - // - // (Simplified) Example of the usage of the function from R*'s scripts: - // ped::set_ped_to_ragdoll_with_fall(ped, 1500, 2000, 1, -entity::get_entity_forward_vector(ped), 1f, 0f, 0f, 0f, 0f, 0f, 0f); - // - inline BOOL SetPedToRagdollWithFall(Ped ped, int time, int p2, int ragdollType, float x, float y, float z, float velocity, float p8, float p9, float p10, float p11, float p12, float p13) { return _i(0xD76632D99E4966C8, ped, time, p2, ragdollType, x, y, z, velocity, p8, p9, p10, p11, p12, p13); } // 0xd76632d99e4966c80xfa12e286B323 - // Causes Ped to ragdoll on collision with any object (e.g Running into trashcan). If applied to player you will sometimes trip on the sidewalk. - inline Void SetPedRagdollOnCollision(Ped ped, BOOL toggle) { return _i(0xF0A4F1BBF4FA7497, ped, toggle); } // 0xf0a4f1bbf4fa74970x2654a0f4B323 - // If the ped handle passed through the parenthesis is in a ragdoll state this will return true. - inline BOOL IsPedRagdoll(Ped ped) { return _i(0x47E4E977581C5B55, ped); } // 0x47e4e977581c5b550xc833bbe1B323 - inline BOOL IsPedRunningRagdollTask(Ped ped) { return _i(0xE3B6097CC25AA69E, ped); } // 0xe3b6097cc25aa69e0x44a153f2B323 - inline Void SetPedRagdollForceFall(Ped ped) { return _i(0x01F6594B923B9251, ped); } // 0x01f6594b923b92510x20a5bde0B323 - inline Void ResetPedRagdollTimer(Ped ped) { return _i(0x9FA4664CF62E47E8, ped); } // 0x9fa4664cf62e47e80xf2865370B323 - inline Void SetPedCanRagdoll(Ped ped, BOOL toggle) { return _i(0xB128377056A54E2A, ped, toggle); } // 0xb128377056a54e2a0xcf1384c4B323 - inline BOOL IsPedRunningMeleeTask(Ped ped) { return _i(0xD1871251F3B5ACD7, ped); } // 0xd1871251f3b5acd70xbd4236f6B323 - inline BOOL IsPedRunningMobilePhoneTask(Ped ped) { return _i(0x2AFE52F782F25775, ped); } // 0x2afe52f782f257750xfb2afed1B323 - inline BOOL IsMobilePhoneToPedEar(Ped ped) { return _i(0xA3F3564A5B3646C0, ped); } // 0xa3f3564a5b3646c00x97353375B323 - // Works for both player and peds, - // - // enum eRagdollBlockingFlags - // { - // RBF_BULLET_IMPACT = 0, - // RBF_VEHICLE_IMPACT = 1, - // RBF_FIRE = 2, - // RBF_ELECTROCUTION = 3, - // RBF_PLAYER_IMPACT = 4, - // RBF_EXPLOSION = 5,0 - // RBF_IMPACT_OBJECT = 6, - // RBF_MELEE = 7, - // RBF_RUBBER_BULLET = 8, - // RBF_FALLING = 9, - // RBF_WATER_JET = 10, - // RBF_DROWNING = 11, - // _0x9F52E2C4 = 12, - // RBF_PLAYER_BUMP = 13, - // RBF_PLAYER_RAGDOLL_BUMP = 14, - // RBF_PED_RAGDOLL_BUMP = 15, - // RBF_VEHICLE_GRAB = 16, - // RBF_SMOKE_GRENADE = 17, - // }; - // - // - inline Void SetRagdollBlockingFlags(Ped ped, int blockingFlag) { return _i(0x26695EC767728D84, ped, blockingFlag); } // 0x26695ec767728d840x9c8f830dB323 - // See SetRagdollBlockingFlags for flags - inline Void ClearRagdollBlockingFlags(Ped ped, int blockingFlag) { return _i(0xD86D101FCFD00A4B, ped, blockingFlag); } // 0xd86d101fcfd00a4b0x77cba290B323 - inline Void SetPedAngledDefensiveArea(Ped ped, float p1, float p2, float p3, float p4, float p5, float p6, float p7, BOOL p8, BOOL p9) { return _i(0xC7F76DF27A5045A1, ped, p1, p2, p3, p4, p5, p6, p7, p8, p9); } // 0xc7f76df27a5045a10x3efbdd9bB323 - inline Void SetPedSphereDefensiveArea(Ped ped, float x, float y, float z, float radius, BOOL p5, BOOL p6) { return _i(0x9D3151A373974804, ped, x, y, z, radius, p5, p6); } // 0x9d3151a3739748040xbd96d8e8B323 - inline Void SetPedDefensiveSphereAttachedToPed(Ped ped, Ped target, float xOffset, float yOffset, float zOffset, float radius, BOOL p6) { return _i(0xF9B8F91AAD3B953E, ped, target, xOffset, yOffset, zOffset, radius, p6); } // 0xf9b8f91aad3b953e0x40638bdcB323 - inline Void SetPedDefensiveSphereAttachedToVehicle(Ped ped, Vehicle target, float xOffset, float yOffset, float zOffset, float radius, BOOL p6) { return _i(0xE4723DB6E736CCFF, ped, target, xOffset, yOffset, zOffset, radius, p6); } // 0xe4723db6e736ccff0x4763b2c6B323 - inline Void SetPedDefensiveAreaAttachedToPed(Ped ped, Ped attachPed, float p2, float p3, float p4, float p5, float p6, float p7, float p8, BOOL p9, BOOL p10) { return _i(0x4EF47FE21698A8B6, ped, attachPed, p2, p3, p4, p5, p6, p7, p8, p9, p10); } // 0x4ef47fe21698a8b60x74bda7ceB323 - inline Void SetPedDefensiveAreaDirection(Ped ped, float p1, float p2, float p3, BOOL p4) { return _i(0x413C6C763A4AFFAD, ped, p1, p2, p3, p4); } // 0x413c6c763a4affad0xb66b0c9aB323 - // Ped will no longer get angry when you stay near him. - inline Void RemovePedDefensiveArea(Ped ped, BOOL toggle) { return _i(0x74D4E028107450A9, ped, toggle); } // 0x74d4e028107450a90x34aaafa5B323 - inline Vector3 GetPedDefensiveAreaPosition(Ped ped, BOOL p1) { return _i(0x3C06B8786DD94CD1, ped, p1); } // 0x3c06b8786dd94cd10xcb65198dB323 - inline BOOL IsPedDefensiveAreaActive(Ped ped, BOOL p1) { return _i(0xBA63D9FE45412247, ped, p1); } // 0xba63d9fe454122470x6d88bcd3B323 - inline Void SetPedPreferredCoverSet(Ped ped, Any itemSet) { return _i(0x8421EB4DA7E391B9, ped, itemSet); } // 0x8421eb4da7e391b90xf3b7efbfB323 - inline Void RemovePedPreferredCoverSet(Ped ped) { return _i(0xFDDB234CF74073D9, ped); } // 0xfddb234cf74073d90xa0134498B323 - // It will revive/cure the injured ped. The condition is ped must not be dead. - // - // Upon setting and converting the health int, found, if health falls below 5, the ped will lay on the ground in pain(Maximum default health is 100). - // - // This function is well suited there. - inline Void ReviveInjuredPed(Ped ped) { return _i(0x8D8ACD8388CD99CE, ped); } // 0x8d8acd8388cd99ce0x14d3e6e3B323 - // This function will simply bring the dead person back to life. - // - // Try not to use it alone, since using this function alone, will make peds fall through ground in hell(well for the most of the times). - // - // Instead, before calling this function, you may want to declare the position, where your Resurrected ped to be spawn at.(For instance, Around 2 floats of Player's current position.) - // - // Also, disabling any assigned task immediately helped in the number of scenarios, where If you want peds to perform certain decided tasks. - inline Void ResurrectPed(Ped ped) { return _i(0x71BC8E838B9C6035, ped); } // 0x71bc8e838b9c60350xa4b82097B323 - // NOTE: Debugging functions are not present in the retail version of the game. - // - // *untested but char *name could also be a hash for a localized string - inline Void SetPedNameDebug(Ped ped, String name) { return _i(0x98EFA132A4117BE1, ped, name); } // 0x98efa132a4117be10x20d6273eB323 - // Gets the offset the specified ped has moved since the previous tick. - // - // If worldSpace is false, the returned offset is relative to the ped. That is, if the ped has moved 1 meter right and 5 meters forward, it'll return 1,5,0. - // - // If worldSpace is true, the returned offset is relative to the world. That is, if the ped has moved 1 meter on the X axis and 5 meters on the Y axis, it'll return 1,5,0. - inline Vector3 GetPedExtractedDisplacement(Ped ped, BOOL worldSpace) { return _i(0xE0AF41401ADF87E3, ped, worldSpace); } // 0xe0af41401adf87e30x5231f901B323 - inline Void SetPedDiesWhenInjured(Ped ped, BOOL toggle) { return _i(0x5BA7919BED300023, ped, toggle); } // 0x5ba7919bed3000230xe94e24d4B323 - inline Void SetPedEnableWeaponBlocking(Ped ped, BOOL toggle) { return _i(0x97A790315D3831FD, ped, toggle); } // 0x97a790315d3831fd0x4cad1a4aB323 - // p1 was always 1 (true). - // - // Kicks the ped from the current vehicle and keeps the rendering-focus on this ped (also disables its collision). If doing this for your player ped, you'll still be able to drive the vehicle. - inline Void SpecialFunctionDoNotUse(Ped ped, BOOL p1) { return _i(0xF9ACF4A08098EA25, ped, p1); } // 0xf9acf4a08098ea250x141cc936B323 - inline Void ResetPedVisibleDamage(Ped ped) { return _i(0x3AC1F7B898F30C05, ped); } // 0x3ac1f7b898f30c050xc4bc4841B323 - inline Void ApplyPedBloodDamageByZone(Ped ped, Any p1, float p2, float p3, Any p4) { return _i(0x816F6981C60BF53B, ped, p1, p2, p3, p4); } // 0x816f6981c60bf53b0x1e54db12B323 - // woundTypes: - // - soak_splat - // - wound_sheet - // - BulletSmall - // - BulletLarge - // - ShotgunSmall - // - ShotgunSmallMonolithic - // - ShotgunLarge - // - ShotgunLargeMonolithic - // - NonFatalHeadshot - // - stab - // - BasicSlash - // - Scripted_Ped_Splash_Back - // - BackSplash - inline Void ApplyPedBlood(Ped ped, int boneIndex, float xRot, float yRot, float zRot, String woundType) { return _i(0x83F7E01C7B769A26, ped, boneIndex, xRot, yRot, zRot, woundType); } // 0x83f7e01c7b769a260x376ce3c0B323 - inline Void ApplyPedBloodByZone(Ped ped, int p1, float p2, float p3, String p4) { return _i(0x3311E47B91EDCBBC, ped, p1, p2, p3, p4); } // 0x3311e47b91edcbbc0x8f3f3a9cB323 - inline Void ApplyPedBloodSpecific(Ped ped, int p1, float p2, float p3, float p4, float p5, int p6, float p7, String p8) { return _i(0xEF0D582CBF2D9B0F, ped, p1, p2, p3, p4, p5, p6, p7, p8); } // 0xef0d582cbf2d9b0f0xfc13ce80B323 - // enum eDamageZone - // { - // DZ_Torso = 0, - // DZ_Head, - // DZ_LeftArm, - // DZ_RightArm, - // DZ_LeftLeg, - // DZ_RightLeg, - // }; - // - // Decal Names: - // scar - // blushing - // cs_flush_anger - // cs_flush_anger_face - // bruise - // bruise_large - // herpes - // ArmorBullet - // basic_dirt_cloth - // basic_dirt_skin - // cs_trev1_dirt - // - // ApplyPedDamageDecal(ped, 1, 0.5f, 0.513f, 0f, 1f, unk, 0, 0, "blushing"); - inline Void ApplyPedDamageDecal(Ped ped, int damageZone, float xOffset, float yOffset, float heading, float scale, float alpha, int variation, BOOL fadeIn, String decalName) { return _i(0x397C38AA7B4A5F83, ped, damageZone, xOffset, yOffset, heading, scale, alpha, variation, fadeIn, decalName); } // 0x397c38aa7b4a5f830x8a13a41fB323 - // Damage Packs: - // - // "SCR_TrevorTreeBang" - // "HOSPITAL_0" - // "HOSPITAL_1" - // "HOSPITAL_2" - // "HOSPITAL_3" - // "HOSPITAL_4" - // "HOSPITAL_5" - // "HOSPITAL_6" - // "HOSPITAL_7" - // "HOSPITAL_8" - // "HOSPITAL_9" - // "SCR_Dumpster" - // "BigHitByVehicle" - // "SCR_Finale_Michael_Face" - // "SCR_Franklin_finb" - // "SCR_Finale_Michael" - // "SCR_Franklin_finb2" - // "Explosion_Med" - // "SCR_Torture" - // "SCR_TracySplash" - // "Skin_Melee_0" - // - // Additional damage packs: - // - // gist.github.com/alexguirre/f3f47f75ddcf617f416f3c8a55ae2227 - // Full list of ped damage packs by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedDamagePacks.json - inline Void ApplyPedDamagePack(Ped ped, String damagePack, float damage, float mult) { return _i(0x46DF918788CB093F, ped, damagePack, damage, mult); } // 0x46df918788cb093f0x208d0cb8B323 - inline Void ClearPedBloodDamage(Ped ped) { return _i(0x8FE22675A5A45817, ped); } // 0x8fe22675a5a458170xf7adc960B323 - // Somehow related to changing ped's clothes. - inline Void ClearPedBloodDamageByZone(Ped ped, int p1) { return _i(0x56E3B78C5408D9F4, ped, p1); } // 0x56e3b78c5408d9f40xf210be69B323 - inline Void HidePedBloodDamageByZone(Ped ped, Any p1, BOOL p2) { return _i(0x62AB793144DE75DC, ped, p1, p2); } // 0x62ab793144de75dc0x0cb6c4edB323 - // p1: from 0 to 5 in the b617d scripts. - // p2: "blushing" and "ALL" found in the b617d scripts. - inline Void ClearPedDamageDecalByZone(Ped ped, int p1, String p2) { return _i(0x523C79AEEFCC4A2A, ped, p1, p2); } // 0x523c79aeefcc4a2a0x70aa5b7dB323 - inline int GetPedDecorationsState(Ped ped) { return _i(0x71EAB450D86954A1, ped); } // 0x71eab450d86954a10x47187f7fB323 - inline Void MarkPedDecorationsAsClonedFromLocalPlayer(Ped ped, BOOL p1) { return _i(0x2B694AFCF64E6994, ped, p1); } // 0x2b694afcf64e6994B323 - // It clears the wetness of the selected Ped/Player. Clothes have to be wet to notice the difference. - inline Void ClearPedWetness(Ped ped) { return _i(0x9C720776DAA43E7E, ped); } // 0x9c720776daa43e7e0x629f15bdB323 - // It adds the wetness level to the player clothing/outfit. As if player just got out from water surface. - // - // - inline Void SetPedWetnessHeight(Ped ped, float height) { return _i(0x44CB6447D2571AA0, ped, height); } // 0x44cb6447d2571aa00x7b33289aB323 - // combined with PED::SetPedWetnessHeight(), this native makes the ped drenched in water up to the height specified in the other function - inline Void SetPedWetnessEnabledThisFrame(Ped ped) { return _i(0xB5485E4907B53019, ped); } // 0xb5485e4907b530190xbde749f7B323 - inline Void SetPedWetness(Ped ped, float wetLevel) { return _i(0xAC0BB4D87777CAE2, ped, wetLevel); } // 0xac0bb4d87777cae2B2802 - inline Void ClearPedEnvDirt(Ped ped) { return _i(0x6585D955A68452A5, ped); } // 0x6585d955a68452a50xa993915fB323 - // Sweat is set to 100.0 or 0.0 in the decompiled scripts. - inline Void SetPedSweat(Ped ped, float sweat) { return _i(0x27B0405F59637D1F, ped, sweat); } // 0x27b0405f59637d1f0x76a1db9fB323 - // Applies an Item from a PedDecorationCollection to a ped. These include tattoos and shirt decals. - // - // collection - PedDecorationCollection filename hash - // overlay - Item name hash - // - // Example: - // Entry inside "mpbeach_overlays.xml" - - // - // - // - // - // FM_Hair_Fuzz - // mp_hair_fuzz - // mp_hair_fuzz - // ZONE_HEAD - // TYPE_TATTOO - // FM - // All - // GENDER_DONTCARE - // - // - // - // - // Code: - // PED::AddPedDecorationFromHashes(PLAYER::PlayerPedId(), MISC::GetHashKey("mpbeach_overlays"), MISC::GetHashKey("fm_hair_fuzz")) - // - // Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json - inline Void AddPedDecorationFromHashes(Ped ped, Hash collection, Hash overlay) { return _i(0x5F5D1665E352A839, ped, collection, overlay); } // 0x5f5d1665e352a8390x70559ac7B323 - // Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json - inline Void AddPedDecorationFromHashesInCorona(Ped ped, Hash collection, Hash overlay) { return _i(0x5619BFA07CFD7833, ped, collection, overlay); } // 0x5619bfa07cfd78330x8cd3e487B323 - // Returns the zoneID for the overlay if it is a member of collection. - // enum ePedDecorationZone - // { - // ZONE_TORSO = 0, - // ZONE_HEAD = 1, - // ZONE_LEFT_ARM = 2, - // ZONE_RIGHT_ARM = 3, - // ZONE_LEFT_LEG = 4, - // ZONE_RIGHT_LEG = 5, - // ZONE_MEDALS = 6, - // ZONE_INVALID = 7 - // }; - // - // Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json - inline int GetPedDecorationZoneFromHashes(Hash collection, Hash overlay) { return _i(0x9FD452BFBE7A7A8B, collection, overlay); } // 0x9fd452bfbe7a7a8b0x3543019eB323 - inline Void ClearPedDecorations(Ped ped) { return _i(0x0E5173C163976E38, ped); } // 0x0e5173c163976e380xd4496bf3B323 - inline Void ClearPedDecorationsLeaveScars(Ped ped) { return _i(0xE3B27E70CEAB9F0C, ped); } // 0xe3b27e70ceab9f0c0xefd58eb9B323 - // Despite this function's name, it simply returns whether the specified handle is a Ped. - inline BOOL WasPedSkeletonUpdated(Ped ped) { return _i(0x11B499C1E0FF8559, ped); } // 0x11b499c1e0ff85590xf7e2fbadB323 - // Gets the position of the specified bone of the specified ped. - // - // ped: The ped to get the position of a bone from. - // boneId: The ID of the bone to get the position from. This is NOT the index. - // offsetX: The X-component of the offset to add to the position relative to the bone's rotation. - // offsetY: The Y-component of the offset to add to the position relative to the bone's rotation. - // offsetZ: The Z-component of the offset to add to the position relative to the bone's rotation. - inline Vector3 GetPedBoneCoords(Ped ped, int boneId, float offsetX, float offsetY, float offsetZ) { return _i(0x17C07FC640E86B4E, ped, boneId, offsetX, offsetY, offsetZ); } // 0x17c07fc640e86b4e0x4579cab1B323 - // Creates a new NaturalMotion message. - // - // startImmediately: If set to true, the character will perform the message the moment it receives it by GivePedNmMessage. If false, the Ped will get the message but won't perform it yet. While it's a boolean value, if negative, the message will not be initialized. - // messageId: The ID of the NaturalMotion message. - // - // If a message already exists, this function does nothing. A message exists until the point it has been successfully dispatched by GivePedNmMessage. - inline Void CreateNmMessage(BOOL startImmediately, int messageId) { return _i(0x418EF2A1BCE56685, startImmediately, messageId); } // 0x418ef2a1bce566850x1cfbfd4bB323 - // Sends the message that was created by a call to CreateNmMessage to the specified Ped. - // - // If a message hasn't been created already, this function does nothing. - // If the Ped is not ragdolled with Euphoria enabled, this function does nothing. - // The following call can be used to ragdoll the Ped with Euphoria enabled: SetPedToRagdoll(ped, 4000, 5000, 1, 1, 1, 0); - // - // Call order: - // SetPedToRagdoll - // CreateNmMessage - // GivePedNmMessage - // - // Multiple messages can be chained. Eg. to make the ped stagger and swing his arms around, the following calls can be made: - // SetPedToRagdoll(ped, 4000, 5000, 1, 1, 1, 0); - // CreateNmMessage(true, 0); // stopAllBehaviours - Stop all other behaviours, in case the Ped is already doing some Euphoria stuff. - // GivePedNmMessage(ped); // Dispatch message to Ped. - // CreateNmMessage(true, 1151); // staggerFall - Attempt to walk while falling. - // GivePedNmMessage(ped); // Dispatch message to Ped. - // CreateNmMessage(true, 372); // armsWindmill - Swing arms around. - // GivePedNmMessage(ped); // Dispatch message to Ped. - inline Void GivePedNmMessage(Ped ped) { return _i(0xB158DFCCC56E5C5B, ped); } // 0xb158dfccc56e5c5b0x737c3689B323 - inline int AddScenarioBlockingArea(float x1, float y1, float z1, float x2, float y2, float z2, BOOL p6, BOOL p7, BOOL p8, BOOL p9) { return _i(0x1B5C85C612E5256E, x1, y1, z1, x2, y2, z2, p6, p7, p8, p9); } // 0x1b5c85c612e5256e0xa38c0234B323 - inline Void RemoveScenarioBlockingAreas() { return _i(0xD37401D78A929A49); } // 0xd37401d78a929a490x4ddf845fB323 - inline Void RemoveScenarioBlockingArea(Any p0, BOOL p1) { return _i(0x31D16B74C6E29D66, p0, p1); } // 0x31d16b74c6e29d660x4483ef06B323 - inline Void SetScenarioPedsSpawnInSphereArea(float x, float y, float z, float range, int p4) { return _i(0x28157D43CF600981, x, y, z, range, p4); } // 0x28157d43cf6009810x80ead297B323 - inline BOOL DoesScenarioBlockingAreaExists(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x8A24B067D175A7BD, x1, y1, z1, x2, y2, z2); } // 0x8a24b067d175a7bdB678 - // Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json - inline BOOL IsPedUsingScenario(Ped ped, String scenario) { return _i(0x1BF094736DD62C2E, ped, scenario); } // 0x1bf094736dd62c2e0x0f65b0d4B323 - inline BOOL IsPedUsingAnyScenario(Ped ped) { return _i(0x57AB4A3080F85143, ped); } // 0x57ab4a3080f851430x195ef5b7B323 - inline BOOL SetPedPanicExitScenario(Any p0, Any p1, Any p2, Any p3) { return _i(0xFE07FF6495D52E2A, p0, p1, p2, p3); } // 0xfe07ff6495d52e2a0x59de73acB323 - inline Void ToggleScenarioPedCowerInPlace(Ped ped, BOOL toggle) { return _i(0x9A77DFD295E29B09, ped, toggle); } // 0x9a77dfd295e29b090xc08fe5f6B323 - inline BOOL TriggerPedScenarioPanicexittoflee(Any p0, Any p1, Any p2, Any p3) { return _i(0x25361A96E0F7E419, p0, p1, p2, p3); } // 0x25361a96e0f7e4190x58c0f6cfB323 - inline BOOL SetPedShouldPlayDirectedNormalScenarioExit(Any p0, Any p1, Any p2, Any p3) { return _i(0xEC6935EBE0847B90, p0, p1, p2, p3); } // 0xec6935ebe0847b90B323 - inline Void SetPedShouldPlayNormalScenarioExit(Ped ped) { return _i(0xA3A9299C4F2ADB98, ped); } // 0xa3a9299c4f2adb980x033f43faB323 - inline Void SetPedShouldPlayImmediateScenarioExit(Ped ped) { return _i(0xF1C03A5352243A30, ped); } // 0xf1c03a5352243a300x4c684c81B323 - inline BOOL SetPedShouldPlayFleeScenarioExit(Ped ped, Any p1, Any p2, Any p3) { return _i(0xEEED8FAFEC331A70, ped, p1, p2, p3); } // 0xeeed8fafec331a700x7b4c3e6fB323 - inline Void SetPedShouldIgnoreScenarioExitCollisionChecks(Ped ped, BOOL p1) { return _i(0x425AECF167663F48, ped, p1); } // 0x425aecf167663f480x5bc276aeB323 - inline Void SetPedShouldIgnoreScenarioNavChecks(Any p0, BOOL p1) { return _i(0x5B6010B3CBC29095, p0, p1); } // 0x5b6010b3cbc29095B323 - inline Void SetPedShouldProbeForScenarioExitsInOneFrame(Any p0, BOOL p1) { return _i(0xCEDA60A74219D064, p0, p1); } // 0xceda60a74219d064B323 - inline BOOL IsPedGesturing(Any p0) { return _i(0xC30BDAEE47256C13, p0); } // 0xc30bdaee47256c13B1868 - inline Void ResetFacialIdleAnim(Ped ped) { return _i(0x007FDE5A7897E426, ped); } // 0x007fde5a7897e426B2802 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline Void PlayFacialAnim(Ped ped, String animName, String animDict) { return _i(0xE1E65CA8AC9C00ED, ped, animName, animDict); } // 0xe1e65ca8ac9c00ed0x1f6ccddeB323 - // Clipsets: - // facials@gen_female@base - // facials@gen_male@base - // facials@p_m_zero@base - // - // Typically followed with SetFacialIdleAnimOverride: - // mood_drunk_1 - // mood_stressed_1 - // mood_happy_1 - // mood_talking_1 - // - inline Void SetFacialClipset(Ped ped, String animDict) { return _i(0x5687C7F05B39E401, ped, animDict); } // 0x5687c7f05b39e401B1493 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline Void SetFacialIdleAnimOverride(Ped ped, String animName, String animDict) { return _i(0xFFC24B988B938B38, ped, animName, animDict); } // 0xffc24b988b938b380x9ba19c13B323 - inline Void ClearFacialIdleAnimOverride(Ped ped) { return _i(0x726256CC1EEB182F, ped); } // 0x726256cc1eeb182f0x5244f4e2B323 - inline Void SetPedCanPlayGestureAnims(Ped ped, BOOL toggle) { return _i(0xBAF20C5432058024, ped, toggle); } // 0xbaf20c54320580240xe131e3b3B323 - // p2 usually 0 - inline Void SetPedCanPlayVisemeAnims(Ped ped, BOOL toggle, BOOL p2) { return _i(0xF833DDBA3B104D43, ped, toggle, p2); } // 0xf833ddba3b104d430xa2fdaf27B323 - inline Void SetPedIsIgnoredByAutoOpenDoors(Ped ped, BOOL p1) { return _i(0x33A60D8BDD6E508C, ped, p1); } // 0x33a60d8bdd6e508c0xadb2511aB323 - inline Void SetPedCanPlayAmbientAnims(Ped ped, BOOL toggle) { return _i(0x6373D1349925A70E, ped, toggle); } // 0x6373d1349925a70e0xf8053081B323 - inline Void SetPedCanPlayAmbientBaseAnims(Ped ped, BOOL toggle) { return _i(0x0EB0585D15254740, ped, toggle); } // 0x0eb0585d152547400x5720a5ddB323 - inline Void TriggerIdleAnimationOnPed(Ped ped) { return _i(0xC2EE020F5FB4DB53, ped); } // 0xc2ee020f5fb4db530xb7cd0a49B323 - inline Void SetPedCanArmIk(Ped ped, BOOL toggle) { return _i(0x6C3B4D6D13B4C841, ped, toggle); } // 0x6c3b4d6d13b4c8410x343b4de0B323 - inline Void SetPedCanHeadIk(Ped ped, BOOL toggle) { return _i(0xC11C18092C5530DC, ped, toggle); } // 0xc11c18092c5530dc0xd3b04476B323 - inline Void SetPedCanLegIk(Ped ped, BOOL toggle) { return _i(0x73518ECE2485412B, ped, toggle); } // 0x73518ece2485412b0x9955bc6fB323 - inline Void SetPedCanTorsoIk(Ped ped, BOOL toggle) { return _i(0xF2B7106D37947CE0, ped, toggle); } // 0xf2b7106d37947ce00x8e5d4eabB323 - inline Void SetPedCanTorsoReactIk(Ped ped, BOOL p1) { return _i(0xF5846EDB26A98A24, ped, p1); } // 0xf5846edb26a98a240x7b0040a8B323 - inline Void SetPedCanTorsoVehicleIk(Ped ped, BOOL p1) { return _i(0x6647C5F6F5792496, ped, p1); } // 0x6647c5f6f57924960x0fda62deB323 - inline Void SetPedCanUseAutoConversationLookat(Ped ped, BOOL toggle) { return _i(0xEC4686EC06434678, ped, toggle); } // 0xec4686ec064346780x584c5178B323 - inline BOOL IsPedHeadtrackingPed(Ped ped1, Ped ped2) { return _i(0x5CD3CB88A7F8850D, ped1, ped2); } // 0x5cd3cb88a7f8850d0x2a5df721B323 - inline BOOL IsPedHeadtrackingEntity(Ped ped, Entity entity) { return _i(0x813A0A7C9D2E831F, ped, entity); } // 0x813a0a7c9d2e831f0x233c9acfB323 - // This is only called once in the scripts. - // - // sub_1CD9(&l_49, 0, getElem(3, &l_34, 4), "MICHAEL", 0, 1); - // sub_1CA8("WORLD_HUMAN_SMOKING", 2); - // PED::SetPedPrimaryLookat(getElem(3, &l_34, 4), PLAYER::PlayerPedId()); - inline Void SetPedPrimaryLookat(Ped ped, Ped lookAt) { return _i(0xCD17B554996A8D9E, ped, lookAt); } // 0xcd17b554996a8d9e0x6def6f1cB323 - inline Void SetPedClothPinFrames(Any p0, Any p1) { return _i(0x78C4E9961DB3EB5B, p0, p1); } // 0x78c4e9961db3eb5bB323 - inline Void SetPedClothPackageIndex(Any p0, Any p1) { return _i(0x82A3D6D9CC2CB8E3, p0, p1); } // 0x82a3d6d9cc2cb8e3B323 - inline Void SetPedClothProne(Any p0, BOOL p1) { return _i(0xA660FAF550EB37E5, p0, p1); } // 0xa660faf550eb37e5B323 - // enum ePedConfigFlags - // { - // _CPED_CONFIG_FLAG_0xC63DE95E = 1, - // CPED_CONFIG_FLAG_NoCriticalHits = 2, - // CPED_CONFIG_FLAG_DrownsInWater = 3, - // CPED_CONFIG_FLAG_DisableReticuleFixedLockon = 4, - // _CPED_CONFIG_FLAG_0x37D196F4 = 5, - // _CPED_CONFIG_FLAG_0xE2462399 = 6, - // CPED_CONFIG_FLAG_UpperBodyDamageAnimsOnly = 7, - // _CPED_CONFIG_FLAG_0xEDDEB838 = 8, - // _CPED_CONFIG_FLAG_0xB398B6FD = 9, - // _CPED_CONFIG_FLAG_0xF6664E68 = 10, - // _CPED_CONFIG_FLAG_0xA05E7CA3 = 11, - // _CPED_CONFIG_FLAG_0xCE394045 = 12, - // CPED_CONFIG_FLAG_NeverLeavesGroup = 13, - // _CPED_CONFIG_FLAG_0xCD8D1411 = 14, - // _CPED_CONFIG_FLAG_0xB031F1A9 = 15, - // _CPED_CONFIG_FLAG_0xFE65BEE3 = 16, - // CPED_CONFIG_FLAG_BlockNonTemporaryEvents = 17, - // _CPED_CONFIG_FLAG_0x380165BD = 18, - // _CPED_CONFIG_FLAG_0x07C045C7 = 19, - // _CPED_CONFIG_FLAG_0x583B5E2D = 20, - // _CPED_CONFIG_FLAG_0x475EDA58 = 21, - // _CPED_CONFIG_FLAG_0x8629D05B = 22, - // _CPED_CONFIG_FLAG_0x1522968B = 23, - // CPED_CONFIG_FLAG_IgnoreSeenMelee = 24, - // _CPED_CONFIG_FLAG_0x4CC09C4B = 25, - // _CPED_CONFIG_FLAG_0x034F3053 = 26, - // _CPED_CONFIG_FLAG_0xD91BA7CC = 27, - // _CPED_CONFIG_FLAG_0x5C8DC66E = 28, - // CPED_CONFIG_FLAG_GetOutUndriveableVehicle = 29, - // _CPED_CONFIG_FLAG_0x6580B9D2 = 30, - // _CPED_CONFIG_FLAG_0x0EF7A297 = 31, - // CPED_CONFIG_FLAG_WillFlyThruWindscreen = 32, - // CPED_CONFIG_FLAG_DieWhenRagdoll = 33, - // CPED_CONFIG_FLAG_HasHelmet = 34, - // CPED_CONFIG_FLAG_UseHelmet = 35, - // CPED_CONFIG_FLAG_DontTakeOffHelmet = 36, - // _CPED_CONFIG_FLAG_0xB130D17B = 37, - // _CPED_CONFIG_FLAG_0x5F071200 = 38, - // CPED_CONFIG_FLAG_DisableEvasiveDives = 39, - // _CPED_CONFIG_FLAG_0xC287AAFF = 40, - // _CPED_CONFIG_FLAG_0x203328CC = 41, - // CPED_CONFIG_FLAG_DontInfluenceWantedLevel = 42, - // CPED_CONFIG_FLAG_DisablePlayerLockon = 43, - // CPED_CONFIG_FLAG_DisableLockonToRandomPeds = 44, - // CPED_CONFIG_FLAG_AllowLockonToFriendlyPlayers = 45, - // _CPED_CONFIG_FLAG_0xDB115BFA = 46, - // CPED_CONFIG_FLAG_PedBeingDeleted = 47, - // CPED_CONFIG_FLAG_BlockWeaponSwitching = 48, - // _CPED_CONFIG_FLAG_0xF8E99565 = 49, - // _CPED_CONFIG_FLAG_0xDD17FEE6 = 50, - // _CPED_CONFIG_FLAG_0x7ED9B2C9 = 51, - // _CPED_CONFIG_FLAG_NoCollison = 52, - // _CPED_CONFIG_FLAG_0x5A6C1F6E = 53, - // _CPED_CONFIG_FLAG_0xD749FC41 = 54, - // _CPED_CONFIG_FLAG_0x357F63F3 = 55, - // _CPED_CONFIG_FLAG_0xC5E60961 = 56, - // _CPED_CONFIG_FLAG_0x29275C3E = 57, - // CPED_CONFIG_FLAG_IsFiring = 58, - // CPED_CONFIG_FLAG_WasFiring = 59, - // CPED_CONFIG_FLAG_IsStanding = 60, - // CPED_CONFIG_FLAG_WasStanding = 61, - // CPED_CONFIG_FLAG_InVehicle = 62, - // CPED_CONFIG_FLAG_OnMount = 63, - // CPED_CONFIG_FLAG_AttachedToVehicle = 64, - // CPED_CONFIG_FLAG_IsSwimming = 65, - // CPED_CONFIG_FLAG_WasSwimming = 66, - // CPED_CONFIG_FLAG_IsSkiing = 67, - // CPED_CONFIG_FLAG_IsSitting = 68, - // CPED_CONFIG_FLAG_KilledByStealth = 69, - // CPED_CONFIG_FLAG_KilledByTakedown = 70, - // CPED_CONFIG_FLAG_Knockedout = 71, - // _CPED_CONFIG_FLAG_0x3E3C4560 = 72, - // _CPED_CONFIG_FLAG_0x2994C7B7 = 73, - // _CPED_CONFIG_FLAG_0x6D59D275 = 74, - // CPED_CONFIG_FLAG_UsingCoverPoint = 75, - // CPED_CONFIG_FLAG_IsInTheAir = 76, - // _CPED_CONFIG_FLAG_0x2D493FB7 = 77, - // CPED_CONFIG_FLAG_IsAimingGun = 78, - // _CPED_CONFIG_FLAG_0x14D69875 = 79, - // _CPED_CONFIG_FLAG_0x40B05311 = 80, - // _CPED_CONFIG_FLAG_0x8B230BC5 = 81, - // _CPED_CONFIG_FLAG_0xC74E5842 = 82, - // _CPED_CONFIG_FLAG_0x9EA86147 = 83, - // _CPED_CONFIG_FLAG_0x674C746C = 84, - // _CPED_CONFIG_FLAG_0x3E56A8C2 = 85, - // _CPED_CONFIG_FLAG_0xC144A1EF = 86, - // _CPED_CONFIG_FLAG_0x0548512D = 87, - // _CPED_CONFIG_FLAG_0x31C93909 = 88, - // _CPED_CONFIG_FLAG_0xA0269315 = 89, - // _CPED_CONFIG_FLAG_0xD4D59D4D = 90, - // _CPED_CONFIG_FLAG_0x411D4420 = 91, - // _CPED_CONFIG_FLAG_0xDF4AEF0D = 92, - // CPED_CONFIG_FLAG_ForcePedLoadCover = 93, - // _CPED_CONFIG_FLAG_0x300E4CD3 = 94, - // _CPED_CONFIG_FLAG_0xF1C5BF04 = 95, - // _CPED_CONFIG_FLAG_0x89C2EF13 = 96, - // CPED_CONFIG_FLAG_VaultFromCover = 97, - // _CPED_CONFIG_FLAG_0x02A852C8 = 98, - // _CPED_CONFIG_FLAG_0x3D9407F1 = 99, - // _CPED_CONFIG_FLAG_IsDrunk = 100, // 0x319B4558 - // CPED_CONFIG_FLAG_ForcedAim = 101, - // _CPED_CONFIG_FLAG_0xB942D71A = 102, - // _CPED_CONFIG_FLAG_0xD26C55A8 = 103, - // CPED_CONFIG_FLAG_OpenDoorArmIK = 104, - // CPED_CONFIG_FLAG_ForceReload = 105, - // CPED_CONFIG_FLAG_DontActivateRagdollFromVehicleImpact = 106, - // CPED_CONFIG_FLAG_DontActivateRagdollFromBulletImpact = 107, - // CPED_CONFIG_FLAG_DontActivateRagdollFromExplosions = 108, - // CPED_CONFIG_FLAG_DontActivateRagdollFromFire = 109, - // CPED_CONFIG_FLAG_DontActivateRagdollFromElectrocution = 110, - // _CPED_CONFIG_FLAG_0x83C0A4BF = 111, - // _CPED_CONFIG_FLAG_0x0E0FAF8C = 112, - // CPED_CONFIG_FLAG_KeepWeaponHolsteredUnlessFired = 113, - // _CPED_CONFIG_FLAG_0x43B80B79 = 114, - // _CPED_CONFIG_FLAG_0x0D2A9309 = 115, - // CPED_CONFIG_FLAG_GetOutBurningVehicle = 116, - // CPED_CONFIG_FLAG_BumpedByPlayer = 117, - // CPED_CONFIG_FLAG_RunFromFiresAndExplosions = 118, - // CPED_CONFIG_FLAG_TreatAsPlayerDuringTargeting = 119, - // CPED_CONFIG_FLAG_IsHandCuffed = 120, - // CPED_CONFIG_FLAG_IsAnkleCuffed = 121, - // CPED_CONFIG_FLAG_DisableMelee = 122, - // CPED_CONFIG_FLAG_DisableUnarmedDrivebys = 123, - // CPED_CONFIG_FLAG_JustGetsPulledOutWhenElectrocuted = 124, - // _CPED_CONFIG_FLAG_0x5FED6BFD = 125, - // CPED_CONFIG_FLAG_WillNotHotwireLawEnforcementVehicle = 126, - // CPED_CONFIG_FLAG_WillCommandeerRatherThanJack = 127, - // CPED_CONFIG_FLAG_CanBeAgitated = 128, - // CPED_CONFIG_FLAG_ForcePedToFaceLeftInCover = 129, - // CPED_CONFIG_FLAG_ForcePedToFaceRightInCover = 130, - // CPED_CONFIG_FLAG_BlockPedFromTurningInCover = 131, - // CPED_CONFIG_FLAG_KeepRelationshipGroupAfterCleanUp = 132, - // CPED_CONFIG_FLAG_ForcePedToBeDragged = 133, - // CPED_CONFIG_FLAG_PreventPedFromReactingToBeingJacked = 134, - // CPED_CONFIG_FLAG_IsScuba = 135, - // CPED_CONFIG_FLAG_WillArrestRatherThanJack = 136, - // CPED_CONFIG_FLAG_RemoveDeadExtraFarAway = 137, - // CPED_CONFIG_FLAG_RidingTrain = 138, - // CPED_CONFIG_FLAG_ArrestResult = 139, - // CPED_CONFIG_FLAG_CanAttackFriendly = 140, - // CPED_CONFIG_FLAG_WillJackAnyPlayer = 141, - // _CPED_CONFIG_FLAG_0x6901E731 = 142, - // _CPED_CONFIG_FLAG_0x9EC9BF6C = 143, - // CPED_CONFIG_FLAG_WillJackWantedPlayersRatherThanStealCar = 144, - // CPED_CONFIG_FLAG_ShootingAnimFlag = 145, - // CPED_CONFIG_FLAG_DisableLadderClimbing = 146, - // CPED_CONFIG_FLAG_StairsDetected = 147, - // CPED_CONFIG_FLAG_SlopeDetected = 148, - // _CPED_CONFIG_FLAG_0x1A15670B = 149, - // CPED_CONFIG_FLAG_CowerInsteadOfFlee = 150, - // CPED_CONFIG_FLAG_CanActivateRagdollWhenVehicleUpsideDown = 151, - // CPED_CONFIG_FLAG_AlwaysRespondToCriesForHelp = 152, - // CPED_CONFIG_FLAG_DisableBloodPoolCreation = 153, - // CPED_CONFIG_FLAG_ShouldFixIfNoCollision = 154, - // CPED_CONFIG_FLAG_CanPerformArrest = 155, - // CPED_CONFIG_FLAG_CanPerformUncuff = 156, - // CPED_CONFIG_FLAG_CanBeArrested = 157, - // _CPED_CONFIG_FLAG_0xF7960FF5 = 158, - // CPED_CONFIG_FLAG_PlayerPreferFrontSeatMP = 159, - // _CPED_CONFIG_FLAG_0x0C6C3099 = 160, - // _CPED_CONFIG_FLAG_0x645F927A = 161, - // _CPED_CONFIG_FLAG_0xA86549B9 = 162, - // _CPED_CONFIG_FLAG_0x8AAF337A = 163, - // _CPED_CONFIG_FLAG_0x13BAA6E7 = 164, - // _CPED_CONFIG_FLAG_0x5FB9D1F5 = 165, - // CPED_CONFIG_FLAG_IsInjured = 166, - // CPED_CONFIG_FLAG_DontEnterVehiclesInPlayersGroup = 167, - // _CPED_CONFIG_FLAG_0xD8072639 = 168, - // CPED_CONFIG_FLAG_PreventAllMeleeTaunts = 169, - // CPED_CONFIG_FLAG_ForceDirectEntry = 170, - // CPED_CONFIG_FLAG_AlwaysSeeApproachingVehicles = 171, - // CPED_CONFIG_FLAG_CanDiveAwayFromApproachingVehicles = 172, - // CPED_CONFIG_FLAG_AllowPlayerToInterruptVehicleEntryExit = 173, - // CPED_CONFIG_FLAG_OnlyAttackLawIfPlayerIsWanted = 174, - // _CPED_CONFIG_FLAG_0x90008BFA = 175, - // _CPED_CONFIG_FLAG_0x07C7A910 = 176, - // CPED_CONFIG_FLAG_PedsJackingMeDontGetIn = 177, - // _CPED_CONFIG_FLAG_0xCE4E8BE2 = 178, - // CPED_CONFIG_FLAG_PedIgnoresAnimInterruptEvents = 179, - // CPED_CONFIG_FLAG_IsInCustody = 180, - // CPED_CONFIG_FLAG_ForceStandardBumpReactionThresholds = 181, - // CPED_CONFIG_FLAG_LawWillOnlyAttackIfPlayerIsWanted = 182, - // CPED_CONFIG_FLAG_IsAgitated = 183, - // CPED_CONFIG_FLAG_PreventAutoShuffleToDriversSeat = 184, - // CPED_CONFIG_FLAG_UseKinematicModeWhenStationary = 185, - // CPED_CONFIG_FLAG_EnableWeaponBlocking = 186, - // CPED_CONFIG_FLAG_HasHurtStarted = 187, - // CPED_CONFIG_FLAG_DisableHurt = 188, - // CPED_CONFIG_FLAG_PlayerIsWeird = 189, - // _CPED_CONFIG_FLAG_0x32FC208B = 190, - // _CPED_CONFIG_FLAG_0x0C296E5A = 191, - // _CPED_CONFIG_FLAG_0xE63B73EC = 192, - // CPED_CONFIG_FLAG_DoNothingWhenOnFootByDefault = 193, - // CPED_CONFIG_FLAG_UsingScenario = 194, - // CPED_CONFIG_FLAG_VisibleOnScreen = 195, - // _CPED_CONFIG_FLAG_0xD88C58A1 = 196, - // _CPED_CONFIG_FLAG_0x5A3DCF43 = 197, - // _CPED_CONFIG_FLAG_0xEA02B420 = 198, - // CPED_CONFIG_FLAG_DontActivateRagdollOnVehicleCollisionWhenDead = 199, - // CPED_CONFIG_FLAG_HasBeenInArmedCombat = 200, - // _CPED_CONFIG_FLAG_0x5E6466F6 = 201, - // CPED_CONFIG_FLAG_AVoidance_Ignore_All = 202, - // CPED_CONFIG_FLAG_AVoidance_Ignored_by_All = 203, - // CPED_CONFIG_FLAG_AVoidance_Ignore_Group1 = 204, - // CPED_CONFIG_FLAG_AVoidance_Member_of_Group1 = 205, - // CPED_CONFIG_FLAG_ForcedToUseSpecificGroupSeatIndex = 206, - // _CPED_CONFIG_FLAG_0x415B26B9 = 207, - // CPED_CONFIG_FLAG_DisableExplosionReactions = 208, - // CPED_CONFIG_FLAG_DodgedPlayer = 209, - // CPED_CONFIG_FLAG_WaitingForPlayerControlInterrupt = 210, - // CPED_CONFIG_FLAG_ForcedToStayInCover = 211, - // CPED_CONFIG_FLAG_GeneratesSoundEvents = 212, - // CPED_CONFIG_FLAG_ListensToSoundEvents = 213, - // CPED_CONFIG_FLAG_AllowToBeTargetedInAVehicle = 214, - // CPED_CONFIG_FLAG_WaitForDirectEntryPointToBeFreeWhenExiting = 215, - // CPED_CONFIG_FLAG_OnlyRequireOnePressToExitVehicle = 216, - // CPED_CONFIG_FLAG_ForceExitToSkyDive = 217, - // _CPED_CONFIG_FLAG_0x3C7DF9DF = 218, - // _CPED_CONFIG_FLAG_0x848FFEF2 = 219, - // CPED_CONFIG_FLAG_DontEnterLeadersVehicle = 220, - // CPED_CONFIG_FLAG_DisableExitToSkyDive = 221, - // _CPED_CONFIG_FLAG_0x84F722FA = 222, - // _CPED_CONFIG_FLAG_Shrink = 223, // 0xD1B87B1F - // _CPED_CONFIG_FLAG_0x728AA918 = 224, - // CPED_CONFIG_FLAG_DisablePotentialToBeWalkedIntoResponse = 225, - // CPED_CONFIG_FLAG_DisablePedAVoidance = 226, - // CPED_CONFIG_FLAG_ForceRagdollUponDeath = 227, - // _CPED_CONFIG_FLAG_0x1EA7225F = 228, - // CPED_CONFIG_FLAG_DisablePanicInVehicle = 229, - // CPED_CONFIG_FLAG_AllowedToDetachTrailer = 230, - // _CPED_CONFIG_FLAG_0xFC3E572D = 231, - // _CPED_CONFIG_FLAG_0x08E9F9CF = 232, - // _CPED_CONFIG_FLAG_0x2D3BA52D = 233, - // _CPED_CONFIG_FLAG_0xFD2F53EA = 234, - // _CPED_CONFIG_FLAG_0x31A1B03B = 235, - // CPED_CONFIG_FLAG_IsHoldingProp = 236, - // CPED_CONFIG_FLAG_BlocksPathingWhenDead = 237, - // _CPED_CONFIG_FLAG_0xCE57C9A3 = 238, - // _CPED_CONFIG_FLAG_0x26149198 = 239, - // CPED_CONFIG_FLAG_ForceSkinCharacterCloth = 240, - // CPED_CONFIG_FLAG_LeaveEngineOnWhenExitingVehicles = 241, - // CPED_CONFIG_FLAG_PhoneDisableTextingAnimations = 242, - // CPED_CONFIG_FLAG_PhoneDisableTalkingAnimations = 243, - // CPED_CONFIG_FLAG_PhoneDisableCameraAnimations = 244, - // CPED_CONFIG_FLAG_DisableBlindFiringInShotReactions = 245, - // CPED_CONFIG_FLAG_AllowNearbyCoverUsage = 246, - // _CPED_CONFIG_FLAG_0x0C754ACA = 247, - // CPED_CONFIG_FLAG_CanPlayInCarIdles = 248, - // CPED_CONFIG_FLAG_CanAttackNonWantedPlayerAsLaw = 249, - // CPED_CONFIG_FLAG_WillTakeDamageWhenVehicleCrashes = 250, - // CPED_CONFIG_FLAG_AICanDrivePlayerAsRearPassenger = 251, - // CPED_CONFIG_FLAG_PlayerCanJackFriendlyPlayers = 252, - // CPED_CONFIG_FLAG_OnStairs = 253, - // _CPED_CONFIG_FLAG_0xE1A2F73F = 254, - // CPED_CONFIG_FLAG_AIDriverAllowFriendlyPassengerSeatEntry = 255, - // _CPED_CONFIG_FLAG_0xF1EB20A9 = 256, - // CPED_CONFIG_FLAG_AllowMissionPedToUseInjuredMovement = 257, - // _CPED_CONFIG_FLAG_0x329DCF1A = 258, - // _CPED_CONFIG_FLAG_0x8D90DD1B = 259, - // _CPED_CONFIG_FLAG_0xB8A292B7 = 260, - // CPED_CONFIG_FLAG_PreventUsingLowerPrioritySeats = 261, - // _CPED_CONFIG_FLAG_0x2AF558F0 = 262, - // _CPED_CONFIG_FLAG_0x82251455 = 263, - // _CPED_CONFIG_FLAG_0x30CF498B = 264, - // _CPED_CONFIG_FLAG_0xE1CD50AF = 265, - // _CPED_CONFIG_FLAG_0x72E4AE48 = 266, - // _CPED_CONFIG_FLAG_0xC2657EA1 = 267, - // CPED_CONFIG_FLAG_TeleportToLeaderVehicle = 268, - // CPED_CONFIG_FLAG_AVoidance_Ignore_WeirdPedBuffer = 269, - // CPED_CONFIG_FLAG_OnStairSlope = 270, - // _CPED_CONFIG_FLAG_0xA0897933 = 271, - // CPED_CONFIG_FLAG_DontBlipCop = 272, - // CPED_CONFIG_FLAG_ClimbedShiftedFence = 273, - // _CPED_CONFIG_FLAG_0xF7823618 = 274, - // CPED_CONFIG_FLAG_KillWhenTrapped = 275, - // CPED_CONFIG_FLAG_EdgeDetected = 276, - // _CPED_CONFIG_FLAG_0x92B67896 = 277, - // _CPED_CONFIG_FLAG_0xCAD677C9 = 278, - // CPED_CONFIG_FLAG_AVoidTearGas = 279, - // _CPED_CONFIG_FLAG_0x5276AC7B = 280, - // CPED_CONFIG_FLAG_DisableGoToWritheWhenInjured = 281, - // CPED_CONFIG_FLAG_OnlyUseForcedSeatWhenEnteringHeliInGroup = 282, - // _CPED_CONFIG_FLAG_0x9139724D = 283, - // _CPED_CONFIG_FLAG_0xA1457461 = 284, - // CPED_CONFIG_FLAG_DisableWeirdPedEvents = 285, - // CPED_CONFIG_FLAG_ShouldChargeNow = 286, - // CPED_CONFIG_FLAG_RagdollingOnBoat = 287, - // CPED_CONFIG_FLAG_HasBrandishedWeapon = 288, - // _CPED_CONFIG_FLAG_0x1B9EE8A1 = 289, - // _CPED_CONFIG_FLAG_0xF3F5758C = 290, - // _CPED_CONFIG_FLAG_0x2A9307F1 = 291, - // _CPED_CONFIG_FLAG_FreezePosition = 292, // 0x7403D216 - // _CPED_CONFIG_FLAG_0xA06A3C6C = 293, - // CPED_CONFIG_FLAG_DisableShockingEvents = 294, - // _CPED_CONFIG_FLAG_0xF8DA25A5 = 295, - // CPED_CONFIG_FLAG_NeverReactToPedOnRoof = 296, - // _CPED_CONFIG_FLAG_0xB31F1187 = 297, - // _CPED_CONFIG_FLAG_0x84315402 = 298, - // CPED_CONFIG_FLAG_DisableShockingDrivingOnPavementEvents = 299, - // _CPED_CONFIG_FLAG_0xC7829B67 = 300, - // CPED_CONFIG_FLAG_DisablePedConstraints = 301, - // CPED_CONFIG_FLAG_ForceInitialPeekInCover = 302, - // _CPED_CONFIG_FLAG_0x2ADA871B = 303, - // _CPED_CONFIG_FLAG_0x47BC8A58 = 304, - // CPED_CONFIG_FLAG_DisableJumpingFromVehiclesAfterLeader = 305, - // _CPED_CONFIG_FLAG_0x4A133C50 = 306, - // _CPED_CONFIG_FLAG_0xC58099C3 = 307, - // _CPED_CONFIG_FLAG_0xF3D76D41 = 308, - // _CPED_CONFIG_FLAG_0xB0EEE9F2 = 309, - // CPED_CONFIG_FLAG_IsInCluster = 310, - // CPED_CONFIG_FLAG_ShoutToGroupOnPlayerMelee = 311, - // CPED_CONFIG_FLAG_IgnoredByAutoOpenDoors = 312, - // _CPED_CONFIG_FLAG_0xD4136C22 = 313, - // CPED_CONFIG_FLAG_ForceIgnoreMeleeActiveCombatant = 314, - // CPED_CONFIG_FLAG_CheckLoSForSoundEvents = 315, - // _CPED_CONFIG_FLAG_0xD5C98277 = 316, - // CPED_CONFIG_FLAG_CanSayFollowedByPlayerAudio = 317, - // CPED_CONFIG_FLAG_ActivateRagdollFromMinorPlayerContact = 318, - // _CPED_CONFIG_FLAG_0xD8BE1D54 = 319, - // CPED_CONFIG_FLAG_ForcePoseCharacterCloth = 320, - // CPED_CONFIG_FLAG_HasClothCollisionBounds = 321, - // CPED_CONFIG_FLAG_HasHighHeels = 322, - // _CPED_CONFIG_FLAG_0x86B01E54 = 323, - // CPED_CONFIG_FLAG_DontBehaveLikeLaw = 324, - // _CPED_CONFIG_FLAG_0xC03B736C = 325, // SpawnedAtScenario? - // CPED_CONFIG_FLAG_DisablePoliceInvestigatingBody = 326, - // CPED_CONFIG_FLAG_DisableWritheShootFromGround = 327, - // CPED_CONFIG_FLAG_LowerPriorityOfWarpSeats = 328, - // CPED_CONFIG_FLAG_DisableTalkTo = 329, - // CPED_CONFIG_FLAG_DontBlip = 330, - // CPED_CONFIG_FLAG_IsSwitchingWeapon = 331, - // CPED_CONFIG_FLAG_IgnoreLegIkRestrictions = 332, - // _CPED_CONFIG_FLAG_0x150468FD = 333, - // _CPED_CONFIG_FLAG_0x914EBD6B = 334, - // _CPED_CONFIG_FLAG_0x79AF3B6D = 335, - // _CPED_CONFIG_FLAG_0x75C7A632 = 336, - // _CPED_CONFIG_FLAG_0x52D530E2 = 337, - // _CPED_CONFIG_FLAG_0xDB2A90E0 = 338, - // CPED_CONFIG_FLAG_AllowTaskDoNothingTimeslicing = 339, - // _CPED_CONFIG_FLAG_0x12ADB567 = 340, - // _CPED_CONFIG_FLAG_0x105C8518 = 341, - // CPED_CONFIG_FLAG_NotAllowedToJackAnyPlayers = 342, - // _CPED_CONFIG_FLAG_0xED152C3E = 343, - // _CPED_CONFIG_FLAG_0xA0EFE6A8 = 344, - // CPED_CONFIG_FLAG_AlwaysLeaveTrainUponArrival = 345, - // _CPED_CONFIG_FLAG_0xCDDFE830 = 346, - // CPED_CONFIG_FLAG_OnlyWritheFromWeaponDamage = 347, - // CPED_CONFIG_FLAG_UseSloMoBloodVfx = 348, - // CPED_CONFIG_FLAG_EquipJetpack = 349, - // CPED_CONFIG_FLAG_PreventDraggedOutOfCarThreatResponse = 350, - // _CPED_CONFIG_FLAG_0xE13D1F7C = 351, - // _CPED_CONFIG_FLAG_0x40E25FB9 = 352, - // _CPED_CONFIG_FLAG_0x930629D9 = 353, - // _CPED_CONFIG_FLAG_0xECCF0C7F = 354, - // _CPED_CONFIG_FLAG_0xB6E9613B = 355, - // CPED_CONFIG_FLAG_ForceDeepSurfaceCheck = 356, - // CPED_CONFIG_FLAG_DisableDeepSurfaceAnims = 357, - // CPED_CONFIG_FLAG_DontBlipNotSynced = 358, - // CPED_CONFIG_FLAG_IsDuckingInVehicle = 359, - // CPED_CONFIG_FLAG_PreventAutoShuffleToTurretSeat = 360, - // CPED_CONFIG_FLAG_DisableEventInteriorStatusCheck = 361, - // CPED_CONFIG_FLAG_HasReserveParachute = 362, - // CPED_CONFIG_FLAG_UseReserveParachute = 363, - // CPED_CONFIG_FLAG_TreatDislikeAsHateWhenInCombat = 364, - // CPED_CONFIG_FLAG_OnlyUpdateTargetWantedIfSeen = 365, - // CPED_CONFIG_FLAG_AllowAutoShuffleToDriversSeat = 366, - // _CPED_CONFIG_FLAG_0xD7E07D37 = 367, - // _CPED_CONFIG_FLAG_0x03C4FD24 = 368, - // _CPED_CONFIG_FLAG_0x7675789A = 369, - // _CPED_CONFIG_FLAG_0xB7288A88 = 370, - // _CPED_CONFIG_FLAG_0xC06B6291 = 371, - // CPED_CONFIG_FLAG_PreventReactingToSilencedCloneBullets = 372, - // CPED_CONFIG_FLAG_DisableInjuredCryForHelpEvents = 373, - // CPED_CONFIG_FLAG_NeverLeaveTrain = 374, - // CPED_CONFIG_FLAG_DontDropJetpackOnDeath = 375, - // _CPED_CONFIG_FLAG_0x147F1FFB = 376, - // _CPED_CONFIG_FLAG_0x4376DD79 = 377, - // _CPED_CONFIG_FLAG_0xCD3DB518 = 378, - // _CPED_CONFIG_FLAG_0xFE4BA4B6 = 379, - // CPED_CONFIG_FLAG_DisableAutoEquipHelmetsInBikes = 380, - // _CPED_CONFIG_FLAG_0xBCD816CD = 381, - // _CPED_CONFIG_FLAG_0xCF02DD69 = 382, - // _CPED_CONFIG_FLAG_0xF73AFA2E = 383, - // _CPED_CONFIG_FLAG_0x80B9A9D0 = 384, - // _CPED_CONFIG_FLAG_0xF601F7EE = 385, - // _CPED_CONFIG_FLAG_0xA91350FC = 386, - // _CPED_CONFIG_FLAG_0x3AB23B96 = 387, - // CPED_CONFIG_FLAG_IsClimbingLadder = 388, - // CPED_CONFIG_FLAG_HasBareFeet = 389, - // CPED_CONFIG_FLAG_UNUSED_REPLACE_ME_2 = 390, - // CPED_CONFIG_FLAG_GoOnWithoutVehicleIfItIsUnableToGetBackToRoad = 391, - // CPED_CONFIG_FLAG_BlockDroppingHealthSnacksOnDeath = 392, - // _CPED_CONFIG_FLAG_0xC11D3E8F = 393, - // CPED_CONFIG_FLAG_ForceThreatResponseToNonFriendToFriendMeleeActions = 394, - // CPED_CONFIG_FLAG_DontRespondToRandomPedsDamage = 395, - // CPED_CONFIG_FLAG_AllowContinuousThreatResponseWantedLevelUpdates = 396, - // CPED_CONFIG_FLAG_KeepTargetLossResponseOnCleanup = 397, - // CPED_CONFIG_FLAG_PlayersDontDragMeOutOfCar = 398, - // CPED_CONFIG_FLAG_BroadcastRepondedToThreatWhenGoingToPointShooting = 399, - // CPED_CONFIG_FLAG_IgnorePedTypeForIsFriendlyWith = 400, - // CPED_CONFIG_FLAG_TreatNonFriendlyAsHateWhenInCombat = 401, - // CPED_CONFIG_FLAG_DontLeaveVehicleIfLeaderNotInVehicle = 402, - // _CPED_CONFIG_FLAG_0x5E5B9591 = 403, - // CPED_CONFIG_FLAG_AllowMeleeReactionIfMeleeProofIsOn = 404, - // _CPED_CONFIG_FLAG_0x77840177 = 405, - // _CPED_CONFIG_FLAG_0x1C7ACAC4 = 406, - // CPED_CONFIG_FLAG_UseNormalExplosionDamageWhenBlownUpInVehicle = 407, - // CPED_CONFIG_FLAG_DisableHomingMissileLockForVehiclePedInside = 408, - // CPED_CONFIG_FLAG_DisableTakeOffScubaGear = 409, - // CPED_CONFIG_FLAG_IgnoreMeleeFistWeaponDamageMult = 410, - // CPED_CONFIG_FLAG_LawPedsCanFleeFromNonWantedPlayer = 411, - // CPED_CONFIG_FLAG_ForceBlipSecurityPedsIfPlayerIsWanted = 412, - // CPED_CONFIG_FLAG_IsHolsteringWeapon = 413, - // CPED_CONFIG_FLAG_UseGoToPointForScenarioNavigation = 414, - // CPED_CONFIG_FLAG_DontClearLocalPassengersWantedLevel = 415, - // CPED_CONFIG_FLAG_BlockAutoSwapOnWeaponPickups = 416, - // CPED_CONFIG_FLAG_ThisPedIsATargetPriorityForAI = 417, - // CPED_CONFIG_FLAG_IsSwitchingHelmetVisor = 418, - // CPED_CONFIG_FLAG_ForceHelmetVisorSwitch = 419, - // _CPED_CONFIG_FLAG_0xCFF5F6DE = 420, - // CPED_CONFIG_FLAG_UseOverrideFootstepPtFx = 421, - // CPED_CONFIG_FLAG_DisableVehicleCombat = 422, - // _CPED_CONFIG_FLAG_0xFE401D26 = 423, - // CPED_CONFIG_FLAG_FallsLikeAircraft = 424, - // _CPED_CONFIG_FLAG_0x2B42AE82 = 425, - // CPED_CONFIG_FLAG_UseLockpickVehicleEntryAnimations = 426, - // CPED_CONFIG_FLAG_IgnoreInteriorCheckForSprinting = 427, - // CPED_CONFIG_FLAG_SwatHeliSpawnWithinLastSpottedLocation = 428, - // CPED_CONFIG_FLAG_DisableStartEngine = 429, - // CPED_CONFIG_FLAG_IgnoreBeingOnFire = 430, - // CPED_CONFIG_FLAG_DisableTurretOrRearSeatPreference = 431, - // CPED_CONFIG_FLAG_DisableWantedHelicopterSpawning = 432, - // CPED_CONFIG_FLAG_UseTargetPerceptionForCreatingAimedAtEvents = 433, - // CPED_CONFIG_FLAG_DisableHomingMissileLockon = 434, - // CPED_CONFIG_FLAG_ForceIgnoreMaxMeleeActiveSupportCombatants = 435, - // CPED_CONFIG_FLAG_StayInDefensiveAreaWhenInVehicle = 436, - // CPED_CONFIG_FLAG_DontShoutTargetPosition = 437, - // CPED_CONFIG_FLAG_DisableHelmetArmor = 438, - // _CPED_CONFIG_FLAG_0xCB7F3A1E = 439, - // _CPED_CONFIG_FLAG_0x50178878 = 440, - // CPED_CONFIG_FLAG_PreventVehExitDueToInvalidWeapon = 441, - // CPED_CONFIG_FLAG_IgnoreNetSessionFriendlyFireCheckForAllowDamage = 442, - // CPED_CONFIG_FLAG_DontLeaveCombatIfTargetPlayerIsAttackedByPolice = 443, - // CPED_CONFIG_FLAG_CheckLockedBeforeWarp = 444, - // CPED_CONFIG_FLAG_DontShuffleInVehicleToMakeRoom = 445, - // CPED_CONFIG_FLAG_GiveWeaponOnGetup = 446, - // CPED_CONFIG_FLAG_DontHitVehicleWithProjectiles = 447, - // CPED_CONFIG_FLAG_DisableForcedEntryForOpenVehiclesFromTryLockedDoor = 448, - // CPED_CONFIG_FLAG_FiresDummyRockets = 449, - // CPED_CONFIG_FLAG_PedIsArresting = 450, - // CPED_CONFIG_FLAG_IsDecoyPed = 451, - // CPED_CONFIG_FLAG_HasEstablishedDecoy = 452, - // CPED_CONFIG_FLAG_BlockDispatchedHelicoptersFromLanding = 453, - // CPED_CONFIG_FLAG_DontCryForHelpOnStun = 454, - // _CPED_CONFIG_FLAG_0xB68D3EAB = 455, - // CPED_CONFIG_FLAG_CanBeIncapacitated = 456, - // _CPED_CONFIG_FLAG_0x4BD5EBAD = 457, - // CPED_CONFIG_FLAG_DontChangeTargetFromMelee = 458, - // }; - inline Void SetPedConfigFlag(Ped ped, int flagId, BOOL value) { return _i(0x1913FE4CBF41C463, ped, flagId, value); } // 0x1913fe4cbf41c4630x9cfbe10dB323 - // PED::SetPedResetFlag(PLAYER::PlayerPedId(), 240, 1); - // Known values: - // PRF_PreventGoingIntoStillInVehicleState = 236 *(fanatic2.c)* - inline Void SetPedResetFlag(Ped ped, int flagId, BOOL doReset) { return _i(0xC1E8A365BF3B29F2, ped, flagId, doReset); } // 0xc1e8a365bf3b29f20xcff6ff66B323 - // See SetPedConfigFlag - inline BOOL GetPedConfigFlag(Ped ped, int flagId, BOOL p2) { return _i(0x7EE53118C892B513, ped, flagId, p2); } // 0x7ee53118c892b5130xabe98267B323 - inline BOOL GetPedResetFlag(Ped ped, int flagId) { return _i(0xAF9E59B1B1FBF2A0, ped, flagId); } // 0xaf9e59b1b1fbf2a00x2fc10d11B323 - inline Void SetPedGroupMemberPassengerIndex(Ped ped, int index) { return _i(0x0BDDB8D9EC6BCF3C, ped, index); } // 0x0bddb8d9ec6bcf3c0x2ab3670bB323 - inline Void SetPedCanEvasiveDive(Ped ped, BOOL toggle) { return _i(0x6B7A646C242A7059, ped, toggle); } // 0x6b7a646c242a70590x542feb4dB323 - // Presumably returns the Entity that the Ped is currently diving out of the way of. - // - // var num3; - // if (PED::IsPedEvasiveDiving(A_0, &num3) != 0) - // if (ENTITY::IsEntityAVehicle(num3) != 0) - inline BOOL IsPedEvasiveDiving(Ped ped, Entity* evadingEntity) { return _i(0x414641C26E105898, ped, evadingEntity); } // 0x414641c26e1058980xd82829dcB323 - inline Void SetPedShootsAtCoord(Ped ped, float x, float y, float z, BOOL toggle) { return _i(0x96A05E4FB321B1BA, ped, x, y, z, toggle); } // 0x96a05e4fb321b1ba0xfd64eae5B323 - // Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json - inline Void SetPedModelIsSuppressed(Hash modelHash, BOOL toggle) { return _i(0xE163A4BCE4DE6F11, modelHash, toggle); } // 0xe163a4bce4de6f110x7820ca43B323 - inline Void StopAnyPedModelBeingSuppressed() { return _i(0xB47BD05FA66B40CF); } // 0xb47bd05fa66b40cf0x5ad7dc55B323 - inline Void SetPedCanBeTargetedWhenInjured(Ped ped, BOOL toggle) { return _i(0x638C03B0F9878F57, ped, toggle); } // 0x638c03b0f9878f570x6fd9a7cdB323 - inline Void SetPedGeneratesDeadBodyEvents(Ped ped, BOOL toggle) { return _i(0x7FB17BA2E7DECA5B, ped, toggle); } // 0x7fb17ba2e7deca5b0xe9b97a2bB323 - inline Void BlockPedFromGeneratingDeadBodyEventsWhenDead(Ped ped, BOOL toggle) { return _i(0xE43A13C9E4CCCBCF, ped, toggle); } // 0xe43a13c9e4cccbcf0xff1f6aebB323 - inline Void SetPedWillOnlyAttackWantedPlayer(Any p0, Any p1) { return _i(0x3E9679C1DFCF422C, p0, p1); } // 0x3e9679c1dfcf422cB877 - inline Void SetPedCanRagdollFromPlayerImpact(Ped ped, BOOL toggle) { return _i(0xDF993EE5E90ABA25, ped, toggle); } // 0xdf993ee5e90aba250xe9bd733aB323 - // PoliceMotorcycleHelmet 1024 - // RegularMotorcycleHelmet 4096 - // FiremanHelmet 16384 - // PilotHeadset 32768 - // PilotHelmet 65536 - // -- - // p2 is generally 4096 or 16384 in the scripts. p1 varies between 1 and 0. - inline Void GivePedHelmet(Ped ped, BOOL cannotRemove, int helmetFlag, int textureIndex) { return _i(0x54C7C4A94367717E, ped, cannotRemove, helmetFlag, textureIndex); } // 0x54c7c4a94367717e0x1862a461B323 - inline Void RemovePedHelmet(Ped ped, BOOL instantly) { return _i(0xA7B2458D0AD6DED8, ped, instantly); } // 0xa7b2458d0ad6ded80x2086b1f0B323 - inline BOOL IsPedTakingOffHelmet(Ped ped) { return _i(0x14590DDBEDB1EC85, ped); } // 0x14590ddbedb1ec850xa1008e0eB323 - inline Void SetPedHelmet(Ped ped, BOOL canWearHelmet) { return _i(0x560A43136EB58105, ped, canWearHelmet); } // 0x560a43136eb581050xed366e53B323 - inline Void SetPedHelmetFlag(Ped ped, int helmetFlag) { return _i(0xC0E78D5C2CE3EB25, ped, helmetFlag); } // 0xc0e78d5c2ce3eb250x12677780B323 - // List of component/props ID - // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - inline Void SetPedHelmetPropIndex(Ped ped, int propIndex, BOOL p2) { return _i(0x26D83693ED99291C, ped, propIndex, p2); } // 0x26d83693ed99291c0xa316d13fB323 - inline Void SetPedHelmetVisorPropIndices(Ped ped, BOOL p1, int p2, int p3) { return _i(0x3F7325574E41B44D, ped, p1, p2, p3); } // 0x3f7325574e41b44dB791 - inline BOOL IsPedHelmetVisorUp(Ped ped) { return _i(0xB9496CE47546DB2C, ped); } // 0xb9496ce47546db2cB791 - inline Void SetPedHelmetTextureIndex(Ped ped, int textureIndex) { return _i(0xF1550C4BD22582E2, ped, textureIndex); } // 0xf1550c4bd22582e20x5f6c3328B323 - // Returns true if the ped passed through the parenthesis is wearing a helmet. - inline BOOL IsPedWearingHelmet(Ped ped) { return _i(0xF33BDFE19B309B19, ped); } // 0xf33bdfe19b309b190x0d680d49B323 - inline Void ClearPedStoredHatProp(Ped ped) { return _i(0x687C0B594907D2E8, ped); } // 0x687c0b594907d2e80x24a1284eB323 - inline int GetPedHelmetStoredHatPropIndex(Ped ped) { return _i(0x451294E859ECC018, ped); } // 0x451294e859ecc0180x8a3a3116B323 - inline int GetPedHelmetStoredHatTexIndex(Ped ped) { return _i(0x9D728C1E12BF5518, ped); } // 0x9d728c1e12bf55180x74eb662dB323 - inline BOOL IsCurrentHeadPropAHelmet(Any p0) { return _i(0xF2385935BFFD4D92, p0); } // 0xf2385935bffd4d920xfff149feB323 - inline Void SetPedToLoadCover(Ped ped, BOOL toggle) { return _i(0x332B562EEDA62399, ped, toggle); } // 0x332b562eeda623990xcf94ba97B323 - // It simply makes the said ped to cower behind cover object(wall, desk, car) - // - // Peds flee attributes must be set to not to flee, first. Else, most of the peds, will just flee from gunshot sounds or any other panic situations. - inline Void SetPedCanCowerInCover(Ped ped, BOOL toggle) { return _i(0xCB7553CDCEF4A735, ped, toggle); } // 0xcb7553cdcef4a7350x5194658bB323 - inline Void SetPedCanPeekInCover(Ped ped, BOOL toggle) { return _i(0xC514825C507E3736, ped, toggle); } // 0xc514825c507e37360xc1dae216B323 - // This native does absolutely nothing, just a nullsub - inline Void SetPedPlaysHeadOnHornAnimWhenDiesInVehicle(Ped ped, BOOL toggle) { return _i(0x94D94BF1A75AED3D, ped, toggle); } // 0x94d94bf1a75aed3d0x7c563cd2B323 - // "IK" stands for "Inverse kinematics." I assume this has something to do with how the ped uses his legs to balance. In the scripts, the second parameter is always an int with a value of 2, 0, or sometimes 1 - inline Void SetPedLegIkMode(Ped ped, int mode) { return _i(0xC396F5B86FF9FEBD, ped, mode); } // 0xc396f5b86ff9febd0xfddb042eB323 - inline Void SetPedMotionBlur(Ped ped, BOOL toggle) { return _i(0x0A986918B102B448, ped, toggle); } // 0x0a986918b102b4480xa211a128B323 - inline Void SetPedCanSwitchWeapon(Ped ped, BOOL toggle) { return _i(0xED7F7EFE9FABF340, ped, toggle); } // 0xed7f7efe9fabf3400xb5f8ba28B323 - inline Void SetPedDiesInstantlyInWater(Ped ped, BOOL toggle) { return _i(0xEEB64139BA29A7CF, ped, toggle); } // 0xeeb64139ba29a7cf0xfe2554fcB323 - // Only appears in lamar1 script. - inline Void SetLadderClimbInputState(Ped ped, int p1) { return _i(0x1A330D297AAC6BC1, ped, p1); } // 0x1a330d297aac6bc10x77bb7cb8B323 - inline Void StopPedWeaponFiringWhenDropped(Ped ped) { return _i(0xC158D28142A34608, ped); } // 0xc158d28142a346080x4ac3421eB323 - inline Void SetScriptedAnimSeatOffset(Ped ped, float p1) { return _i(0x5917BBA32D06C230, ped, p1); } // 0x5917bba32d06c2300x7ceffa45B323 - // enum eCombatMovement // 0x4F456B61 - // { - // CM_Stationary, - // CM_Defensive, - // CM_WillAdvance, - // CM_WillRetreat - // }; - inline Void SetPedCombatMovement(Ped ped, int combatMovement) { return _i(0x4D9CA1009AFBD057, ped, combatMovement); } // 0x4d9ca1009afbd0570x12e62f9eB323 - // See SetPedCombatMovement - inline int GetPedCombatMovement(Ped ped) { return _i(0xDEA92412FCAEB3F5, ped); } // 0xdea92412fcaeb3f50xf3e7730eB323 - // enum eCombatAbility // 0xE793438C - // { - // CA_Poor, - // CA_Average, - // CA_Professional, - // CA_NumTypes - // }; - inline Void SetPedCombatAbility(Ped ped, int abilityLevel) { return _i(0xC7622C0D36B2FDA8, ped, abilityLevel); } // 0xc7622c0d36b2fda80x6c23d329B323 - // enum eCombatRange // 0xB69160F5 - // { - // CR_Near, - // CR_Medium, - // CR_Far, - // CR_VeryFar, - // CR_NumRanges - // }; - inline Void SetPedCombatRange(Ped ped, int combatRange) { return _i(0x3C606747B23E497B, ped, combatRange); } // 0x3c606747b23e497b0x8818a959B323 - // See SetPedCombatRange - inline int GetPedCombatRange(Ped ped) { return _i(0xF9D9F7F2DB8E2FA0, ped); } // 0xf9d9f7f2db8e2fa00x9b9b7163B323 - // enum eCombatAttributes // 0x0E8E7201 - // { - // BF_CanUseCover = 0, - // BF_CanUseVehicles = 1, - // BF_CanDoDrivebys = 2, - // BF_CanLeaveVehicle = 3, - // BF_CanUseDynamicStrafeDecisions = 4, - // BF_AlwaysFight = 5, - // BF_0x66BB9FCC = 6, - // BF_0x6837DA41 = 7, - // BF_0xB4A13A5A = 8, - // BF_0xEE326AAD = 9, - // BF_0x7DF2CCFA = 10, - // BF_0x0036D422 = 11, - // BF_BlindFireWhenInCover = 12, - // BF_Aggressive = 13, - // BF_CanInvestigate = 14, - // BF_HasRadio = 15, - // BF_0x6BDE28D1 = 16, - // BF_AlwaysFlee = 17, - // BF_0x7852797D = 18, - // BF_0x33497B95 = 19, - // BF_CanTauntInVehicle = 20, - // BF_CanChaseTargetOnFoot = 21, - // BF_WillDragInjuredPedsToSafety = 22, - // BF_0xCD7168B8 = 23, - // BF_UseProximityFiringRate = 24, - // BF_0x48F914F8 = 25, - // BF_0x2EA543D0 = 26, - // BF_PerfectAccuracy = 27, - // BF_CanUseFrustratedAdvance = 28, - // BF_0x3D131AC1 = 29, - // BF_0x3AD95F27 = 30, - // BF_MaintainMinDistanceToTarget = 31, - // BF_0xEAD68AD2 = 32, - // BF_0xA206C2E0 = 33, - // BF_CanUsePeekingVariations = 34, - // BF_0xA5715184 = 35, - // BF_0xD5265533 = 36, - // BF_0x2B84C2BF = 37, - // BF_DisableBulletReactions = 38, - // BF_CanBust = 39, - // BF_0xAA525726 = 40, - // BF_CanCommandeerVehicles = 41, - // BF_CanFlank = 42, - // BF_SwitchToAdvanceIfCantFindCover = 43, - // BF_SwitchToDefensiveIfInCover = 44, - // BF_0xEB4786A0 = 45, - // BF_CanFightArmedPedsWhenNotArmed = 46, - // BF_0xA08E9402 = 47, - // BF_0x952EAD7D = 48, - // BF_UseEnemyAccuracyScaling = 49, - // BF_CanCharge = 50, - // BF_0xDA8C2BD3 = 51, - // BF_0x6562F017 = 52, - // BF_0xA2C3D53B = 53, - // BF_AlwaysEquipBestWeapon = 54, - // BF_CanSeeUnderwaterPeds = 55, - // BF_0xF619486B = 56, - // BF_0x61EB63A3 = 57, - // BF_DisableFleeFromCombat = 58, - // BF_0x8976D12B = 59, - // BF_CanThrowSmokeGrenade = 60, - // BF_NonMissionPedsFleeFromThisPedUnlessArmed = 61, - // BF_0x5452A10C = 62, - // BF_FleesFromInvincibleOpponents = 63, - // BF_DisableBlockFromPursueDuringVehicleChase = 64, - // BF_DisableSpinOutDuringVehicleChase = 65, - // BF_DisableCruiseInFrontDuringBlockDuringVehicleChase = 66, - // BF_0x0B404731 = 67, - // BF_DisableReactToBuddyShot = 68, - // BF_0x7FFD6AEB = 69, - // BF_0x51F4AEF8 = 70, - // BF_PermitChargeBeyondDefensiveArea = 71, - // BF_0x63E0A8E2 = 72, - // BF_0xDF974436 = 73, - // BF_0x556C080B = 74, - // BF_0xA4D50035 = 75, - // BF_SetDisableShoutTargetPositionOnCombatStart = 76, - // BF_DisableRespondedToThreatBroadcast = 77, - // BF_0xCBB01765 = 78, - // BF_0x4F862ED4 = 79, - // BF_0xEF9C7C40 = 80, - // BF_0xE51B494F = 81, - // BF_0x054D0199 = 82, - // BF_0xD36BCE94 = 83, - // BF_0xFB11F690 = 84, - // BF_0xD208A9AD = 85, - // BF_AllowDogFighting = 86, - // BF_0x07A6E531 = 87, - // BF_0x34F9317B = 88, - // BF_0x4240F5A9 = 89, - // BF_0xEE129DBD = 90, - // BF_0x053AEAD9 = 91 - // }; - inline Void SetPedCombatAttributes(Ped ped, int attributeId, BOOL enabled) { return _i(0x9F7794730795E019, ped, attributeId, enabled); } // 0x9f7794730795e0190x81d64248B323 - // enum eTargetLossResponseType - // { - // TLR_ExitTask, - // TLR_NeverLoseTarget, - // TLR_SearchForTarget - // }; - inline Void SetPedTargetLossResponse(Ped ped, int responseType) { return _i(0x0703B9079823DA4A, ped, responseType); } // 0x0703b9079823da4a0xcfa613ffB323 - inline BOOL IsPedPerformingMeleeAction(Ped ped) { return _i(0xDCCA191DF9980FD7, ped); } // 0xdcca191df9980fd70x139c0875B323 - inline BOOL IsPedPerformingStealthKill(Ped ped) { return _i(0xFD4CCDBCC59941B7, ped); } // 0xfd4ccdbcc59941b70x9add7b21B323 - inline BOOL IsPedPerformingACounterAttack(Ped ped) { return _i(0xEBD0EDBA5BE957CF, ped); } // 0xebd0edba5be957cf0x9be7c860B323 - inline BOOL IsPedBeingStealthKilled(Ped ped) { return _i(0x863B23EFDE9C5DF2, ped); } // 0x863b23efde9c5df20xd044c8afB323 - inline Ped GetMeleeTargetForPed(Ped ped) { return _i(0x18A3E9EE1297FD39, ped); } // 0x18a3e9ee1297fd390xafec26a4B323 - inline BOOL WasPedKilledByStealth(Ped ped) { return _i(0xF9800AA1A771B000, ped); } // 0xf9800aa1a771b0000x2ea4b54eB323 - inline BOOL WasPedKilledByTakedown(Ped ped) { return _i(0x7F08E26039C7347C, ped); } // 0x7f08e26039c7347c0xbdd3ce69B323 - inline BOOL WasPedKnockedOut(Ped ped) { return _i(0x61767F73EACEED21, ped); } // 0x61767f73eaceed210x3993092bB323 - // bit 1 (0x2) = use vehicle - // bit 15 (0x8000) = force cower - inline Void SetPedFleeAttributes(Ped ped, int attributeFlags, BOOL enable) { return _i(0x70A2D1137C8ED7C9, ped, attributeFlags, enable); } // 0x70a2d1137c8ed7c90xa717a875B323 - // p1: Only "CODE_HUMAN_STAND_COWER" found in the b617d scripts. - inline Void SetPedCowerHash(Ped ped, String p1) { return _i(0xA549131166868ED3, ped, p1); } // 0xa549131166868ed30x16f30df4B323 - inline Void SetPedSteersAroundDeadBodies(Ped ped, BOOL toggle) { return _i(0x2016C603D6B8987C, ped, toggle); } // 0x2016c603d6b8987c0xa6f2c057B323 - inline Void SetPedSteersAroundPeds(Ped ped, BOOL toggle) { return _i(0x46F2193B3AD1D891, ped, toggle); } // 0x46f2193b3ad1d8910x797cae4fB323 - inline Void SetPedSteersAroundObjects(Ped ped, BOOL toggle) { return _i(0x1509C089ADC208BF, ped, toggle); } // 0x1509c089adc208bf0x3bd9b0a6B323 - inline Void SetPedSteersAroundVehicles(Ped ped, BOOL toggle) { return _i(0xEB6FB9D48DDE23EC, ped, toggle); } // 0xeb6fb9d48dde23ec0x533c0651B323 - inline Void SetPedIsAVoidedByOthers(Any p0, BOOL p1) { return _i(0xA9B61A329BFDCBEA, p0, p1); } // 0xa9b61a329bfdcbea0x2276de0dB323 - inline Void SetPedIncreasedAVoidanceRadius(Ped ped) { return _i(0x570389D1C3DE3C6B, ped); } // 0x570389d1c3de3c6b0x59c52be6B323 - inline Void SetPedBlocksPathingWhenDead(Ped ped, BOOL toggle) { return _i(0x576594E8D64375E2, ped, toggle); } // 0x576594e8d64375e20x1d87ddc1B323 - inline Void SetPedNoTimeDelayBeforeShot(Any p0) { return _i(0xA52D5247A4227E14, p0); } // 0xa52d5247a4227e140xb52ba5f5B323 - inline BOOL IsAnyPedNearPoint(float x, float y, float z, float radius) { return _i(0x083961498679DC9F, x, y, z, radius); } // 0x083961498679dc9f0xfbd9b050B323 - inline Void ForcePedAiAndAnimationUpdate(Ped ped, BOOL p1, BOOL p2) { return _i(0x2208438012482A1A, ped, p1, p2); } // 0x2208438012482a1a0x187b9070B323 - inline BOOL IsPedHeadingTowardsPosition(Ped ped, float x, float y, float z, float p4) { return _i(0xFCF37A457CB96DC0, ped, x, y, z, p4); } // 0xfcf37a457cb96dc00x45037b9bB323 - inline Void RequestPedVisibilityTracking(Ped ped) { return _i(0x7D7A2E43E74E2EB8, ped); } // 0x7d7a2e43e74e2eb80x840d24d3B323 - inline Void RequestPedVehicleVisibilityTracking(Ped ped, BOOL p1) { return _i(0x2BC338A7B21F4608, ped, p1); } // 0x2bc338a7b21f46080x31c31daaB323 - inline Void RequestPedRestrictedVehicleVisibilityTracking(Ped ped, BOOL p1) { return _i(0xCD018C591F94CB43, ped, p1); } // 0xcd018c591f94cb43B323 - inline Void RequestPedUseSmallBboxVisibilityTracking(Ped ped, BOOL p1) { return _i(0x75BA1CB3B7D40CAF, ped, p1); } // 0x75ba1cb3b7d40caf0x9194db71B323 - // returns whether or not a ped is visible within your FOV, not this check auto's to false after a certain distance. - // - // - // Target needs to be tracked.. won't work otherwise. - inline BOOL IsTrackedPedVisible(Ped ped) { return _i(0x91C8E617F64188AC, ped); } // 0x91c8e617f64188ac0x33248cc1B323 - inline int GetTrackedPedPixelcount(Ped ped) { return _i(0x511F1A683387C7E2, ped); } // 0x511f1a683387c7e20x5b1b70aaB323 - inline BOOL IsPedTracked(Ped ped) { return _i(0x4C5E1F087CD10BB7, ped); } // 0x4c5e1f087cd10bb70x7eb613d9B323 - inline BOOL HasPedReceivedEvent(Ped ped, int eventId) { return _i(0x8507BCB710FA6DC0, ped, eventId); } // 0x8507bcb710fa6dc00xecd73db0B323 - inline BOOL CanPedSeeHatedPed(Ped ped1, Ped ped2) { return _i(0x6CD5A433374D4CFB, ped1, ped2); } // 0x6cd5a433374d4cfb0x74a0f291B323 - inline BOOL CanPedShuffleToOrFromTurretSeat(Ped ped, int* p1) { return _i(0x9C6A6C19B6C0C496, ped, p1); } // 0x9c6a6c19b6c0c496B323 - inline BOOL CanPedShuffleToOrFromExtraSeat(Ped ped, int* p1) { return _i(0x2DFC81C9B9608549, ped, p1); } // 0x2dfc81c9b9608549B944 - // no bone= -1 - // - // boneIds: - // SKEL_ROOT = 0x0, - // SKEL_Pelvis = 0x2e28, - // SKEL_L_Thigh = 0xe39f, - // SKEL_L_Calf = 0xf9bb, - // SKEL_L_Foot = 0x3779, - // SKEL_L_Toe0 = 0x83c, - // IK_L_Foot = 0xfedd, - // PH_L_Foot = 0xe175, - // MH_L_Knee = 0xb3fe, - // SKEL_R_Thigh = 0xca72, - // SKEL_R_Calf = 0x9000, - // SKEL_R_Foot = 0xcc4d, - // SKEL_R_Toe0 = 0x512d, - // IK_R_Foot = 0x8aae, - // PH_R_Foot = 0x60e6, - // MH_R_Knee = 0x3fcf, - // RB_L_ThighRoll = 0x5c57, - // RB_R_ThighRoll = 0x192a, - // SKEL_Spine_Root = 0xe0fd, - // SKEL_Spine0 = 0x5c01, - // SKEL_Spine1 = 0x60f0, - // SKEL_Spine2 = 0x60f1, - // SKEL_Spine3 = 0x60f2, - // SKEL_L_Clavicle = 0xfcd9, - // SKEL_L_UpperArm = 0xb1c5, - // SKEL_L_Forearm = 0xeeeb, - // SKEL_L_Hand = 0x49d9, - // SKEL_L_Finger00 = 0x67f2, - // SKEL_L_Finger01 = 0xff9, - // SKEL_L_Finger02 = 0xffa, - // SKEL_L_Finger10 = 0x67f3, - // SKEL_L_Finger11 = 0x1049, - // SKEL_L_Finger12 = 0x104a, - // SKEL_L_Finger20 = 0x67f4, - // SKEL_L_Finger21 = 0x1059, - // SKEL_L_Finger22 = 0x105a, - // SKEL_L_Finger30 = 0x67f5, - // SKEL_L_Finger31 = 0x1029, - // SKEL_L_Finger32 = 0x102a, - // SKEL_L_Finger40 = 0x67f6, - // SKEL_L_Finger41 = 0x1039, - // SKEL_L_Finger42 = 0x103a, - // PH_L_Hand = 0xeb95, - // IK_L_Hand = 0x8cbd, - // RB_L_ForeArmRoll = 0xee4f, - // RB_L_ArmRoll = 0x1470, - // MH_L_Elbow = 0x58b7, - // SKEL_R_Clavicle = 0x29d2, - // SKEL_R_UpperArm = 0x9d4d, - // SKEL_R_Forearm = 0x6e5c, - // SKEL_R_Hand = 0xdead, - // SKEL_R_Finger00 = 0xe5f2, - // SKEL_R_Finger01 = 0xfa10, - // SKEL_R_Finger02 = 0xfa11, - // SKEL_R_Finger10 = 0xe5f3, - // SKEL_R_Finger11 = 0xfa60, - // SKEL_R_Finger12 = 0xfa61, - // SKEL_R_Finger20 = 0xe5f4, - // SKEL_R_Finger21 = 0xfa70, - // SKEL_R_Finger22 = 0xfa71, - // SKEL_R_Finger30 = 0xe5f5, - // SKEL_R_Finger31 = 0xfa40, - // SKEL_R_Finger32 = 0xfa41, - // SKEL_R_Finger40 = 0xe5f6, - // SKEL_R_Finger41 = 0xfa50, - // SKEL_R_Finger42 = 0xfa51, - // PH_R_Hand = 0x6f06, - // IK_R_Hand = 0x188e, - // RB_R_ForeArmRoll = 0xab22, - // RB_R_ArmRoll = 0x90ff, - // MH_R_Elbow = 0xbb0, - // SKEL_Neck_1 = 0x9995, - // SKEL_Head = 0x796e, - // IK_Head = 0x322c, - // FACIAL_facialRoot = 0xfe2c, - // FB_L_Brow_Out_000 = 0xe3db, - // FB_L_Lid_Upper_000 = 0xb2b6, - // FB_L_Eye_000 = 0x62ac, - // FB_L_CheekBone_000 = 0x542e, - // FB_L_Lip_Corner_000 = 0x74ac, - // FB_R_Lid_Upper_000 = 0xaa10, - // FB_R_Eye_000 = 0x6b52, - // FB_R_CheekBone_000 = 0x4b88, - // FB_R_Brow_Out_000 = 0x54c, - // FB_R_Lip_Corner_000 = 0x2ba6, - // FB_Brow_Centre_000 = 0x9149, - // FB_UpperLipRoot_000 = 0x4ed2, - // FB_UpperLip_000 = 0xf18f, - // FB_L_Lip_Top_000 = 0x4f37, - // FB_R_Lip_Top_000 = 0x4537, - // FB_Jaw_000 = 0xb4a0, - // FB_LowerLipRoot_000 = 0x4324, - // FB_LowerLip_000 = 0x508f, - // FB_L_Lip_Bot_000 = 0xb93b, - // FB_R_Lip_Bot_000 = 0xc33b, - // FB_Tongue_000 = 0xb987, - // RB_Neck_1 = 0x8b93, - // IK_Root = 0xdd1c - inline int GetPedBoneIndex(Ped ped, int boneId) { return _i(0x3F428D08BE5AAE31, ped, boneId); } // 0x3f428d08be5aae310x259c6ba2B323 - inline int GetPedRagdollBoneIndex(Ped ped, int bone) { return _i(0x2057EF813397A772, ped, bone); } // 0x2057ef813397a7720x849f0716B323 - // Values look to be between 0.0 and 1.0 - // From decompiled scripts: 0.0, 0.6, 0.65, 0.8, 1.0 - // - // You are correct, just looked in IDA it breaks from the function if it's less than 0.0f or greater than 1.0f. - inline Void SetPedEnveffScale(Ped ped, float value) { return _i(0xBF29516833893561, ped, value); } // 0xbf295168338935610xfc1cfc27B323 - inline float GetPedEnveffScale(Ped ped) { return _i(0x9C14D30395A51A3C, ped); } // 0x9c14d30395a51a3c0xa3421e39B323 - inline Void SetEnablePedEnveffScale(Ped ped, BOOL toggle) { return _i(0xD2C5AA0C0E8D0F1E, ped, toggle); } // 0xd2c5aa0c0e8d0f1e0xc70f4a84B323 - // In agency_heist3b.c4, its like this 90% of the time: - // - // PED::SetPedEnveffCpvAdd(ped, 0.099); - // PED::SetPedEnveffScale(ped, 1.0); - // PED::SetPedEnveffCpvAdd(ped, 87, 81, 68); - // PED::SetEnablePedEnveffScale(ped, 1); - // - // and its like this 10% of the time: - // - // PED::SetPedEnveffCpvAdd(ped, 0.2); - // PED::SetPedEnveffScale(ped, 0.65); - // PED::SetPedEnveffColorModulator(ped, 74, 69, 60); - // PED::SetEnablePedEnveffScale(ped, 1); - inline Void SetPedEnveffCpvAdd(Ped ped, float p1) { return _i(0x110F526AB784111F, ped, p1); } // 0x110f526ab784111f0x3b882533B323 - // Something related to the environmental effects natives. - // In the "agency_heist3b" script, p1 - p3 are always under 100 - usually they are {87, 81, 68}. If SetPedEnveffScale is set to 0.65 (instead of the usual 1.0), they use {74, 69, 60} - inline Void SetPedEnveffColorModulator(Ped ped, int p1, int p2, int p3) { return _i(0xD69411AA0CEBF9E9, ped, p1, p2, p3); } // 0xd69411aa0cebf9e90x87a0c174B323 - // intensity: 0.0f - 1.0f - // - // This native sets the emissive intensity for the given ped. It is used for different 'glow' levels on illuminated clothing. - inline Void SetPedEmissiveScale(Ped ped, float intensity) { return _i(0x4E90D746056E273D, ped, intensity); } // 0x4e90d746056e273dB944 - // Use 0x4E90D746056E273D to set the illuminated clothing glow intensity for a specific ped. - // Returns a float between 0.0 and 1.0 representing the current illuminated clothing glow intensity. - inline float GetPedEmissiveScale(Ped ped) { return _i(0x1461B28A06717D68, ped); } // 0x1461b28a06717d68B944 - inline BOOL IsPedShaderReady(Ped ped) { return _i(0x81AA517FBBA05D39, ped); } // 0x81aa517fbba05d39B944 - inline Void SetPedEnableCrewEmblem(Ped ped, BOOL toggle) { return _i(0xE906EC930F5FE7C8, ped, toggle); } // 0xe906ec930f5fe7c8B791 - // This native does absolutely nothing, just a nullsub - inline Void RequestRagdollBoundsUpdate(Any p0, Any p1) { return _i(0x1216E0BFA72CC703, p0, p1); } // 0x1216e0bfa72cc7030x7bd26837B323 - // Enable/disable ped shadow (ambient occlusion). https://gfycat.com/thankfulesteemedgecko - inline Void SetPedAoBlobRendering(Ped ped, BOOL toggle) { return _i(0x2B5AA717A181FB4C, ped, toggle); } // 0x2b5aa717a181fb4c0x98e29ed0B323 - inline BOOL IsPedSheltered(Ped ped) { return _i(0xB8B52E498014F5B0, ped); } // 0xb8b52e498014f5b0B323 - // p6 always 2 (but it doesnt seem to matter...) - // - // roll and pitch 0 - // yaw to Ped.rotation - inline int CreateSynchronizedScene(float x, float y, float z, float roll, float pitch, float yaw, int p6) { return _i(0x8C18E0F9080ADD73, x, y, z, roll, pitch, yaw, p6); } // 0x8c18e0f9080add730xffddf8faB323 - inline int CreateSynchronizedSceneAtMapObject(float x, float y, float z, float radius, Hash object) { return _i(0x62EC273D00187DCA, x, y, z, radius, object); } // 0x62ec273d00187dca0xf3876894B323 - // Returns true if a synchronized scene is running - inline BOOL IsSynchronizedSceneRunning(int sceneId) { return _i(0x25D39B935A038A26, sceneId); } // 0x25d39b935a038a260x57a282f1B323 - inline Void SetSynchronizedSceneOrigin(int sceneID, float x, float y, float z, float roll, float pitch, float yaw, BOOL p7) { return _i(0x6ACF6B7225801CD7, sceneID, x, y, z, roll, pitch, yaw, p7); } // 0x6acf6b7225801cd70x2ec2a0b2B323 - inline Void SetSynchronizedScenePhase(int sceneID, float phase) { return _i(0x734292F4F0ABF6D0, sceneID, phase); } // 0x734292f4f0abf6d00xf5ab0d98B323 - inline float GetSynchronizedScenePhase(int sceneID) { return _i(0xE4A310B1D7FA73CC, sceneID); } // 0xe4a310b1d7fa73cc0xb0b2c852B323 - inline Void SetSynchronizedSceneRate(int sceneID, float rate) { return _i(0xB6C49F8A5E295A5D, sceneID, rate); } // 0xb6c49f8a5e295a5d0xf10112fdB323 - inline float GetSynchronizedSceneRate(int sceneID) { return _i(0xD80932D577274D40, sceneID); } // 0xd80932d577274d400x89365f0dB323 - inline Void SetSynchronizedSceneLooped(int sceneID, BOOL toggle) { return _i(0xD9A897A4C6C2974F, sceneID, toggle); } // 0xd9a897a4c6c2974f0x32ed9f82B323 - inline BOOL IsSynchronizedSceneLooped(int sceneID) { return _i(0x62522002E0C391BA, sceneID); } // 0x62522002e0c391ba0x47d87a84B323 - inline Void SetSynchronizedSceneHoldLastFrame(int sceneID, BOOL toggle) { return _i(0x394B9CD12435C981, sceneID, toggle); } // 0x394b9cd12435c9810x2de48da1B323 - inline BOOL IsSynchronizedSceneHoldLastFrame(int sceneID) { return _i(0x7F2F4F13AC5257EF, sceneID); } // 0x7f2f4f13ac5257ef0x72cf2514B323 - inline Void AttachSynchronizedSceneToEntity(int sceneID, Entity entity, int boneIndex) { return _i(0x272E4723B56A3B96, sceneID, entity, boneIndex); } // 0x272e4723b56a3b960xe9ba6189B323 - inline Void DetachSynchronizedScene(int sceneID) { return _i(0x6D38F1F04CBB37EA, sceneID); } // 0x6d38f1f04cbb37ea0x52a1cab2B323 - inline Void TakeOwnershipOfSynchronizedScene(int scene) { return _i(0xCD9CC7E200A52A6F, scene); } // 0xcd9cc7e200a52a6f0xbf7f9035B323 - // Regarding p2, p3 and p4: Most common is 0, 0, 0); followed by 0, 1, 0); and 1, 1, 0); in R* scripts. p4 is very rarely something other than 0. - // - // enum eMotionState // 0x92A659FE - // { - // MotionState_None = 0xEE717723, - // MotionState_Idle = 0x9072A713, - // MotionState_Walk = 0xD827C3DB, - // MotionState_Run = 0xFFF7E7A4, - // MotionState_Sprint = 0xBD8817DB, - // MotionState_Crouch_Idle = 0x43FB099E, - // MotionState_Crouch_Walk = 0x08C31A98, - // MotionState_Crouch_Run = 0x3593CF09, - // MotionState_DoNothing = 0x0EC17E58, - // MotionState_AnimatedVelocity = 0x551AAC43, - // MotionState_InVehicle = 0x94D9D58D, - // MotionState_Aiming = 0x3F67C6AF, - // MotionState_Diving_Idle = 0x4848CDED, - // MotionState_Diving_Swim = 0x916E828C, - // MotionState_Swimming_TreadWater = 0xD1BF11C7, - // MotionState_Dead = 0x0DBB071C, - // MotionState_Stealth_Idle = 0x422D7A25, - // MotionState_Stealth_Walk = 0x042AB6A2, - // MotionState_Stealth_Run = 0xFB0B79E1, - // MotionState_Parachuting = 0xBAC0F10B, - // MotionState_ActionMode_Idle = 0xDA40A0DC, - // MotionState_ActionMode_Walk = 0xD2905EA7, - // MotionState_ActionMode_Run = 0x31BADE14, - // MotionState_Jetpack = 0x535E6A5E - // }; - inline BOOL ForcePedMotionState(Ped ped, Hash motionStateHash, BOOL p2, int p3, BOOL p4) { return _i(0xF28965D04F570DCA, ped, motionStateHash, p2, p3, p4); } // 0xf28965d04f570dca0x164ddeffB323 - inline BOOL GetPedCurrentMoveBlendRatio(Ped ped, float* speedX, float* speedY) { return _i(0xF60165E1D2C5370B, ped, speedX, speedY); } // 0xf60165e1d2c5370bB323 - inline Void SetPedMaxMoveBlendRatio(Ped ped, float value) { return _i(0x433083750C5E064A, ped, value); } // 0x433083750c5e064a0xead0269aB323 - inline Void SetPedMinMoveBlendRatio(Ped ped, float value) { return _i(0x01A898D26E2333DD, ped, value); } // 0x01a898d26e2333dd0x383ec364B323 - // Min: 0.00 - // Max: 10.00 - // - // Can be used in combo with fast run cheat. - // - // When value is set to 10.00: - // Sprinting without fast run cheat: 66 m/s - // Sprinting with fast run cheat: 77 m/s - // - // Needs to be looped! - // - // Note: According to IDA for the Xbox360 xex, when they check bgt they seem to have the min to 0.0f, but the max set to 1.15f not 10.0f. - inline Void SetPedMoveRateOverride(Ped ped, float value) { return _i(0x085BF80FA50A39D1, ped, value); } // 0x085bf80fa50a39d10x900008c6B323 - inline Void SetPedMoveRateInWaterOverride(Ped ped, float p1) { return _i(0x0B3E35AC043707D9, ped, p1); } // 0x0b3e35ac043707d9B573 - // Checks if the specified sexiness flag is set - // - // enum eSexinessFlags - // { - // SF_JEER_AT_HOT_PED = 0, - // SF_HURRIEDFEMALES_SEXY = 1, - // SF_HOT_PERSON = 2, - // }; - inline BOOL PedHasSexinessFlagSet(Ped ped, int sexinessFlag) { return _i(0x46B05BCAE43856B0, ped, sexinessFlag); } // 0x46b05bcae43856b00x79543043B323 - // Returns size of array, passed into the second variable. - // - // See below for usage information. - // - // This function actually requires a struct, where the first value is the maximum number of elements to return. Here is a sample of how I was able to get it to work correctly, without yet knowing the struct format. - // - // //Setup the array - // const int numElements = 10; - // const int arrSize = numElements * 2 + 2; - // Any veh[arrSize]; - // //0 index is the size of the array - // veh[0] = numElements; - // - // int count = PED::GetPedNearbyVehicles(PLAYER::PlayerPedId(), veh); - // - // if (veh != NULL) - // { - // //Simple loop to go through results - // for (int i = 0; i < count; i++) - // { - // int offsettedID = i * 2 + 2; - // //Make sure it exists - // if (veh[offsettedID] != NULL && ENTITY::DoesEntityExist(veh[offsettedID])) - // { - // //Do something - // } - // } - // } - inline int GetPedNearbyVehicles(Ped ped, Any* sizeAndVehs) { return _i(0xCFF869CBFA210D82, ped, sizeAndVehs); } // 0xcff869cbfa210d820xcb716f68B323 - // sizeAndPeds - is a pointer to an array. The array is filled with peds found nearby the ped supplied to the first argument. - // ignore - ped type to ignore - // - // Return value is the number of peds found and added to the array passed. - // - // ----------------------------------- - // - // To make this work in most menu bases at least in C++ do it like so, - // - // Formatted Example: https://pastebin.com/D8an9wwp - // - // ----------------------------------- - // - // Example: gtaforums.com/topic/789788-function-args-to-pedget-ped-nearby-peds/?p=1067386687 - inline int GetPedNearbyPeds(Ped ped, Any* sizeAndPeds, int ignore) { return _i(0x23F8F5FC7E8C4A6B, ped, sizeAndPeds, ignore); } // 0x23f8f5fc7e8c4a6b0x4d3325f4B323 - inline BOOL HaveAllStreamingRequestsCompleted(Ped ped) { return _i(0x7350823473013C02, ped); } // 0x7350823473013c020xf9fb4b71B323 - inline BOOL IsPedUsingActionMode(Ped ped) { return _i(0x00E73468D085F745, ped); } // 0x00e73468d085f7450x5ae7eda2B323 - // p2 is usually -1 in the scripts. action is either 0 or "DEFAULT_ACTION". - inline Void SetPedUsingActionMode(Ped ped, BOOL p1, int p2, String action) { return _i(0xD75ACCF5E0FB5367, ped, p1, p2, action); } // 0xd75accf5e0fb53670x8802f696B323 - // name: "MP_FEMALE_ACTION" found multiple times in the b617d scripts. - inline Void SetMovementModeOverride(Ped ped, String name) { return _i(0x781DE8FA214E87D2, ped, name); } // 0x781de8fa214e87d20x83bae814B323 - // Overrides the ped's collision capsule radius for the current tick. - // Must be called every tick to be effective. - // - // Setting this to 0.001 will allow warping through some objects. - inline Void SetPedCapsule(Ped ped, float value) { return _i(0x364DF566EC833DE2, ped, value); } // 0x364df566ec833de20xb153e1b9B323 - // gtaforums.com/topic/885580-ped-headshotmugshot-txd/ - inline int RegisterPedheadshot(Ped ped) { return _i(0x4462658788425076, ped); } // 0x44626587884250760xffe2667bB323 - inline int RegisterPedheadshotHires(Ped ped) { return _i(0xBA8805A1108A2515, ped); } // 0xba8805a1108a2515B877 - // Similar to RegisterPedheadshot but creates a transparent background instead of black. Example: https://i.imgur.com/iHz8ztn.png - inline int RegisterPedheadshotTransparent(Ped ped) { return _i(0x953563CE563143AF, ped); } // 0x953563ce563143af0x4dd03628B323 - // gtaforums.com/topic/885580-ped-headshotmugshot-txd/ - inline Void UnregisterPedheadshot(int id) { return _i(0x96B1361D9B24C2FF, id); } // 0x96b1361d9b24c2ff0x0879ae45B323 - // gtaforums.com/topic/885580-ped-headshotmugshot-txd/ - inline BOOL IsPedheadshotValid(int id) { return _i(0xA0A9668F158129A2, id); } // 0xa0a9668f158129a20x0b1080c4B323 - // gtaforums.com/topic/885580-ped-headshotmugshot-txd/ - inline BOOL IsPedheadshotReady(int id) { return _i(0x7085228842B13A67, id); } // 0x7085228842b13a670x761cd02eB323 - // gtaforums.com/topic/885580-ped-headshotmugshot-txd/ - inline String GetPedheadshotTxdString(int id) { return _i(0xDB4EACD4AD0A5D6B, id); } // 0xDB4EACD4AD0A5D6B 0x76D28E96 b323 - inline BOOL RequestPedheadshotImgUpload(int id) { return _i(0xF0DAEF2F545BEE25, id); } // 0xf0daef2f545bee250x10f2c023B323 - inline Void ReleasePedheadshotImgUpload(int id) { return _i(0x5D517B27CF6ECD04, id); } // 0x5d517b27cf6ecd040x0dbb2fa7B323 - inline BOOL IsPedheadshotImgUploadAvailable() { return _i(0xEBB376779A760AA8); } // 0xebb376779a760aa80x810158f8B323 - inline BOOL HasPedheadshotImgUploadFailed() { return _i(0x876928DDDFCCC9CD); } // 0x876928dddfccc9cd0x05023f8fB323 - inline BOOL HasPedheadshotImgUploadSucceeded() { return _i(0xE8A169E666CBC541); } // 0xe8a169e666cbc5410xaa39fd6cB323 - inline Void SetPedHeatscaleOverride(Ped ped, float heatScale) { return _i(0xC1F6EBF9A3D55538, ped, heatScale); } // 0xc1f6ebf9a3d555380xef9142dbB323 - inline Void DisablePedHeatscaleOverride(Ped ped) { return _i(0x600048C60D5C2C51, ped); } // 0x600048c60d5c2c510x0688de64B323 - inline Void SpawnpointsStartSearch(float p0, float p1, float p2, float p3, float p4, int interiorFlags, float scale, int duration) { return _i(0x2DF9038C90AD5264, p0, p1, p2, p3, p4, interiorFlags, scale, duration); } // 0x2df9038c90ad52640x909a1d76B323 - inline Void SpawnpointsStartSearchInAngledArea(float x1, float y1, float z1, float x2, float y2, float z2, float width, int interiorFlags, float scale, int duration) { return _i(0xB2AFF10216DEFA2F, x1, y1, z1, x2, y2, z2, width, interiorFlags, scale, duration); } // 0xb2aff10216defa2f0x4aad0ecbB323 - inline Void SpawnpointsCancelSearch() { return _i(0xFEE4A5459472A9F8); } // 0xfee4a5459472a9f80x492c9e46B323 - inline BOOL SpawnpointsIsSearchActive() { return _i(0x3C67506996001F5E); } // 0x3c67506996001f5e0x814a28f4B323 - inline BOOL SpawnpointsIsSearchComplete() { return _i(0xA586FBEB32A53DBB); } // 0xa586fbeb32a53dbb0x0b60d2baB323 - inline BOOL SpawnpointsIsSearchFailed() { return _i(0xF445DE8DA80A1792); } // 0xf445de8da80a17920x6b83abdfB323 - inline int SpawnpointsGetNumSearchResults() { return _i(0xA635C11B8C44AFC2); } // 0xa635c11b8c44afc20xf46b4dc8B323 - inline Void SpawnpointsGetSearchResult(int randomInt, float* x, float* y, float* z) { return _i(0x280C7E3AC7F56E90, randomInt, x, y, z); } // 0x280c7e3ac7f56e900x36a4ac65B323 - inline Void SpawnpointsGetSearchResultFlags(int p0, int* p1) { return _i(0xB782F8238512BAD5, p0, p1); } // 0xb782f8238512bad50xba699ddfB323 - inline Void SetIkTarget(Ped ped, int ikIndex, Entity entityLookAt, int boneLookAt, float offsetX, float offsetY, float offsetZ, Any p7, int blendInDuration, int blendOutDuration) { return _i(0xC32779C16FCEECD9, ped, ikIndex, entityLookAt, boneLookAt, offsetX, offsetY, offsetZ, p7, blendInDuration, blendOutDuration); } // 0xc32779c16fceecd90x6fe5218cB323 - inline Void ForceInstantLegIkSetup(Ped ped) { return _i(0xED3C76ADFA6D07C4, ped); } // 0xed3c76adfa6d07c40xfb4000dcB323 - inline Void RequestActionModeAsset(String asset) { return _i(0x290E2780BB7AA598, asset); } // 0x290e2780bb7aa5980x572ba553B323 - inline BOOL HasActionModeAssetLoaded(String asset) { return _i(0xE4B5F4BF2CB24E65, asset); } // 0xe4b5f4bf2cb24e650xf7eb2bf1B323 - inline Void RemoveActionModeAsset(String asset) { return _i(0x13E940F88470FA51, asset); } // 0x13e940f88470fa510x3f480f92B323 - inline Void RequestStealthModeAsset(String asset) { return _i(0x2A0A62FCDEE16D4F, asset); } // 0x2a0a62fcdee16d4f0x280a004aB323 - inline BOOL HasStealthModeAssetLoaded(String asset) { return _i(0xE977FC5B08AF3441, asset); } // 0xe977fc5b08af34410x39245667B323 - inline Void RemoveStealthModeAsset(String asset) { return _i(0x9219857D21F0E842, asset); } // 0x9219857d21f0e8420x8c0b243aB323 - inline Void SetPedLodMultiplier(Ped ped, float multiplier) { return _i(0xDC2C5C242AAC342B, ped, multiplier); } // 0xdc2c5c242aac342b0x1d2b5c70B323 - inline Void SetPedCanLosePropsOnDamage(Ped ped, BOOL toggle, int p2) { return _i(0xE861D0B05C7662B8, ped, toggle, p2); } // 0xe861d0b05c7662b80x2f9550c2B323 - inline Void SetForceFootstepUpdate(Ped ped, BOOL toggle) { return _i(0x129466ED55140F8D, ped, toggle); } // 0x129466ed55140f8d0x37dbc2adB323 - inline Void SetForceStepType(Ped ped, BOOL p1, int type, int p3) { return _i(0xCB968B53FC7F916D, ped, p1, type, p3); } // 0xcb968b53fc7f916d0xc0f1bc91B323 - inline BOOL IsAnyHostilePedNearPoint(Ped ped, float x, float y, float z, float radius) { return _i(0x68772DB2B2526F9F, ped, x, y, z, radius); } // 0x68772db2b2526f9f0x1a464167B323 - // Toggles config flag CPED_CONFIG_FLAG_CanPlayInCarIdles. - inline Void SetPedCanPlayInCarIdles(Ped ped, BOOL toggle) { return _i(0x820E9892A77E97CD, ped, toggle); } // 0x820e9892a77e97cdB877 - inline BOOL IsTargetPedInPerceptionArea(Ped ped, Ped targetPed, float p2, float p3, float p4, float p5) { return _i(0x06087579E7AA85A9, ped, targetPed, p2, p3, p4, p5); } // 0x06087579e7aa85a90xd0567d41B323 - // Min and max are usually 100.0 and 200.0 - inline Void SetPopControlSphereThisFrame(float x, float y, float z, float min, float max) { return _i(0xD8C3BE3EE94CAF2D, x, y, z, min, max); } // 0xd8c3be3ee94caf2d0x4bbe5e2cB323 - inline Void ForceZeroMassInCollisions(Ped ped) { return _i(0xD33DAA36272177C4, ped); } // 0xd33daa36272177c40xa89a53f2B323 - inline Void SetDisableHighFallDeath(Ped ped, BOOL toggle) { return _i(0x711794453CFD692B, ped, toggle); } // 0x711794453cfd692bB463 - inline Void SetPedPhonePaletteIdx(Any p0, Any p1) { return _i(0x83A169EABCDB10A2, p0, p1); } // 0x83a169eabcdb10a2B323 - inline Void SetPedSteerBias(Ped ped, float value) { return _i(0x288DF530C92DAD6F, ped, value); } // 0x288df530c92dad6fB323 - inline BOOL IsPedSwitchingWeapon(Ped Ped) { return _i(0x3795688A307E1EB6, Ped); } // 0x3795688a307e1eb6B505 - inline Void SetPedTreatedAsFriendly(Any p0, Any p1, Any p2) { return _i(0x0F62619393661D6E, p0, p1, p2); } // 0x0f62619393661d6eB877 - inline Void SetDisablePedMapCollision(Ped ped) { return _i(0xDFE68C4B787E1BFB, ped); } // 0xdfe68c4b787e1bfbB1180 - inline Void EnableMpLight(Ped ped, BOOL toggle) { return _i(0xEE2476B9EE4A094F, ped, toggle); } // 0xee2476b9ee4a094fB1493 - inline BOOL GetMpLightEnabled(Ped ped) { return _i(0x88274C11CF0D866D, ped); } // 0x88274c11cf0d866dB1493 - inline Void ClearCoverPointForPed(Ped ped) { return _i(0x637822DC2AFEEBF8, ped); } // 0x637822dc2afeebf8B1493 - inline Void SetAllowStuntJumpCamera(Ped ped, BOOL toggle) { return _i(0xFAB944D4D481ACCB, ped, toggle); } // 0xfab944d4d481accbB1734 + // https://alloc8or.re/gta5/doc/enums/ePedType.txt + // + // Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json + inline Ped CreatePed(int pedType, Hash modelHash, float x, float y, float z, float heading, BOOL isNetwork, BOOL bScriptHostPed) { return _i(0xD49F9B0955C367DE, pedType, modelHash, x, y, z, heading, isNetwork, bScriptHostPed); } // 0xd49f9b0955c367de0x0389ef71B323 + // Deletes the specified ped, then sets the handle pointed to by the pointer to NULL. + inline Void DeletePed(Ped* ped) { return _i(0x9614299DCB53E54B, ped); } // 0x9614299dcb53e54b0x13efb9a0B323 + inline Ped ClonePed(Ped ped, BOOL isNetwork, BOOL bScriptHostPed, BOOL copyHeadBlendFlag) { return _i(0xEF29A16337FACADB, ped, isNetwork, bScriptHostPed, copyHeadBlendFlag); } // 0xef29a16337facadb0x8c8a8d6eB323 + inline Ped ClonePedAlt(Ped ped, BOOL isNetwork, BOOL bScriptHostPed, BOOL copyHeadBlendFlag, BOOL p4) { return _i(0x668FD40BCBA5DE48, ped, isNetwork, bScriptHostPed, copyHeadBlendFlag, p4); } // 0x668fd40bcba5de48B463 + // Copies ped's components and props to targetPed. + inline Void ClonePedToTarget(Ped ped, Ped targetPed) { return _i(0xE952D6431689AD9A, ped, targetPed); } // 0xe952d6431689ad9a0xfc70eec7B323 + inline Void ClonePedToTargetAlt(Ped ped, Ped targetPed, BOOL p2) { return _i(0x148B08C2D2ACB884, ped, targetPed, p2); } // 0x148b08c2d2acb884B463 + // Gets a value indicating whether the specified ped is in the specified vehicle. + // + // If 'atGetIn' is false, the function will not return true until the ped is sitting in the vehicle and is about to close the door. If it's true, the function returns true the moment the ped starts to get onto the seat (after opening the door). Eg. if false, and the ped is getting into a submersible, the function will not return true until the ped has descended down into the submersible and gotten into the seat, while if it's true, it'll return true the moment the hatch has been opened and the ped is about to descend into the submersible. + inline BOOL IsPedInVehicle(Ped ped, Vehicle vehicle, BOOL atGetIn) { return _i(0xA3EE4A07279BB9DB, ped, vehicle, atGetIn); } // 0xa3ee4a07279bb9db0x7da6bc83B323 + inline BOOL IsPedInModel(Ped ped, Hash modelHash) { return _i(0x796D90EFB19AA332, ped, modelHash); } // 0x796d90efb19aa3320xa6438d4bB323 + // Gets a value indicating whether the specified ped is in any vehicle. + // + // If 'atGetIn' is false, the function will not return true until the ped is sitting in the vehicle and is about to close the door. If it's true, the function returns true the moment the ped starts to get onto the seat (after opening the door). Eg. if false, and the ped is getting into a submersible, the function will not return true until the ped has descended down into the submersible and gotten into the seat, while if it's true, it'll return true the moment the hatch has been opened and the ped is about to descend into the submersible. + inline BOOL IsPedInAnyVehicle(Ped ped, BOOL atGetIn) { return _i(0x997ABD671D25CA0B, ped, atGetIn); } // 0x997abd671d25ca0b0x3b0171eeB323 + // xyz - relative to the world origin. + inline BOOL IsCopPedInArea3d(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x16EC4839969F9F5E, x1, y1, z1, x2, y2, z2); } // 0x16ec4839969f9f5e0xb98db96bB323 + // Gets a value indicating whether this ped's health is below its injured threshold. + // + // The default threshold is 100. + inline BOOL IsPedInjured(Ped ped) { return _i(0x84A2DD9AC37C35C1, ped); } // 0x84a2dd9ac37c35c10x2530a087B323 + // Returns whether the specified ped is hurt. + inline BOOL IsPedHurt(Ped ped) { return _i(0x5983BB449D7FDB12, ped); } // 0x5983bb449d7fdb120x69dfa0afB323 + // Gets a value indicating whether this ped's health is below its fatally injured threshold. The default threshold is 100. + // If the handle is invalid, the function returns true. + inline BOOL IsPedFatallyInjured(Ped ped) { return _i(0xD839450756ED5A80, ped); } // 0xd839450756ed5a800xbada0093B323 + // Seems to consistently return true if the ped is dead. + // + // p1 is always passed 1 in the scripts. + // + // I suggest to remove "OR_DYING" part, because it does not detect dying phase. + // + // That's what the devs call it, cry about it. + // + // lol + inline BOOL IsPedDeadOrDying(Ped ped, BOOL p1) { return _i(0x3317DEDB88C95038, ped, p1); } // 0x3317dedb88c950380xcbdb7739B323 + inline BOOL IsConversationPedDead(Ped ped) { return _i(0xE0A0AEC214B1FABA, ped); } // 0xe0a0aec214b1faba0x1fa39efeB323 + inline BOOL IsPedAimingFromCover(Ped ped) { return _i(0x3998B1276A3300E5, ped); } // 0x3998b1276a3300e50xdebab2afB323 + // Returns whether the specified ped is reloading. + inline BOOL IsPedReloading(Ped ped) { return _i(0x24B100C68C645951, ped); } // 0x24b100c68c6459510x961e1745B323 + // Returns true if the given ped has a valid pointer to CPlayerInfo in its CPed class. That's all. + inline BOOL IsPedAPlayer(Ped ped) { return _i(0x12534C348C6CB68B, ped); } // 0x12534c348c6cb68b0x404794caB323 + // pedType: see CreatePed + // + // Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json + inline Ped CreatePedInsideVehicle(Vehicle vehicle, int pedType, Hash modelHash, int seat, BOOL isNetwork, BOOL bScriptHostPed) { return _i(0x7DD959874C1FD534, vehicle, pedType, modelHash, seat, isNetwork, bScriptHostPed); } // 0x7dd959874c1fd5340x3000f092B323 + inline Void SetPedDesiredHeading(Ped ped, float heading) { return _i(0xAA5A7ECE2AA8FE70, ped, heading); } // 0xaa5a7ece2aa8fe700x961458f9B323 + inline Void ForceAllHeadingValuesToAlign(Ped ped) { return _i(0xFF287323B0E2C69A, ped); } // 0xff287323b0e2c69a0x290421beB323 + // angle is ped's view cone + inline BOOL IsPedFacingPed(Ped ped, Ped otherPed, float angle) { return _i(0xD71649DB0A545AA3, ped, otherPed, angle); } // 0xd71649db0a545aa30x0b775838B323 + // Notes: The function only returns true while the ped is: + // A.) Swinging a random melee attack (including pistol-whipping) + // + // B.) Reacting to being hit by a melee attack (including pistol-whipping) + // + // C.) Is locked-on to an enemy (arms up, strafing/skipping in the default fighting-stance, ready to dodge+counter). + // + // You don't have to be holding the melee-targetting button to be in this stance; you stay in it by default for a few seconds after swinging at someone. If you do a sprinting punch, it returns true for the duration of the punch animation and then returns false again, even if you've punched and made-angry many peds + inline BOOL IsPedInMeleeCombat(Ped ped) { return _i(0x4E209B2C1EAD5159, ped); } // 0x4e209b2c1ead51590xfd7814a5B323 + // Returns true if the ped doesn't do any movement. If the ped is being pushed forwards by using ApplyForceToEntity for example, the function returns false. + inline BOOL IsPedStopped(Ped ped) { return _i(0x530944F6F4B8A214, ped); } // 0x530944f6f4b8a2140xa0dc0b87B323 + inline BOOL IsPedShootingInArea(Ped ped, float x1, float y1, float z1, float x2, float y2, float z2, BOOL p7, BOOL p8) { return _i(0x7E9DFE24AC1E58EF, ped, x1, y1, z1, x2, y2, z2, p7, p8); } // 0x7e9dfe24ac1e58ef0x741bf04fB323 + inline BOOL IsAnyPedShootingInArea(float x1, float y1, float z1, float x2, float y2, float z2, BOOL p6, BOOL p7) { return _i(0xA0D3D71EA1086C55, x1, y1, z1, x2, y2, z2, p6, p7); } // 0xa0d3d71ea1086c550x91833867B323 + // Returns whether the specified ped is shooting. + inline BOOL IsPedShooting(Ped ped) { return _i(0x34616828CD07F1A1, ped); } // 0x34616828cd07f1a10xe7c3405eB323 + // accuracy = 0-100, 100 being perfectly accurate + inline Void SetPedAccuracy(Ped ped, int accuracy) { return _i(0x7AEFB85C1D49DEB6, ped, accuracy); } // 0x7aefb85c1d49deb60x6c17122eB323 + inline int GetPedAccuracy(Ped ped) { return _i(0x37F4AD56ECBC0CD6, ped); } // 0x37f4ad56ecbc0cd60x0a2a0aa0B323 + inline Void SetAmbientLawPedAccuracyModifier(float multiplier) { return _i(0x87DDEB611B329A9C, multiplier); } // 0x87ddeb611b329a9cB1103 + inline BOOL IsPedModel(Ped ped, Hash modelHash) { return _i(0xC9D55B1A358A5BF7, ped, modelHash); } // 0xc9d55b1a358a5bf70x5f1ddfcbB323 + // Forces the ped to fall back and kills it. + // + // It doesn't really explode the ped's head but it kills the ped + inline Void ExplodePedHead(Ped ped, Hash weaponHash) { return _i(0x2D05CED3A38D0F3A, ped, weaponHash); } // 0x2d05ced3a38d0f3a0x05cc1380B323 + // Judging purely from a quick disassembly, if the ped is in a vehicle, the ped will be deleted immediately. If not, it'll be marked as no longer needed. - very elegant.. + inline Void RemovePedElegantly(Ped* ped) { return _i(0xAC6D445B994DF95E, ped); } // 0xac6d445b994df95e0x4ffb8c6cB323 + // Same as SetPedArmour, but ADDS 'amount' to the armor the Ped already has. + inline Void AddArmourToPed(Ped ped, int amount) { return _i(0x5BA652A0CD14DF2F, ped, amount); } // 0x5ba652a0cd14df2f0xf686b26eB323 + // Sets the armor of the specified ped. + // + // ped: The Ped to set the armor of. + // amount: A value between 0 and 100 indicating the value to set the Ped's armor to. + inline Void SetPedArmour(Ped ped, int amount) { return _i(0xCEA04D83135264CC, ped, amount); } // 0xcea04d83135264cc0x4e3a0cc4B323 + // Ped: The ped to warp. + // vehicle: The vehicle to warp the ped into. + // Seat_Index: [-1 is driver seat, -2 first free passenger seat] + // + // Moreinfo of Seat Index + // DriverSeat = -1 + // Passenger = 0 + // Left Rear = 1 + // RightRear = 2 + inline Void SetPedIntoVehicle(Ped ped, Vehicle vehicle, int seatIndex) { return _i(0xF75B0D629E1C063D, ped, vehicle, seatIndex); } // 0xf75b0d629e1c063d0x07500c79B323 + inline Void SetPedAllowVehiclesOverride(Ped ped, BOOL toggle) { return _i(0x3C028C636A414ED9, ped, toggle); } // 0x3c028c636a414ed90x58a80bd5B323 + inline BOOL CanCreateRandomPed(BOOL p0) { return _i(0x3E8349C08E4B82E4, p0); } // 0x3e8349c08e4b82e40xf9abe88fB323 + // vb.net + // Dim ped_handle As Integer + // With Game.Player.Character + // Dim pos As Vector3 = .Position + .ForwardVector * 3 + // ped_handle = Native.Function.Call(Of Integer)(Hash.CreateRandomPed, pos.X, pos.Y, pos.Z) + // End With + // + // Creates a Ped at the specified location, returns the Ped Handle. + // Ped will not act until SetPedAsNoLongerNeeded is called. + inline Ped CreateRandomPed(float posX, float posY, float posZ) { return _i(0xB4AC7D0CF06BFE8F, posX, posY, posZ); } // 0xb4ac7d0cf06bfe8f0x5a949543B323 + inline Ped CreateRandomPedAsDriver(Vehicle vehicle, BOOL returnHandle) { return _i(0x9B62392B474F44A0, vehicle, returnHandle); } // 0x9b62392b474f44a00xb927ce9aB323 + inline BOOL CanCreateRandomDriver() { return _i(0xB8EB95E5B4E56978); } // 0xb8eb95e5b4e569780x99861609B323 + inline BOOL CanCreateRandomBikeRider() { return _i(0xEACEEDA81751915C); } // 0xeaceeda81751915c0x7018be31B323 + inline Void SetPedMoveAnimsBlendOut(Ped ped) { return _i(0x9E8C908F41584ECD, ped); } // 0x9e8c908f41584ecd0x20e01957B323 + inline Void SetPedCanBeDraggedOut(Ped ped, BOOL toggle) { return _i(0xC1670E958EEE24E5, ped, toggle); } // 0xc1670e958eee24e50xaa7f1131B323 + // ntoggle was always false except in one instance (b678). + // + // The one time this is set to true seems to do with when you fail the mission. + inline Void SetPedAllowHurtCombatForAllMissionPeds(BOOL toggle) { return _i(0xF2BEBCDFAFDAA19E, toggle); } // 0xf2bebcdfafdaa19e0x6cd58238B323 + // Returns true/false if the ped is/isn't male. + inline BOOL IsPedMale(Ped ped) { return _i(0x6D9F5FAA7488BA46, ped); } // 0x6d9f5faa7488ba460x90950455B323 + // Returns true/false if the ped is/isn't humanoid. + inline BOOL IsPedHuman(Ped ped) { return _i(0xB980061DA992779D, ped); } // 0xb980061da992779d0x194bb7b0B323 + // Gets the vehicle the specified Ped is in. Returns 0 if the ped is/was not in a vehicle. + inline Vehicle GetVehiclePedIsIn(Ped ped, BOOL includeEntering) { return _i(0x9A9112A0FE9A4713, ped, includeEntering); } // 0x9a9112a0fe9a47130xafe92319B323 + // Resets the value for the last vehicle driven by the Ped. + inline Void ResetPedLastVehicle(Ped ped) { return _i(0xBB8DE8CF6A8DD8BB, ped); } // 0xbb8de8cf6a8dd8bb0x5e3b5942B323 + inline Void SetPedDensityMultiplierThisFrame(float multiplier) { return _i(0x95E3D6257B166CF2, multiplier); } // 0x95e3d6257b166cf20x039c82bbB323 + inline Void SetScenarioPedDensityMultiplierThisFrame(float p0, float p1) { return _i(0x7A556143A1C03898, p0, p1); } // 0x7a556143a1c038980x2909abf0B323 + inline Void SuppressAmbientPedAggressiveCleanupThisFrame() { return _i(0x5A7F62FDA59759BD); } // 0x5a7f62fda59759bd0xb48c0c04B323 + inline Void SetScriptedConversionCoordThisFrame(float x, float y, float z) { return _i(0x5086C7843552CF85, x, y, z); } // 0x5086c7843552cf850x25ea2aa5B323 + // The distance between these points, is the diagonal of a box (remember it's 3D). + inline Void SetPedNonCreationArea(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0xEE01041D559983EA, x1, y1, z1, x2, y2, z2); } // 0xee01041d559983ea0x7a97283fB323 + inline Void ClearPedNonCreationArea() { return _i(0x2E05208086BA0651); } // 0x2e05208086ba06510x6f7043a3B323 + inline Void InstantlyFillPedPopulation() { return _i(0x4759CC730F947C81); } // 0x4759cc730f947c810x8c555addB323 + // Same function call as PED::GetMount, aka just returns 0 + inline BOOL IsPedOnMount(Ped ped) { return _i(0x460BC76A0E10655E, ped); } // 0x460bc76a0e10655e0x43103006B323 + // + // Function just returns 0 + // Void __fastcall ped__get_mount(NativeContext *a1) + // { + // NativeContext *v1; // rbx@1 + // + // v1 = a1; + // GetAddressOfPedFromScriptHandle(a1->Args->Arg1); + // v1->Returns->Item1= 0; + // } + inline Ped GetMount(Ped ped) { return _i(0xE7E11B8DCBED1058, ped); } // 0xe7e11b8dcbed10580xdd31ec4eB323 + // Gets a value indicating whether the specified ped is on top of any vehicle. + // + // Return 1 when ped is on vehicle. + // Return 0 when ped is not on a vehicle. + // + inline BOOL IsPedOnVehicle(Ped ped) { return _i(0x67722AEB798E5FAB, ped); } // 0x67722aeb798e5fab0xa1ae7cc7B323 + inline BOOL IsPedOnSpecificVehicle(Ped ped, Vehicle vehicle) { return _i(0xEC5F66E459AF3BB2, ped, vehicle); } // 0xec5f66e459af3bb20x63cb4603B323 + // Maximum possible amount of money on MP is 2000. ~JX + // + // ----------------------------------------------------------------------------- + // + // Maximum amount that a ped can theoretically have is 65535 (0xFFFF) since the amount is stored as an unsigned short (uint16_t) value. + inline Void SetPedMoney(Ped ped, int amount) { return _i(0xA9C8960E8684C1B5, ped, amount); } // 0xa9c8960e8684c1b50x40d90bf2B323 + inline int GetPedMoney(Ped ped) { return _i(0x3F69145BBA87BAE7, ped); } // 0x3f69145bba87bae70xeb3c4c7eB323 + // Related to Peds dropping pickup_health_snack; p0 is a value between [0.0, 1.0] that corresponds to drop rate + inline Void SetHealthSnacksCarriedByAllNewPeds(float p0, Any p1) { return _i(0xFF4803BC019852D9, p0, p1); } // 0xff4803bc019852d90xd41c9aedB323 + inline Void SetAmbientPedsDropMoney(BOOL p0) { return _i(0x6B0E6172C9A4D902, p0); } // 0x6b0e6172c9a4d9020x30b98369B323 + inline Void SetBlockingOfNonTemporaryEventsForAmbientPedsThisFrame(BOOL p0) { return _i(0x9911F4A24485F653, p0); } // 0x9911f4a24485f6530x02a080c8B323 + // Ped no longer takes critical damage modifiers if set to FALSE. + // Example: Headshotting a player no longer one shots them. Instead they will take the same damage as a torso shot. + inline Void SetPedSuffersCriticalHits(Ped ped, BOOL toggle) { return _i(0xEBD76F2359F190AC, ped, toggle); } // 0xebd76f2359f190ac0x6f6fc7e6B323 + inline Void SetPedUpperBodyDamageOnly(Ped ped, BOOL toggle) { return _i(0xAFC976FD0580C7B3, ped, toggle); } // 0xafc976fd0580c7b30x1572022aB323 + // Detect if ped is sitting in the specified vehicle + // [True/False] + inline BOOL IsPedSittingInVehicle(Ped ped, Vehicle vehicle) { return _i(0xA808AA1D79230FC2, ped, vehicle); } // 0xa808aa1d79230fc20xddde26faB323 + // Detect if ped is in any vehicle + // [True/False] + inline BOOL IsPedSittingInAnyVehicle(Ped ped) { return _i(0x826AA586EDB9FEF8, ped); } // 0x826aa586edb9fef80x0ea9ca03B323 + inline BOOL IsPedOnFoot(Ped ped) { return _i(0x01FEE67DB37F59B2, ped); } // 0x01fee67db37f59b20xc60d0785B323 + inline BOOL IsPedOnAnyBike(Ped ped) { return _i(0x94495889E22C6479, ped); } // 0x94495889e22c64790x4d885b2eB323 + inline BOOL IsPedPlantingBomb(Ped ped) { return _i(0xC70B5FAE151982D8, ped); } // 0xc70b5fae151982d80x0edac574B323 + inline Vector3 GetDeadPedPickupCoords(Ped ped, float p1, float p2) { return _i(0xCD5003B097200F36, ped, p1, p2); } // 0xcd5003b097200f360x129f9dc1B323 + inline BOOL IsPedInAnyBoat(Ped ped) { return _i(0x2E0E1C2B4F6CB339, ped); } // 0x2e0e1c2b4f6cb3390x1118a947B323 + inline BOOL IsPedInAnySub(Ped ped) { return _i(0xFBFC01CCFB35D99E, ped); } // 0xfbfc01ccfb35d99e0xe65f8059B323 + inline BOOL IsPedInAnyHeli(Ped ped) { return _i(0x298B91AE825E5705, ped); } // 0x298b91ae825e57050x7ab5523bB323 + inline BOOL IsPedInAnyPlane(Ped ped) { return _i(0x5FFF4CFC74D8FB80, ped); } // 0x5fff4cfc74d8fb800x51bbce7eB323 + inline BOOL IsPedInFlyingVehicle(Ped ped) { return _i(0x9134873537FA419C, ped); } // 0x9134873537fa419c0xca072485B323 + inline Void SetPedDiesInWater(Ped ped, BOOL toggle) { return _i(0x56CEF0AC79073BDE, ped, toggle); } // 0x56cef0ac79073bde0x604c872bB323 + inline BOOL GetPedDiesInWater(Ped ped) { return _i(0x65671A4FB8218930, ped); } // 0x65671a4fb8218930B2699 + inline Void SetPedDiesInSinkingVehicle(Ped ped, BOOL toggle) { return _i(0xD718A22995E2B4BC, ped, toggle); } // 0xd718a22995e2b4bc0x8d4d9abbB323 + inline int GetPedArmour(Ped ped) { return _i(0x9483AF821605B1D8, ped); } // 0x9483af821605b1d80x2ce311a7B323 + inline Void SetPedStayInVehicleWhenJacked(Ped ped, BOOL toggle) { return _i(0xEDF4079F9D54C9A1, ped, toggle); } // 0xedf4079f9d54c9a10xb014a09cB323 + inline Void SetPedCanBeShotInVehicle(Ped ped, BOOL toggle) { return _i(0xC7EF1BA83230BA07, ped, toggle); } // 0xc7ef1ba83230ba070x5db7b3a9B323 + inline BOOL GetPedLastDamageBone(Ped ped, int* outBone) { return _i(0xD75960F6BD9EA49C, ped, outBone); } // 0xd75960f6bd9ea49c0xab933841B323 + inline Void ClearPedLastDamageBone(Ped ped) { return _i(0x8EF6B7AC68E2F01B, ped); } // 0x8ef6b7ac68e2f01b0x56cb715eB323 + inline Void SetAiWeaponDamageModifier(float value) { return _i(0x1B1E2A40A65B8521, value); } // 0x1b1e2a40a65b85210x516e30eeB323 + inline Void ResetAiWeaponDamageModifier() { return _i(0xEA16670E7BA4743C); } // 0xea16670e7ba4743c0x6e965420B323 + inline Void SetAiMeleeWeaponDamageModifier(float modifier) { return _i(0x66460DEDDD417254, modifier); } // 0x66460deddd4172540x0f9a401fB323 + inline Void ResetAiMeleeWeaponDamageModifier() { return _i(0x46E56A7CD1D63C3F); } // 0x46e56a7cd1d63c3f0x97886238B323 + inline Void SetTreatAsAmbientPedForDriverLockon(Ped ped, BOOL p1) { return _i(0x2F3C3D9F50681DE4, ped, p1); } // 0x2f3c3d9f50681de40xcc9d7f1aB323 + inline Void SetPedCanBeTargetted(Ped ped, BOOL toggle) { return _i(0x63F58F7C80513AAD, ped, toggle); } // 0x63f58f7c80513aad0x75c49f74B323 + inline Void SetPedCanBeTargettedByTeam(Ped ped, int team, BOOL toggle) { return _i(0xBF1CA77833E58F2C, ped, team, toggle); } // 0xbf1ca77833e58f2c0xb103a8e1B323 + inline Void SetPedCanBeTargettedByPlayer(Ped ped, Player player, BOOL toggle) { return _i(0x66B57B72E0836A76, ped, player, toggle); } // 0x66b57b72e0836a760xd050f490B323 + inline Void SetAllowLockonToPedIfFriendly(Ped ped, BOOL toggle) { return _i(0x061CB768363D6424, ped, toggle); } // 0x061cb768363d64240x7da12905B323 + inline Void SetUseCameraHeadingForDesiredDirectionLockOnTest(Ped ped, BOOL toggle) { return _i(0xFD325494792302D7, ped, toggle); } // 0xfd325494792302d70x7f67671dB323 + inline BOOL IsPedInAnyPoliceVehicle(Ped ped) { return _i(0x0BD04E29640C9C12, ped); } // 0x0bd04e29640c9c120x84fa790dB323 + inline Void ForcePedToOpenParachute(Ped ped) { return _i(0x16E42E800B472221, ped); } // 0x16e42e800b4722210xa819680bB323 + inline BOOL IsPedInParachuteFreeFall(Ped ped) { return _i(0x7DCE8BDA0F1C1200, ped); } // 0x7dce8bda0f1c12000xcd71f11bB323 + inline BOOL IsPedFalling(Ped ped) { return _i(0xFB92A102F1C4DFA3, ped); } // 0xfb92a102f1c4dfa30xabf77334B323 + inline BOOL IsPedJumping(Ped ped) { return _i(0xCEDABC5900A0BF97, ped); } // 0xcedabc5900a0bf970x07e5bc0eB323 + inline BOOL IsPedLanding(Any p0) { return _i(0x412F1364FA066CFB, p0); } // 0x412f1364fa066cfbB573 + inline BOOL IsPedDoingABeastJump(Any p0) { return _i(0x451D05012CCEC234, p0); } // 0x451d05012ccec234B573 + inline BOOL IsPedClimbing(Ped ped) { return _i(0x53E8CB4F48BFE623, ped); } // 0x53e8cb4f48bfe6230xbce03d35B323 + inline BOOL IsPedVaulting(Ped ped) { return _i(0x117C70D1F5730B5E, ped); } // 0x117c70d1f5730b5e0xc3169bdaB323 + inline BOOL IsPedDiving(Ped ped) { return _i(0x5527B8246FEF9B11, ped); } // 0x5527b8246fef9b110x7bc5bf3cB323 + inline BOOL IsPedJumpingOutOfVehicle(Ped ped) { return _i(0x433DDFFE2044B636, ped); } // 0x433ddffe2044b6360xb19215f6B323 + // Returns true if the ped is currently opening a door (CTaskOpenDoor). + inline BOOL IsPedOpeningDoor(Ped ped) { return _i(0x26AF0E8E30BD2A2C, ped); } // 0x26af0e8e30bd2a2cB323 + // Returns: + // + // -1: Normal + // 0: Wearing parachute on back + // 1: Parachute opening + // 2: Parachute open + // 3: Falling to doom (e.g. after exiting parachute) + // + // Normal means no parachute? + inline int GetPedParachuteState(Ped ped) { return _i(0x79CFD9827CC979B6, ped); } // 0x79cfd9827cc979b60x7d4bc475B323 + // -1: no landing + // 0: landing on both feet + // 1: stumbling + // 2: rolling + // 3: ragdoll + inline int GetPedParachuteLandingType(Ped ped) { return _i(0x8B9F1FC6AE8166C0, ped); } // 0x8b9f1fc6ae8166c00x01f3b035B323 + inline Void SetPedParachuteTintIndex(Ped ped, int tintIndex) { return _i(0x333FC8DB079B7186, ped, tintIndex); } // 0x333fc8db079b71860x5aefec3aB323 + inline Void GetPedParachuteTintIndex(Ped ped, int* outTintIndex) { return _i(0xEAF5F7E5AE7C6C9D, ped, outTintIndex); } // 0xeaf5f7e5ae7c6c9d0xe9e7fac5B323 + inline Void SetPedReserveParachuteTintIndex(Ped ped, Any p1) { return _i(0xE88DA0751C22A2AD, ped, p1); } // 0xe88da0751c22a2ad0x177efc79B323 + inline Object CreateParachuteBagObject(Ped ped, BOOL p1, BOOL p2) { return _i(0x8C4F3BF23B6237DB, ped, p1, p2); } // 0x8c4f3bf23b6237db0x19198a16B323 + // This is the SET_CHAR_DUCKING from GTA IV, that makes Peds duck. This function does nothing in GTA V. It cannot set the ped as ducking in vehicles, and IsPedDucking will always return false. + inline Void SetPedDucking(Ped ped, BOOL toggle) { return _i(0x030983CA930B692D, ped, toggle); } // 0x030983ca930b692d0xb90353d7B323 + inline BOOL IsPedDucking(Ped ped) { return _i(0xD125AE748725C6BC, ped); } // 0xd125ae748725c6bc0x9199c77dB323 + inline BOOL IsPedInAnyTaxi(Ped ped) { return _i(0x6E575D6A898AB852, ped); } // 0x6e575d6a898ab8520x16fd386cB323 + inline Void SetPedIdRange(Ped ped, float value) { return _i(0xF107E836A70DCE05, ped, value); } // 0xf107e836a70dce050xef3b4ed9B323 + inline Void SetPedHighlyPerceptive(Ped ped, BOOL toggle) { return _i(0x52D59AB61DDC05DD, ped, toggle); } // 0x52d59ab61ddc05dd0x9a2180ffB323 + inline Void SetCopPerceptionOverrides(float seeingRange, float seeingRangePeripheral, float hearingRange, float visualFieldMinAzimuthAngle, float visualFieldMaxAzimuthAngle, float fieldOfGazeMaxAngle, float p6) { return _i(0x2F074C904D85129E, seeingRange, seeingRangePeripheral, hearingRange, visualFieldMinAzimuthAngle, visualFieldMaxAzimuthAngle, fieldOfGazeMaxAngle, p6); } // 0x2f074c904d85129eB393 + inline Void SetPedInjuredOnGroundBehaviour(Ped ped, float p1) { return _i(0xEC4B4B3B9908052A, ped, p1); } // 0xec4b4b3b9908052a0xf30658d2B323 + inline Void DisablePedInjuredOnGroundBehaviour(Ped ped) { return _i(0x733C87D4CE22BEA2, ped); } // 0x733c87d4ce22bea20x43709044B323 + inline Void SetPedSeeingRange(Ped ped, float value) { return _i(0xF29CF591C4BF6CEE, ped, value); } // 0xf29cf591c4bf6cee0x4bd72fe8B323 + inline Void SetPedHearingRange(Ped ped, float value) { return _i(0x33A8F7F7D5F7F33C, ped, value); } // 0x33a8f7f7d5f7f33c0xb32087e0B323 + inline Void SetPedVisualFieldMinAngle(Ped ped, float value) { return _i(0x2DB492222FB21E26, ped, value); } // 0x2db492222fb21e260x72e2e18bB323 + inline Void SetPedVisualFieldMaxAngle(Ped ped, float value) { return _i(0x70793BDCA1E854D4, ped, value); } // 0x70793bdca1e854d40x0cea0f9aB323 + // This native refers to the field of vision the ped has below them, starting at 0 degrees. The angle value should be negative. + // -90f should let the ped see 90 degrees below them, for example. + inline Void SetPedVisualFieldMinElevationAngle(Ped ped, float angle) { return _i(0x7A276EB2C224D70F, ped, angle); } // 0x7a276eb2c224d70f0x5cc2f1b8B323 + // This native refers to the field of vision the ped has above them, starting at 0 degrees. 90f would let the ped see enemies directly above of them. + inline Void SetPedVisualFieldMaxElevationAngle(Ped ped, float angle) { return _i(0x78D0B67629D75856, ped, angle); } // 0x78d0b67629d758560x39d9102fB323 + inline Void SetPedVisualFieldPeripheralRange(Ped ped, float range) { return _i(0x9C74B0BC831B753A, ped, range); } // 0x9c74b0bc831b753a0xfdf2f7c2B323 + inline Void SetPedVisualFieldCenterAngle(Ped ped, float angle) { return _i(0x3B6405E8AB34A907, ped, angle); } // 0x3b6405e8ab34a9070xe57202a1B323 + inline float GetPedVisualFieldCenterAngle(Ped ped) { return _i(0xEF2C71A32CAD5FBD, ped); } // 0xef2c71a32cad5fbdB1493 + // p1 is usually 0 in the scripts. action is either 0 or a pointer to "DEFAULT_ACTION". + inline Void SetPedStealthMovement(Ped ped, BOOL p1, String action) { return _i(0x88CBB5CEB96B7BD2, ped, p1, action); } // 0x88cbb5ceb96b7bd20x67e28e1dB323 + // Returns whether the entity is in stealth mode + inline BOOL GetPedStealthMovement(Ped ped) { return _i(0x7C2AC9CA66575FBF, ped); } // 0x7c2ac9ca66575fbf0x40321b83B323 + // Creates a new ped group. + // Groups can contain up to 8 peds. + // + // The parameter is unused. + // + // Returns a handle to the created group, or 0 if a group couldn't be created. + inline int CreateGroup(int unused) { return _i(0x90370EBE0FEE1A3D, unused); } // 0x90370ebe0fee1a3d0x8dc0368dB323 + inline Void SetPedAsGroupLeader(Ped ped, int groupId) { return _i(0x2A7819605465FBCE, ped, groupId); } // 0x2a7819605465fbce0x7265bea2B323 + inline Void SetPedAsGroupMember(Ped ped, int groupId) { return _i(0x9F3480FE65DB31B5, ped, groupId); } // 0x9f3480fe65db31b50x0ee13f92B323 + // This only will teleport the ped to the group leader if the group leader teleports (sets coords). + // + // Only works in singleplayer + inline Void SetPedCanTeleportToGroupLeader(Ped pedHandle, int groupHandle, BOOL toggle) { return _i(0x2E2F4240B3F24647, pedHandle, groupHandle, toggle); } // 0x2e2f4240b3f246470xd0d8bdbcB323 + inline Void RemoveGroup(int groupId) { return _i(0x8EB2F69076AF7053, groupId); } // 0x8eb2f69076af70530x48d72b88B323 + inline Void RemovePedFromGroup(Ped ped) { return _i(0xED74007FFB146BC2, ped); } // 0xed74007ffb146bc20x82697713B323 + inline BOOL IsPedGroupMember(Ped ped, int groupId) { return _i(0x9BB01E3834671191, ped, groupId); } // 0x9bb01e38346711910x876d5363B323 + inline BOOL IsPedHangingOnToVehicle(Ped ped) { return _i(0x1C86D8AEF8254B78, ped); } // 0x1c86d8aef8254b780x9678d4ffB323 + // Sets the range at which members will automatically leave the group. + inline Void SetGroupSeparationRange(int groupHandle, float separationRange) { return _i(0x4102C7858CFEE4E4, groupHandle, separationRange); } // 0x4102c7858cfee4e40x7b820cd5B323 + // Ped will stay on the ground after being stunned for at lest ms time. (in milliseconds) + inline Void SetPedMinGroundTimeForStungun(Ped ped, int ms) { return _i(0xFA0675AB151073FA, ped, ms); } // 0xfa0675ab151073fa0x2f0d0973B323 + inline BOOL IsPedProne(Ped ped) { return _i(0xD6A86331A537A7B9, ped); } // 0xd6a86331a537a7b90x02c2a6c3B323 + // Checks to see if ped and target are in combat with eachother. Only goes one-way: if target is engaged in combat with ped but ped has not yet reacted, the function will return false until ped starts fighting back. + // + // p1 is usually 0 in the scripts because it gets the ped id during the task sequence. For instance: PED::IsPedInCombat(l_42E[4/*14*/], PLAYER::PlayerPedId()) // armenian2.ct4: 43794 + inline BOOL IsPedInCombat(Ped ped, Ped target) { return _i(0x4859F1FC66A6278E, ped, target); } // 0x4859f1fc66a6278e0xfe027cb5B323 + inline Entity GetPedTargetFromCombatPed(Ped ped, Any p1) { return _i(0x32C27A11307B01CC, ped, p1); } // 0x32c27a11307b01ccB2372 + inline BOOL CanPedInCombatSeeTarget(Ped ped, Ped target) { return _i(0xEAD42DE3610D0721, ped, target); } // 0xead42de3610d07210xccd525e1B323 + inline BOOL IsPedDoingDriveby(Ped ped) { return _i(0xB2C086CC1BF8F2BF, ped); } // 0xb2c086cc1bf8f2bf0xac3ceb9cB323 + inline BOOL IsPedJacking(Ped ped) { return _i(0x4AE4FF911DFB61DA, ped); } // 0x4ae4ff911dfb61da0x3b321816B323 + inline BOOL IsPedBeingJacked(Ped ped) { return _i(0x9A497FE2DF198913, ped); } // 0x9a497fe2df1989130xd45d605cB323 + // p1 is always 0 + inline BOOL IsPedBeingStunned(Ped ped, int p1) { return _i(0x4FBACCE3B4138EE8, ped, p1); } // 0x4fbacce3b4138ee80x0a66ce30B323 + inline Ped GetPedsJacker(Ped ped) { return _i(0x9B128DC36C1E04CF, ped); } // 0x9b128dc36c1e04cf0xde1dbb59B323 + inline Ped GetJackTarget(Ped ped) { return _i(0x5486A79D9FBD342D, ped); } // 0x5486a79d9fbd342d0x1d196361B323 + inline BOOL IsPedFleeing(Ped ped) { return _i(0xBBCCE00B381F8482, ped); } // 0xbbcce00b381f84820x85d813c6B323 + // p1 is nearly always 0 in the scripts. + inline BOOL IsPedInCover(Ped ped, BOOL exceptUseWeapon) { return _i(0x60DFD0691A170B88, ped, exceptUseWeapon); } // 0x60dfd0691a170b880x972c5a8bB323 + inline BOOL IsPedInCoverFacingLeft(Ped ped) { return _i(0x845333B3150583AB, ped); } // 0x845333b3150583ab0xb89dbb80B323 + inline BOOL IsPedInHighCover(Ped ped) { return _i(0x6A03BF943D767C93, ped); } // 0x6a03bf943d767c930xdd5d08a7B323 + inline BOOL IsPedGoingIntoCover(Ped ped) { return _i(0x9F65DBC537E59AD5, ped); } // 0x9f65dbc537e59ad50xa3589628B323 + // i could be time. Only example in the decompiled scripts uses it as -1. + inline BOOL SetPedPinnedDown(Ped ped, BOOL pinned, int i) { return _i(0xAAD6D1ACF08F4612, ped, pinned, i); } // 0xaad6d1acf08f46120xcc78999dB323 + inline BOOL HasPedClearLosToEntity(Ped ped, Entity entity, float x, float y, float z, int p5, BOOL p6, BOOL p7) { return _i(0xA32ABFEB2A03B306, ped, entity, x, y, z, p5, p6, p7); } // 0xa32abfeb2a03b306B3095 + inline int GetSeatPedIsTryingToEnter(Ped ped) { return _i(0x6F4C85ACD641BCD2, ped); } // 0x6f4c85acd641bcd20xacf162e0B323 + inline Vehicle GetVehiclePedIsTryingToEnter(Ped ped) { return _i(0x814FA8BE5449445D, ped); } // 0x814fa8be5449445d0x99968b37B323 + // Returns the Entity (Ped, Vehicle, or ?Object?) that killed the 'ped' + // + // Is best to check if the Ped is dead before asking for its killer. + inline Entity GetPedSourceOfDeath(Ped ped) { return _i(0x93C8B64DEB84728C, ped); } // 0x93c8b64deb84728c0x84adf9ebB323 + // Returns the hash of the weapon/model/object that killed the ped. + inline Hash GetPedCauseOfDeath(Ped ped) { return _i(0x16FFE42AB2D2DC59, ped); } // 0x16ffe42ab2d2dc590x63458c27B323 + inline int GetPedTimeOfDeath(Ped ped) { return _i(0x1E98817B311AE98A, ped); } // 0x1e98817b311ae98a0xdf6d5d54B323 + inline int CountPedsInCombatWithTarget(Ped ped) { return _i(0x5407B7288D0478B7, ped); } // 0x5407b7288d0478b70xef0b78e6B323 + inline int CountPedsInCombatWithTargetWithinRadius(Ped ped, float x, float y, float z, float radius) { return _i(0x336B3D200AB007CB, ped, x, y, z, radius); } // 0x336b3d200ab007cb0xfb18cb19B323 + inline Void SetPedRelationshipGroupDefaultHash(Ped ped, Hash hash) { return _i(0xADB3F206518799E8, ped, hash); } // 0xadb3f206518799e80x423b7ba2B323 + inline Void SetPedRelationshipGroupHash(Ped ped, Hash hash) { return _i(0xC80A74AC829DDD92, ped, hash); } // 0xc80a74ac829ddd920x79f8c18cB323 + // Sets the relationship between two groups. This should be called twice (once for each group). + // + // Relationship types: + // 0 = Companion + // 1 = Respect + // 2 = Like + // 3 = Neutral + // 4 = Dislike + // 5 = Hate + // 255 = Pedestrians + // + // Example: + // PED::SetRelationshipBetweenGroups(2, l_1017, 0xA49E591C); + // PED::SetRelationshipBetweenGroups(2, 0xA49E591C, l_1017); + inline Void SetRelationshipBetweenGroups(int relationship, Hash group1, Hash group2) { return _i(0xBF25EB89375A37AD, relationship, group1, group2); } // 0xbf25eb89375a37ad0xd4a215baB323 + // Clears the relationship between two groups. This should be called twice (once for each group). + // + // Relationship types: + // 0 = Companion + // 1 = Respect + // 2 = Like + // 3 = Neutral + // 4 = Dislike + // 5 = Hate + // 255 = Pedestrians + // (Credits: Inco) + // + // Example: + // PED::ClearRelationshipBetweenGroups(2, l_1017, 0xA49E591C); + // PED::ClearRelationshipBetweenGroups(2, 0xA49E591C, l_1017); + inline Void ClearRelationshipBetweenGroups(int relationship, Hash group1, Hash group2) { return _i(0x5E29243FB56FC6D4, relationship, group1, group2); } // 0x5e29243fb56fc6d40x994b8c2dB323 + // Can't select Void. This function returns nothing. The hash of the created relationship group is output in the second parameter. + inline BOOL AddRelationshipGroup(String name, Hash* groupHash) { return _i(0xF372BC22FCB88606, name, groupHash); } // 0xf372bc22fcb886060x8b635546B323 + inline Void RemoveRelationshipGroup(Hash groupHash) { return _i(0xB6BA2444AB393DA2, groupHash); } // 0xb6ba2444ab393da20x4a1dc59aB323 + inline BOOL DoesRelationshipGroupExist(Hash groupHash) { return _i(0xCC6E3B6BB69501F1, groupHash); } // 0xcc6e3b6bb69501f1B505 + // Gets the relationship between two peds. This should be called twice (once for each ped). + // + // Relationship types: + // 0 = Companion + // 1 = Respect + // 2 = Like + // 3 = Neutral + // 4 = Dislike + // 5 = Hate + // 255 = Pedestrians + // (Credits: Inco) + // + // Example: + // PED::GetRelationshipBetweenPeds(2, l_1017, 0xA49E591C); + // PED::GetRelationshipBetweenPeds(2, 0xA49E591C, l_1017); + inline int GetRelationshipBetweenPeds(Ped ped1, Ped ped2) { return _i(0xEBA5AD3A0EAF7121, ped1, ped2); } // 0xeba5ad3a0eaf71210xe254c39cB323 + inline Hash GetPedRelationshipGroupDefaultHash(Ped ped) { return _i(0x42FDD0F017B1E38E, ped); } // 0x42fdd0f017b1e38e0x714bd6e4B323 + inline Hash GetPedRelationshipGroupHash(Ped ped) { return _i(0x7DBDD04862D95F04, ped); } // 0x7dbdd04862d95f040x354f283cB323 + // Gets the relationship between two groups. This should be called twice (once for each group). + // + // Relationship types: + // 0 = Companion + // 1 = Respect + // 2 = Like + // 3 = Neutral + // 4 = Dislike + // 5 = Hate + // 255 = Pedestrians + // + // Example: + // PED::GetRelationshipBetweenGroups(l_1017, 0xA49E591C); + // PED::GetRelationshipBetweenGroups(0xA49E591C, l_1017); + inline int GetRelationshipBetweenGroups(Hash group1, Hash group2) { return _i(0x9E6B70061662AE5C, group1, group2); } // 0x9e6b70061662ae5c0x4e372fe2B323 + inline Void SetRelationshipGroupAffectsWantedLevel(Hash group, BOOL p1) { return _i(0x5615E0C5EB2BC6E2, group, p1); } // 0x5615e0c5eb2bc6e2B877 + inline Void TellGroupPedsInAreaToAttack(Ped ped, Any p1, float p2, Hash hash, Any p4, Any p5) { return _i(0xAD27D957598E49E9, ped, p1, p2, hash, p4, p5); } // 0xad27d957598e49e9B1290 + inline Void SetPedCanBeTargetedWithoutLos(Ped ped, BOOL toggle) { return _i(0x4328652AE5769C71, ped, toggle); } // 0x4328652ae5769c710x7fddc0a6B323 + inline Void SetPedToInformRespectedFriends(Ped ped, float radius, int maxFriends) { return _i(0x112942C6E708F70B, ped, radius, maxFriends); } // 0x112942c6e708f70b0xd78ac46cB323 + inline BOOL IsPedRespondingToEvent(Ped ped, Any event) { return _i(0x625B774D75C87068, ped, event); } // 0x625b774d75c870680x7a877554B323 + inline BOOL GetPosFromFiredEvent(Ped ped, int eventType, Any* outData) { return _i(0xBA656A3BB01BDEA3, ped, eventType, outData); } // 0xba656a3bb01bdea3B2189 + // FIRING_PATTERN_BURST_FIRE = 0xD6FF6D61 ( 1073727030 ) + // FIRING_PATTERN_BURST_FIRE_IN_COVER = 0x026321F1 ( 40051185 ) + // FIRING_PATTERN_BURST_FIRE_DRIVEBY = 0xD31265F2 ( -753768974 ) + // FIRING_PATTERN_FROM_GROUND = 0x2264E5D6 ( 577037782 ) + // FIRING_PATTERN_DELAY_FIRE_BY_ONE_SEC = 0x7A845691 ( 2055493265 ) + // FIRING_PATTERN_FULL_AUTO = 0xC6EE6B4C ( -957453492 ) + // FIRING_PATTERN_SINGLE_SHOT = 0x5D60E4E0 ( 1566631136 ) + // FIRING_PATTERN_BURST_FIRE_PISTOL = 0xA018DB8A ( -1608983670 ) + // FIRING_PATTERN_BURST_FIRE_SMG = 0xD10DADEE ( 1863348768 ) + // FIRING_PATTERN_BURST_FIRE_RIFLE = 0x9C74B406 ( -1670073338 ) + // FIRING_PATTERN_BURST_FIRE_MG = 0xB573C5B4 ( -1250703948 ) + // FIRING_PATTERN_BURST_FIRE_PUMPSHOTGUN = 0x00BAC39B ( 12239771 ) + // FIRING_PATTERN_BURST_FIRE_HELI = 0x914E786F ( -1857128337 ) + // FIRING_PATTERN_BURST_FIRE_MICRO = 0x42EF03FD ( 1122960381 ) + // FIRING_PATTERN_SHORT_BURSTS = 0x1A92D7DF ( 445831135 ) + // FIRING_PATTERN_SLOW_FIRE_TANK = 0xE2CA3A71 ( -490063247 ) + // + // Firing pattern info: https://pastebin.com/Px036isB + inline Void SetPedFiringPattern(Ped ped, Hash patternHash) { return _i(0x9AC577F5A12AD8A9, ped, patternHash); } // 0x9ac577f5a12ad8a90xb4629d66B323 + // shootRate 0-1000 + inline Void SetPedShootRate(Ped ped, int shootRate) { return _i(0x614DA022990752DC, ped, shootRate); } // 0x614da022990752dc0xfb301746B323 + // combatType can be between 0-14. See GetCombatFloat below for a list of possible parameters. + inline Void SetCombatFloat(Ped ped, int combatType, float p2) { return _i(0xFF41B4B141ED981C, ped, combatType, p2); } // 0xff41b4b141ed981c0xd8b7637cB323 + // p0: Ped Handle + // p1: int i | 0 <= i <= 27 + // + // p1 probably refers to the attributes configured in combatbehavior.meta. There are 13. Example: + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // -------------Confirmed by editing combatbehavior.meta: + // p1: + // 0=BlindFireChance + // 1=BurstDurationInCover + // 3=TimeBetweenBurstsInCover + // 4=TimeBetweenPeeks + // 5=StrafeWhenMovingChance + // 8=WalkWhenStrafingChance + // 11=AttackWindowDistanceForCover + // 12=TimeToInvalidateInjuredTarget + // 16=OptimalCoverDistance + // + inline float GetCombatFloat(Ped ped, int p1) { return _i(0x52DFF8A10508090A, ped, p1); } // 0x52dff8a10508090a0x511d7ef8B323 + // p1 may be a BOOL representing whether or not the group even exists + inline Void GetGroupSize(int groupID, Any* p1, int* sizeInMembers) { return _i(0x8DE69FE35CA09A45, groupID, p1, sizeInMembers); } // 0x8de69fe35ca09a450xf7e1a691B323 + inline BOOL DoesGroupExist(int groupId) { return _i(0x7C6B0C22F9F40BBE, groupId); } // 0x7c6b0c22f9f40bbe0x935c978dB323 + // Returns the group id of which the specified ped is a member of. + inline int GetPedGroupIndex(Ped ped) { return _i(0xF162E133B4E7A675, ped); } // 0xf162e133b4e7a6750x134e0785B323 + inline BOOL IsPedInGroup(Ped ped) { return _i(0x5891CAC5D4ACFF74, ped); } // 0x5891cac5d4acff740x836d9795B323 + inline Player GetPlayerPedIsFollowing(Ped ped) { return _i(0x6A3975DEA89F9A17, ped); } // 0x6a3975dea89f9a170xde7442eeB323 + // 0: Default + // 1: Circle Around Leader + // 2: Alternative Circle Around Leader + // 3: Line, with Leader at center + inline Void SetGroupFormation(int groupId, int formationType) { return _i(0xCE2F5FC3AF7E8C1E, groupId, formationType); } // 0xce2f5fc3af7e8c1e0x08fac739B323 + inline Void SetGroupFormationSpacing(int groupId, float x, float y, float z) { return _i(0x1D9D45004C28C916, groupId, x, y, z); } // 0x1d9d45004c28c9160xb1e086ffB323 + inline Void ResetGroupFormationDefaultSpacing(int groupHandle) { return _i(0x63DAB4CCB3273205, groupHandle); } // 0x63dab4ccb32732050x267fceadB323 + // Gets ID of vehicle player using. It means it can get ID at any interaction with vehicle. Enter\exit for example. And that means it is faster than GetVehiclePedIsIn but less safe. + inline Vehicle GetVehiclePedIsUsing(Ped ped) { return _i(0x6094AD011A2EA87D, ped); } // 0x6094ad011a2ea87d0x6de3aadaB323 + inline Vehicle GetVehiclePedIsEntering(Ped ped) { return _i(0xF92691AED837A5FC, ped); } // 0xf92691aed837a5fc0x56e0c163B323 + // enable or disable the gravity of a ped + // + // Examples: + // PED::SetPedGravity(PLAYER::PlayerPedId(), 0x00000001); + // PED::SetPedGravity(Local_289[iVar0 /*20*/], 0x00000001); + inline Void SetPedGravity(Ped ped, BOOL toggle) { return _i(0x9FF447B6B6AD960A, ped, toggle); } // 0x9ff447b6b6ad960a0x3ca16652B323 + // damages a ped with the given amount + inline Void ApplyDamageToPed(Ped ped, int damageAmount, BOOL p2, Any p3, Hash weaponType) { return _i(0x697157CED63F18D4, ped, damageAmount, p2, p3, weaponType); } // 0x697157ced63f18d40x4dc27fcfB323 + inline int GetTimePedDamagedByWeapon(Ped ped, Hash weaponHash) { return _i(0x36B77BB84687C318, ped, weaponHash); } // 0x36b77bb84687c3180x0170c6e1B323 + inline Void SetPedAllowedToDuck(Ped ped, BOOL toggle) { return _i(0xDA1F1B7BE1A8766F, ped, toggle); } // 0xda1f1b7be1a8766f0xc4d122f8B323 + inline Void SetPedNeverLeavesGroup(Ped ped, BOOL toggle) { return _i(0x3DBFC55D5C9BB447, ped, toggle); } // 0x3dbfc55d5c9bb4470x0e038813B323 + // https://alloc8or.re/gta5/doc/enums/ePedType.txt + inline int GetPedType(Ped ped) { return _i(0xFF059E1E4C01E63C, ped); } // 0xff059e1e4c01e63c0xb1460d43B323 + // Turns the desired ped into a cop. If you use this on the player ped, you will become almost invisible to cops dispatched for you. You will also report your own crimes, get a generic cop voice, get a cop-vision-cone on the radar, and you will be unable to shoot at other cops. SWAT and Army will still shoot at you. Toggling ped as "false" has no effect; you must change p0's ped model to disable the effect. + inline Void SetPedAsCop(Ped ped, BOOL toggle) { return _i(0xBB03C38DD3FB7FFD, ped, toggle); } // 0xbb03c38dd3fb7ffd0x84e7de9fB323 + inline Void SetPedHealthPendingLastDamageEventOverrideFlag(BOOL toggle) { return _i(0xB3352E018D6F89DF, toggle); } // 0xb3352e018d6f89dfB2699 + // Sets the maximum health of a ped. + inline Void SetPedMaxHealth(Ped ped, int value) { return _i(0xF5F6378C4F3419D3, ped, value); } // 0xf5f6378c4f3419d30x5533f60bB323 + inline int GetPedMaxHealth(Ped ped) { return _i(0x4700A416E8324EF3, ped); } // 0x4700a416e8324ef30xa45b6c8dB323 + inline Void SetPedMaxTimeInWater(Ped ped, float value) { return _i(0x43C851690662113D, ped, value); } // 0x43c851690662113d0xfe0a106bB323 + inline Void SetPedMaxTimeUnderwater(Ped ped, float value) { return _i(0x6BA428C528D9E522, ped, value); } // 0x6ba428c528d9e5220x082ef240B323 + inline Void SetCorpseRagdollFriction(Ped ped, float p1) { return _i(0x2735233A786B1BEF, ped, p1); } // 0x2735233a786b1bef0x373cc405B323 + // seatIndex must be <= 2 + inline Void SetPedVehicleForcedSeatUsage(Ped ped, Vehicle vehicle, int seatIndex, int flags, Any p4) { return _i(0x952F06BEECD775CC, ped, vehicle, seatIndex, flags, p4); } // 0x952f06beecd775cc0x79ca237bB323 + inline Void ClearAllPedVehicleForcedSeatUsage(Ped ped) { return _i(0xE6CA85E7259CE16B, ped); } // 0xe6ca85e7259ce16b0xcc1d8f66B323 + // This native does absolutely nothing, just a nullsub + inline Void SetPedCanBeKnockedOffBike(Any p0, Any p1) { return _i(0xB282749D5E028163, p0, p1); } // 0xb282749d5e028163B877 + // state: https://alloc8or.re/gta5/doc/enums/eKnockOffVehicle.txt + inline Void SetPedCanBeKnockedOffVehicle(Ped ped, int state) { return _i(0x7A6535691B477C48, ped, state); } // 0x7a6535691b477c480x8a251612B323 + inline BOOL CanKnockPedOffVehicle(Ped ped) { return _i(0x51AC07A44D4F5B8A, ped); } // 0x51ac07a44d4f5b8a0xc9d098b3B323 + inline Void KnockPedOffVehicle(Ped ped) { return _i(0x45BBCBA77C29A841, ped); } // 0x45bbcba77c29a8410xacdd0674B323 + inline Void SetPedCoordsNoGang(Ped ped, float posX, float posY, float posZ) { return _i(0x87052FE446E07247, ped, posX, posY, posZ); } // 0x87052fe446e072470x9561ad98B323 + // from fm_mission_controller.c4 (variable names changed for clarity): + // + // int groupID = PLAYER::GetPlayerGroup(PLAYER::PlayerId()); + // PED::GetGroupSize(group, &unused, &groupSize); + // if (groupSize >= 1) { + // . . . . for (int memberNumber = 0; memberNumber < groupSize; memberNumber++) { + // . . . . . . . . Ped ped1 = PED::GetPedAsGroupMember(groupID, memberNumber); + // . . . . . . . . //and so on + inline Ped GetPedAsGroupMember(int groupID, int memberNumber) { return _i(0x51455483CF23ED97, groupID, memberNumber); } // 0x51455483cf23ed970x9aa3cc8cB323 + inline Ped GetPedAsGroupLeader(int groupID) { return _i(0x5CCE68DBD5FE93EC, groupID); } // 0x5cce68dbd5fe93ec0x52873c6aB323 + inline Void SetPedKeepTask(Ped ped, BOOL toggle) { return _i(0x971D38760FBC02EF, ped, toggle); } // 0x971d38760fbc02ef0xa7ec79ceB323 + inline Void SetPedAllowMinorReactionsAsMissionPed(Ped ped, BOOL toggle) { return _i(0x49E50BDB8BA4DAB2, ped, toggle); } // 0x49e50bdb8ba4dab20x397f06e3B323 + inline BOOL IsPedSwimming(Ped ped) { return _i(0x9DE327631295B4C2, ped); } // 0x9de327631295b4c20x7ab43db8B323 + inline BOOL IsPedSwimmingUnderWater(Ped ped) { return _i(0xC024869A53992F34, ped); } // 0xc024869a53992f340x0e8d524fB323 + // teleports ped to coords along with the vehicle ped is in + inline Void SetPedCoordsKeepVehicle(Ped ped, float posX, float posY, float posZ) { return _i(0x9AFEFF481A85AB2E, ped, posX, posY, posZ); } // 0x9afeff481a85ab2e0xd66ae1d3B323 + inline Void SetPedDiesInVehicle(Ped ped, BOOL toggle) { return _i(0x2A30922C90C9B42C, ped, toggle); } // 0x2a30922c90c9b42c0x6fe1e440B323 + inline Void SetCreateRandomCops(BOOL toggle) { return _i(0x102E68B2024D536D, toggle); } // 0x102e68b2024d536d0x23441648B323 + inline Void SetCreateRandomCopsNotOnScenarios(BOOL toggle) { return _i(0x8A4986851C4EF6E7, toggle); } // 0x8a4986851c4ef6e70x82e548ccB323 + inline Void SetCreateRandomCopsOnScenarios(BOOL toggle) { return _i(0x444CB7D7DBE6973D, toggle); } // 0x444cb7d7dbe6973d0xedc31475B323 + inline BOOL CanCreateRandomCops() { return _i(0x5EE2CAFF7F17770D); } // 0x5ee2caff7f17770d0xaa73dad9B323 + inline Void SetPedAsEnemy(Ped ped, BOOL toggle) { return _i(0x02A0C9720B854BFA, ped, toggle); } // 0x02a0c9720b854bfa0xae620a1bB323 + inline Void SetPedCanSmashGlass(Ped ped, BOOL p1, BOOL p2) { return _i(0x1CCE141467FF42A2, ped, p1, p2); } // 0x1cce141467ff42a20x149c60a8B323 + inline BOOL IsPedInAnyTrain(Ped ped) { return _i(0x6F972C1AB75A1ED0, ped); } // 0x6f972c1ab75a1ed00x759ef63aB323 + inline BOOL IsPedGettingIntoAVehicle(Ped ped) { return _i(0xBB062B2B5722478E, ped); } // 0xbb062b2b5722478e0x90e805acB323 + inline BOOL IsPedTryingToEnterALockedVehicle(Ped ped) { return _i(0x44D28D5DDFE5F68C, ped); } // 0x44d28d5ddfe5f68c0x46828b4eB323 + // ped can not pull out a weapon when true + inline Void SetEnableHandcuffs(Ped ped, BOOL toggle) { return _i(0xDF1AF8B5D56542FA, ped, toggle); } // 0xdf1af8b5d56542fa0xac9bba23B323 + // Used with SetEnableHandcuffs in decompiled scripts. From my observations, I have noticed that while being ragdolled you are not able to get up but you can still run. Your legs can also bend. + inline Void SetEnableBoundAnkles(Ped ped, BOOL toggle) { return _i(0xC52E0F855C58FC2E, ped, toggle); } // 0xc52e0f855c58fc2e0x9208d689B323 + // Enables diving motion when underwater. + inline Void SetEnableScuba(Ped ped, BOOL toggle) { return _i(0xF99F62004024D506, ped, toggle); } // 0xf99f62004024d5060x7bf61471B323 + // Setting ped to true allows the ped to shoot "friendlies". + // + // p2 set to true when toggle is also true seams to make peds permanently unable to aim at, even if you set p2 back to false. + // + // p1 = false & p2 = false for unable to aim at. + // p1 = true & p2 = false for able to aim at. + inline Void SetCanAttackFriendly(Ped ped, BOOL toggle, BOOL p2) { return _i(0xB3B1CB349FF9C75D, ped, toggle, p2); } // 0xb3b1cb349ff9c75d0x47c60963B323 + // Returns the ped's alertness (0-3). + // + // Values : + // + // 0 : Neutral + // 1 : Heard something (gun shot, hit, etc) + // 2 : Knows (the origin of the event) + // 3 : Fully alerted (is facing the event?) + // + // If the Ped does not exist, returns -1. + inline int GetPedAlertness(Ped ped) { return _i(0xF6AA118530443FD2, ped); } // 0xf6aa118530443fd20xf83e4dafB323 + // value ranges from 0 to 3. + inline Void SetPedAlertness(Ped ped, int value) { return _i(0xDBA71115ED9941A6, ped, value); } // 0xdba71115ed9941a60x2c32d9aeB323 + inline Void SetPedGetOutUpsideDownVehicle(Ped ped, BOOL toggle) { return _i(0xBC0ED94165A48BC2, ped, toggle); } // 0xbc0ed94165a48bc20x89ad49ffB323 + // transitionSpeed is the time in seconds it takes to transition from one movement clipset to another. ransitionSpeed is usually 1.0f + // + // List of movement clipsets: + // Thanks to elsewhat for list. + // + // "ANIM_GROUP_MOVE_BALLISTIC" + // "ANIM_GROUP_MOVE_LEMAR_ALLEY" + // "clipset@move@trash_fast_turn" + // "FEMALE_FAST_RUNNER" + // "missfbi4prepp1_garbageman" + // "move_characters@franklin@fire" + // "move_characters@Jimmy@slow@" + // "move_characters@michael@fire" + // "move_f@flee@a" + // "move_f@scared" + // "move_f@sexy@a" + // "move_heist_lester" + // "move_injured_generic" + // "move_lester_CaneUp" + // "move_m@bag" + // "MOVE_M@BAIL_BOND_NOT_TAZERED" + // "MOVE_M@BAIL_BOND_TAZERED" + // "move_m@brave" + // "move_m@casual@d" + // "move_m@drunk@moderatedrunk" + // "MOVE_M@DRUNK@MODERATEDRUNK" + // "MOVE_M@DRUNK@MODERATEDRUNK_HEAD_UP" + // "MOVE_M@DRUNK@SLIGHTLYDRUNK" + // "MOVE_M@DRUNK@VERYDRUNK" + // "move_m@fire" + // "move_m@gangster@var_e" + // "move_m@gangster@var_f" + // "move_m@gangster@var_i" + // "move_m@JOG@" + // "MOVE_M@PRISON_GAURD" + // "MOVE_P_M_ONE" + // "MOVE_P_M_ONE_BRIEFCASE" + // "move_p_m_zero_janitor" + // "move_p_m_zero_slow" + // "move_ped_bucket" + // "move_ped_crouched" + // "move_ped_mop" + // "MOVE_M@FEMME@" + // "MOVE_F@FEMME@" + // "MOVE_M@GANGSTER@NG" + // "MOVE_F@GANGSTER@NG" + // "MOVE_M@POSH@" + // "MOVE_F@POSH@" + // "MOVE_M@TOUGH_GUY@" + // "MOVE_F@TOUGH_GUY@" + // + // ~ NotCrunchyTaco + // + // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json + inline Void SetPedMovementClipset(Ped ped, String clipSet, float transitionSpeed) { return _i(0xAF8A94EDE7712BEF, ped, clipSet, transitionSpeed); } // 0xaf8a94ede7712bef0xa817cdebB323 + // If p1 is 0.0, I believe you are back to normal. + // If p1 is 1.0, it looks like you can only rotate the ped, not walk. + // + // Using the following code to reset back to normal + // PED::ResetPedMovementClipset(PLAYER::PlayerPedId(), 0.0); + inline Void ResetPedMovementClipset(Ped ped, float p1) { return _i(0xAA74EC0CB0AAEA2C, ped, p1); } // 0xaa74ec0cb0aaea2c0xb83cee93B323 + // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json + inline Void SetPedStrafeClipset(Ped ped, String clipSet) { return _i(0x29A28F3F8CF6D854, ped, clipSet); } // 0x29a28f3f8cf6d8540x0bacf010B323 + inline Void ResetPedStrafeClipset(Ped ped) { return _i(0x20510814175EA477, ped); } // 0x20510814175ea4770xf1967a12B323 + inline Void SetPedWeaponMovementClipset(Ped ped, String clipSet) { return _i(0x2622E35B77D3ACA2, ped, clipSet); } // 0x2622e35b77d3aca20xf8be54dcB323 + inline Void ResetPedWeaponMovementClipset(Ped ped) { return _i(0x97B0DB5B4AA74E77, ped); } // 0x97b0db5b4aa74e770xc60c9acdB323 + inline Void SetPedDriveByClipsetOverride(Ped ped, String clipset) { return _i(0xED34AB6C5CB36520, ped, clipset); } // 0xed34ab6c5cb365200xd4c73595B323 + inline Void ClearPedDriveByClipsetOverride(Ped ped) { return _i(0x4AFE3690D7E0B5AC, ped); } // 0x4afe3690d7e0b5ac0xaec9163bB323 + // Found in the b617d scripts: + // PED::SetPedMotionInCoverClipsetOverride(v_7, "trevor_heist_cover_2h"); + inline Void SetPedMotionInCoverClipsetOverride(Ped ped, String p1) { return _i(0x9DBA107B4937F809, ped, p1); } // 0x9dba107b4937f809B323 + inline Void ClearPedMotionInCoverClipsetOverride(Ped ped) { return _i(0xC79196DCB36F6121, ped); } // 0xc79196dcb36f6121B323 + inline Void ClearPedFallUpperBodyClipsetOverride(Ped ped) { return _i(0x80054D7FCC70EEC6, ped); } // 0x80054d7fcc70eec6B323 + // PED::SetPedInVehicleContext(l_128, MISC::GetHashKey("MINI_PROSTITUTE_LOW_PASSENGER")); + // PED::SetPedInVehicleContext(l_128, MISC::GetHashKey("MINI_PROSTITUTE_LOW_RESTRICTED_PASSENGER")); + // PED::SetPedInVehicleContext(l_3212, MISC::GetHashKey("MISS_FAMILY1_JIMMY_SIT")); + // PED::SetPedInVehicleContext(l_3212, MISC::GetHashKey("MISS_FAMILY1_JIMMY_SIT_REAR")); + // PED::SetPedInVehicleContext(l_95, MISC::GetHashKey("MISS_FAMILY2_JIMMY_BICYCLE")); + // PED::SetPedInVehicleContext(num3, MISC::GetHashKey("MISSFBI2_MICHAEL_DRIVEBY")); + // PED::SetPedInVehicleContext(PLAYER::PlayerPedId(), MISC::GetHashKey("MISS_ARMENIAN3_FRANKLIN_TENSE")); + // PED::SetPedInVehicleContext(PLAYER::PlayerPedId(), MISC::GetHashKey("MISSFBI5_TREVOR_DRIVING")); + inline Void SetPedInVehicleContext(Ped ped, Hash context) { return _i(0x530071295899A8C6, ped, context); } // 0x530071295899a8c60x27f25c0eB323 + inline Void ResetPedInVehicleContext(Ped ped) { return _i(0x22EF8FF8778030EB, ped); } // 0x22ef8ff8778030eb0x3c94d88aB323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline BOOL IsScriptedScenarioPedUsingConditionalAnim(Ped ped, String animDict, String anim) { return _i(0x6EC47A344923E1ED, ped, animDict, anim); } // 0x6ec47a344923e1ed0x3c30b447B323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + // + // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json + inline Void SetPedAlternateWalkAnim(Ped ped, String animDict, String animName, float p3, BOOL p4) { return _i(0x6C60394CB4F75E9A, ped, animDict, animName, p3, p4); } // 0x6c60394cb4f75e9a0x895e1d67B323 + inline Void ClearPedAlternateWalkAnim(Ped ped, float p1) { return _i(0x8844BBFCE30AA9E9, ped, p1); } // 0x8844bbfce30aa9e90x5736fb23B323 + // stance: + // 0 = idle + // 1 = walk + // 2 = running + // + // p5 = usually set to true + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + // + // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json + inline Void SetPedAlternateMovementAnim(Ped ped, int stance, String animDictionary, String animationName, float p4, BOOL p5) { return _i(0x90A43CC281FFAB46, ped, stance, animDictionary, animationName, p4, p5); } // 0x90a43cc281ffab460xba84fd8cB323 + inline Void ClearPedAlternateMovementAnim(Ped ped, int stance, float p2) { return _i(0xD8D19675ED5FBDCE, ped, stance, p2); } // 0xd8d19675ed5fbdce0x7a7f5bc3B323 + // From the scripts: + // PED::SetPedGestureGroup(PLAYER::PlayerPedId(), + // "ANIM_GROUP_GESTURE_MISS_FRA0"); + // PED::SetPedGestureGroup(PLAYER::PlayerPedId(), + // "ANIM_GROUP_GESTURE_MISS_DocksSetup1"); + inline Void SetPedGestureGroup(Ped ped, String animGroupGesture) { return _i(0xDDF803377F94AAA8, ped, animGroupGesture); } // 0xddf803377f94aaa80x170da109B323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline Vector3 GetAnimInitialOffsetPosition(String animDict, String animName, float x, float y, float z, float xRot, float yRot, float zRot, float p8, int p9) { return _i(0xBE22B26DD764C040, animDict, animName, x, y, z, xRot, yRot, zRot, p8, p9); } // 0xbe22b26dd764c0400xc59d4268B323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline Vector3 GetAnimInitialOffsetRotation(String animDict, String animName, float x, float y, float z, float xRot, float yRot, float zRot, float p8, int p9) { return _i(0x4B805E6046EE9E47, animDict, animName, x, y, z, xRot, yRot, zRot, p8, p9); } // 0x4b805e6046ee9e470x5f7789e6B323 + // Ids + // 0 - Head + // 1 - Beard + // 2 - Hair + // 3 - Torso + // 4 - Legs + // 5 - Hands + // 6 - Foot + // 7 - ------ + // 8 - Accessories 1 + // 9 - Accessories 2 + // 10- Decals + // 11 - Auxiliary parts for torso + inline int GetPedDrawableVariation(Ped ped, int componentId) { return _i(0x67F3780DD425D4FC, ped, componentId); } // 0x67f3780dd425d4fc0x29850fe2B323 + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline int GetNumberOfPedDrawableVariations(Ped ped, int componentId) { return _i(0x27561561732A7842, ped, componentId); } // 0x27561561732a78420x9754c27dB323 + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline int GetPedTextureVariation(Ped ped, int componentId) { return _i(0x04A355E041E004E6, ped, componentId); } // 0x04a355e041e004e60xc0a8590aB323 + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline int GetNumberOfPedTextureVariations(Ped ped, int componentId, int drawableId) { return _i(0x8F7156A3142A6BAD, ped, componentId, drawableId); } // 0x8f7156a3142a6bad0x83d9fbe7B323 + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline int GetNumberOfPedPropDrawableVariations(Ped ped, int propId) { return _i(0x5FAF9754E789FB47, ped, propId); } // 0x5faf9754e789fb470xc9780b95B323 + // Need to check behavior when drawableId = -1 + // + // - Doofy.Ass + // Why this function doesn't work and return nill value? + // GetNumberOfPedPropTextureVariations(PLAYER.PlayerPedId(), 0, 5) + // + // tick: scripts/addins/menu_execute.lua:51: attempt to call field 'GetNumberOfPedPropTextureVariations' (a nil value) + // + // + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline int GetNumberOfPedPropTextureVariations(Ped ped, int propId, int drawableId) { return _i(0xA6E7F1CEB523E171, ped, propId, drawableId); } // 0xa6e7f1ceb523e1710x4892b882B323 + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline int GetPedPaletteVariation(Ped ped, int componentId) { return _i(0xE3DD5F2A84B42281, ped, componentId); } // 0xe3dd5f2a84b422810xef1bc082B323 + inline BOOL GetMpOutfitDataFromMetadata(Any* p0, Any* p1) { return _i(0x9E30E91FB03A2CAF, p0, p1); } // 0x9e30e91fb03a2caf0x52559bb6B323 + inline int GetFmMaleShopPedApparelItemIndex(int p0) { return _i(0x1E77FA7A62EE6C4C, p0); } // 0x1e77fa7a62ee6c4c0x021f5b36B323 + inline int GetFmFemaleShopPedApparelItemIndex(int p0) { return _i(0xF033419D1B81FAE8, p0); } // 0xf033419d1b81fae80x8fddb5dbB323 + // Checks if the component variation is valid, this works great for randomizing components using loops. + // + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + // + // Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json + inline BOOL IsPedComponentVariationValid(Ped ped, int componentId, int drawableId, int textureId) { return _i(0xE825F6B6CEA7671D, ped, componentId, drawableId, textureId); } // 0xe825f6b6cea7671d0x952abd9aB323 + // paletteId: 0 to 3. + // + // componentId: + // enum ePedVarComp + // { + // PV_COMP_INVALID = -1, + // PV_COMP_HEAD, + // PV_COMP_BERD, + // PV_COMP_HAIR, + // PV_COMP_UPPR, + // PV_COMP_LOWR, + // PV_COMP_HAND, + // PV_COMP_FEET, + // PV_COMP_TEEF, + // PV_COMP_ACCS, + // PV_COMP_TASK, + // PV_COMP_DECL, + // PV_COMP_JBIB, + // PV_COMP_MAX + // }; + // + // Examples: https://gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + // + // Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json + inline Void SetPedComponentVariation(Ped ped, int componentId, int drawableId, int textureId, int paletteId) { return _i(0x262B14F48D29DE80, ped, componentId, drawableId, textureId, paletteId); } // 0x262b14f48d29de800xd4f7b05cB323 + // p1 is always 0 in R* scripts. + // + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline Void SetPedRandomComponentVariation(Ped ped, int p1) { return _i(0xC8A9481A01E63C28, ped, p1); } // 0xc8a9481a01e63c280x4111ba46B323 + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline Void SetPedRandomProps(Ped ped) { return _i(0xC44AA05345C992C6, ped); } // 0xc44aa05345c992c60xe3318e0eB323 + // Sets Ped Default Clothes + inline Void SetPedDefaultComponentVariation(Ped ped) { return _i(0x45EEE61580806D63, ped); } // 0x45eee61580806d630xc866a984B323 + inline Void SetPedBlendFromParents(Ped ped, Any p1, Any p2, float p3, float p4) { return _i(0x137BBD05230DB22D, ped, p1, p2, p3, p4); } // 0x137bbd05230db22d0x837bd370B323 + // The "shape" parameters control the shape of the ped's face. The "skin" parameters control the skin tone. ShapeMix and skinMix control how much the first and second IDs contribute,(typically mother and father.) ThirdMix overrides the others in favor of the third IDs. IsParent is set for "children" of the player character's grandparents during old-gen character creation. It has unknown effect otherwise. + // + // The IDs start at zero and go Male Non-DLC, Female Non-DLC, Male DLC, and Female DLC. + // + // !!!Can someone add working example for this??? + // + // try this: + // headBlendData headData; + // GetPedHeadBlendData(PlayerPedId(), &headData); + // + // SetPedHeadBlendData(PlayerPedId(), headData.shapeFirst, headData.shapeSecond, headData.shapeThird, headData.skinFirst, headData.skinSecond + // , headData.skinThird, headData.shapeMix, headData.skinMix, headData.skinThird, 0); + // + // + // For more info please refer to this topic. + // gtaforums.com/topic/858970-all-gtao-face-ids-pedset-ped-head-blend-data-explained + inline Void SetPedHeadBlendData(Ped ped, int shapeFirstID, int shapeSecondID, int shapeThirdID, int skinFirstID, int skinSecondID, int skinThirdID, float shapeMix, float skinMix, float thirdMix, BOOL isParent) { return _i(0x9414E18B9434C2FE, ped, shapeFirstID, shapeSecondID, shapeThirdID, skinFirstID, skinSecondID, skinThirdID, shapeMix, skinMix, thirdMix, isParent); } // 0x9414e18b9434c2fe0x60746b88B323 + // The pointer is to a padded struct that matches the arguments to SetPedHeadBlendData(...). There are 4 bytes of padding after each field. + // pass this struct in the second parameter + // struct headBlendData + // { + // int shapeFirst; + // int padding1; + // int shapeSecond; + // int padding2; + // int shapeThird; + // int padding3; + // int skinFirst; + // int padding4; + // int skinSecond; + // int padding5; + // int skinThird; + // int padding6; + // float shapeMix; + // int padding7; + // float skinMix; + // int padding8; + // float thirdMix; + // int padding9; + // BOOL isParent; + // }; + inline BOOL GetPedHeadBlendData(Ped ped, Any* headBlendData) { return _i(0x2746BD9D88C5C5D0, ped, headBlendData); } // 0x2746bd9d88c5c5d00x44e1680cB323 + // See SetPedHeadBlendData(). + inline Void UpdatePedHeadBlendData(Ped ped, float shapeMix, float skinMix, float thirdMix) { return _i(0x723538F61C647C5A, ped, shapeMix, skinMix, thirdMix); } // 0x723538f61c647c5a0x5cb76219B323 + // Used for freemode (online) characters. + // + // For some reason, the scripts use a rounded float for the index. + // Indexes: + // 1. black + // 2. very light blue/green + // 3. dark blue + // 4. brown + // 5. darker brown + // 6. light brown + // 7. blue + // 8. light blue + // 9. pink + // 10. yellow + // 11. purple + // 12. black + // 13. dark green + // 14. light brown + // 15. yellow/black pattern + // 16. light colored spiral pattern + // 17. shiny red + // 18. shiny half blue/half red + // 19. half black/half light blue + // 20. white/red perimter + // 21. green snake + // 22. red snake + // 23. dark blue snake + // 24. dark yellow + // 25. bright yellow + // 26. all black + // 28. red small pupil + // 29. devil blue/black + // 30. white small pupil + // 31. glossed over + inline Void SetHeadBlendEyeColor(Ped ped, int index) { return _i(0x50B56988B170AFDF, ped, index); } // 0x50b56988b170afdfB323 + // A getter for _SET_PED_EYE_COLOR. Returns -1 if fails to get. + inline int GetHeadBlendEyeColor(Ped ped) { return _i(0x76BBA2CEE66D47E9, ped); } // 0x76bba2cee66d47e9B1011 + // OverlayID ranges from 0 to 12, index from 0 to _GET_NUM_OVERLAY_VALUES(overlayID)-1, and opacity from 0.0 to 1.0. + // + // overlayID Part Index, to disable + // 0 Blemishes 0 - 23, 255 + // 1 Facial Hair 0 - 28, 255 + // 2 Eyebrows 0 - 33, 255 + // 3 Ageing 0 - 14, 255 + // 4 Makeup 0 - 74, 255 + // 5 Blush 0 - 6, 255 + // 6 Complexion 0 - 11, 255 + // 7 Sun Damage 0 - 10, 255 + // 8 Lipstick 0 - 9, 255 + // 9 Moles/Freckles 0 - 17, 255 + // 10 Chest Hair 0 - 16, 255 + // 11 Body Blemishes 0 - 11, 255 + // 12 Add Body Blemishes 0 - 1, 255 + inline Void SetPedHeadOverlay(Ped ped, int overlayID, int index, float opacity) { return _i(0x48F44967FA05CC1E, ped, overlayID, index, opacity); } // 0x48f44967fa05cc1e0xd28dba90B323 + // Likely a char, if that overlay is not set, e.i. "None" option, returns 255; + // + // This might be the once removed native GetPedHeadOverlay. + inline int GetPedHeadOverlay(Ped ped, int overlayID) { return _i(0xA60EF3B6461A4D43, ped, overlayID); } // 0xa60ef3b6461a4d43B323 + inline int GetPedHeadOverlayNum(int overlayID) { return _i(0xCF1CE768BB43480E, overlayID); } // 0xcf1ce768bb43480e0xff43c18dB323 + // + // + // ColorType is 1 for eyebrows, beards, and chest hair; 2 for blush and lipstick; and 0 otherwise, though not called in those cases. + // + // Called after SetPedHeadOverlay(). + inline Void SetPedHeadOverlayTint(Ped ped, int overlayID, int colorType, int colorID, int secondColorID) { return _i(0x497BF74A7B9CB952, ped, overlayID, colorType, colorID, secondColorID); } // 0x497bf74a7b9cb952B323 + inline Void SetPedHairTint(Ped ped, int colorID, int highlightColorID) { return _i(0x4CFFC65454C93A49, ped, colorID, highlightColorID); } // 0x4cffc65454c93a49B323 + inline int GetNumPedHairTints() { return _i(0xE5C0CF872C2AD150); } // 0xe5c0cf872c2ad150B323 + inline int GetNumPedMakeupTints() { return _i(0xD1F7CA1535D22818); } // 0xd1f7ca1535d22818B323 + // Input: Haircolor index, value between 0 and 63 (inclusive). + // Output: RGB values for the haircolor specified in the input. + // + // This is used with the hair color swatches scaleform. + // Use `GetPedMakeupTintColor` to get the makeup colors. + inline Void GetPedHairTintColor(int hairColorIndex, int* outR, int* outG, int* outB) { return _i(0x4852FC386E2E1BB5, hairColorIndex, outR, outG, outB); } // 0x4852fc386e2e1bb5B323 + // Input: Makeup color index, value between 0 and 63 (inclusive). + // Output: RGB values for the makeup color specified in the input. + // + // This is used with the makeup color swatches scaleform. + // Use `GetPedHairTintColor` to get the hair colors. + inline Void GetPedMakeupTintColor(int makeupColorIndex, int* outR, int* outG, int* outB) { return _i(0x013E5CFC38CD5387, makeupColorIndex, outR, outG, outB); } // 0x013e5cfc38cd5387B323 + inline BOOL IsPedHairTintForCreator(int colorId) { return _i(0xED6D8E27A43B8CDE, colorId); } // 0xed6d8e27a43b8cdeB323 + inline int GetDefaultSecondaryTintForCreator(int colorId) { return _i(0xEA9960D07DADCF10, colorId); } // 0xea9960d07dadcf10B323 + inline BOOL IsPedLipstickTintForCreator(int colorId) { return _i(0x3E802F11FBE27674, colorId); } // 0x3e802f11fbe27674B323 + inline BOOL IsPedBlushTintForCreator(int colorId) { return _i(0xF41B5D290C99A3D6, colorId); } // 0xf41b5d290c99a3d6B323 + inline BOOL IsPedHairTintForBarber(int colorID) { return _i(0xE0D36E5D9E99CC21, colorID); } // 0xe0d36e5d9e99cc21B323 + inline int GetDefaultSecondaryTintForBarber(int colorID) { return _i(0xAAA6A3698A69E048, colorID); } // 0xaaa6a3698a69e048B323 + inline BOOL IsPedLipstickTintForBarber(int colorID) { return _i(0x0525A2C2562F3CD4, colorID); } // 0x0525a2c2562f3cd4B323 + inline BOOL IsPedBlushTintForBarber(int colorID) { return _i(0x604E810189EE3A59, colorID); } // 0x604e810189ee3a59B323 + inline BOOL IsPedBlushFacepaintTintForBarber(int colorId) { return _i(0x09E7ECA981D9B210, colorId); } // 0x09e7eca981d9b210B1290 + inline int GetTintIndexForLastGenHairTexture(Hash modelHash, int drawableId, int textureId) { return _i(0xC56FBF2F228E1DAC, modelHash, drawableId, textureId); } // 0xc56fbf2f228e1dacB323 + // Sets the various freemode face features, e.g. nose length, chin shape. Scale ranges from -1.0 to 1.0. + // + // + // + // 0 - Nose Width (Thin/Wide) + // + // 1 - Nose Peak (Up/Down) + // + // 2 - Nose Length (Long/Short) + // + // 3 - Nose Bone Curveness (Crooked/Curved) + // + // 4 - Nose Tip (Up/Down) + // + // 5 - Nose Bone Twist (Left/Right) + // + // 6 - Eyebrow (Up/Down) + // + // 7 - Eyebrow (In/Out) + // + // 8 - Cheek Bones (Up/Down) + // + // 9 - Cheek Sideways Bone Size (In/Out) + // + // 10 - Cheek Bones Width (Puffed/Gaunt) + // + // 11 - Eye Opening (Both) (Wide/Squinted) + // + // 12 - Lip Thickness (Both) (Fat/Thin) + // + // 13 - Jaw Bone Width (Narrow/Wide) + // + // 14 - Jaw Bone Shape (Round/Square) + // + // 15 - Chin Bone (Up/Down) + // + // 16 - Chin Bone Length (In/Out or Backward/Forward) + // + // 17 - Chin Bone Shape (Pointed/Square) + // + // 18 - Chin Hole (Chin Bum) + // + // 19 - Neck Thickness (Thin/Thick) + inline Void SetPedMicroMorph(Ped ped, int index, float scale) { return _i(0x71A5C1DBA060049E, ped, index, scale); } // 0x71a5c1dba060049eB323 + inline BOOL HasPedHeadBlendFinished(Ped ped) { return _i(0x654CD0A825161131, ped); } // 0x654cd0a8251611310x2b1bd9c5B323 + inline Void FinalizeHeadBlend(Ped ped) { return _i(0x4668D80430D6C299, ped); } // 0x4668d80430d6c2990x894314a4B323 + // p4 seems to vary from 0 to 3. + // Preview: https://gfycat.com/MaleRareAmazonparrot + inline Void SetHeadBlendPaletteColor(Ped ped, int r, int g, int b, int id) { return _i(0xCC9682B8951C5229, ped, r, g, b, id); } // 0xcc9682b8951c52290x57e5b3f9B323 + inline Void DisableHeadBlendPaletteColor(Ped ped) { return _i(0xA21C118553BBDF02, ped); } // 0xa21c118553bbdf020xc6f36292B323 + // Type equals 0 for male non-dlc, 1 for female non-dlc, 2 for male dlc, and 3 for female dlc. + // + // Used when calling SetPedHeadBlendData. + inline int GetPedHeadBlendFirstIndex(int type) { return _i(0x68D353AB88B97E0C, type); } // 0x68d353ab88b97e0c0x211defecB323 + // Type equals 0 for male non-dlc, 1 for female non-dlc, 2 for male dlc, and 3 for female dlc. + inline int GetPedHeadBlendNumHeads(int type) { return _i(0x5EF37013A6539C9D, type); } // 0x5ef37013a6539c9d0x095d3bd8B323 + // from extreme3.c4 + // PED::SetPedPreloadVariationData(PLAYER::PlayerPedId(), 8, PED::GetPedDrawableVariation(PLAYER::PlayerPedId(), 8), PED::GetPedTextureVariation(PLAYER::PlayerPedId(), 8)); + // + // p1 is probably componentId + inline int SetPedPreloadVariationData(Ped ped, int slot, int drawableId, int textureId) { return _i(0x39D55A620FCB6A3A, ped, slot, drawableId, textureId); } // 0x39d55a620fcb6a3a0x45f3bdfbB323 + inline BOOL HasPedPreloadVariationDataFinished(Ped ped) { return _i(0x66680A92700F43DF, ped); } // 0x66680a92700f43df0xc6517d52B323 + inline Void ReleasePedPreloadVariationData(Ped ped) { return _i(0x5AAB586FFEC0FD96, ped); } // 0x5aab586ffec0fd960x6435f67fB323 + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline int SetPedPreloadPropData(Ped ped, int componentId, int drawableId, int TextureId) { return _i(0x2B16A3BFF1FBCE49, ped, componentId, drawableId, TextureId); } // 0x2b16a3bff1fbce490xc0e23671B323 + inline BOOL HasPedPreloadPropDataFinished(Ped ped) { return _i(0x784002A632822099, ped); } // 0x784002a6328220990x3b0ca391B323 + inline Void ReleasePedPreloadPropData(Ped ped) { return _i(0xF79F9DEF0AADE61A, ped); } // 0xf79f9def0aade61a0xfd103ba7B323 + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline int GetPedPropIndex(Ped ped, int componentId, Any p2) { return _i(0x898CC20EA75BACD8, ped, componentId, p2); } // 0x898cc20ea75bacd80x746ddac0B323 + // ComponentId can be set to various things based on what category you're wanting to set + // enum PedPropsData + // { + // PED_PROP_HATS = 0, + // PED_PROP_GLASSES = 1, + // PED_PROP_EARS = 2, + // PED_PROP_WATCHES = 3, + // }; + // Usage: SetPedPropIndex(playerPed, PED_PROP_HATS, GetNumberOfPedPropDrawableVariations(playerPed, PED_PROP_HATS), GetNumberOfPedPropTextureVariations(playerPed, PED_PROP_HATS, 0), TRUE); + // + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline Void SetPedPropIndex(Ped ped, int componentId, int drawableId, int TextureId, BOOL attach, Any p5) { return _i(0x93376B65A266EB5F, ped, componentId, drawableId, TextureId, attach, p5); } // 0x93376b65a266eb5f0x0829f2e2B323 + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline Void KnockOffPedProp(Ped ped, BOOL p1, BOOL p2, BOOL p3, BOOL p4) { return _i(0x6FD7816A36615F48, ped, p1, p2, p3, p4); } // 0x6fd7816a36615f480x08d8b180B323 + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline Void ClearPedProp(Ped ped, int propId, Any p2) { return _i(0x0943E5B8E078E76E, ped, propId, p2); } // 0x0943e5b8e078e76e0x2d23d743B323 + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline Void ClearAllPedProps(Ped ped, Any p1) { return _i(0xCD8A7537A9B52F06, ped, p1); } // 0xcd8a7537a9b52f060x81df8b43B323 + inline Void DropAmbientProp(Ped ped) { return _i(0xAFF4710E2A0A6C12, ped); } // 0xaff4710e2a0a6c120x728d3d53B323 + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline int GetPedPropTextureIndex(Ped ped, int componentId) { return _i(0xE131A28626F81AB2, ped, componentId); } // 0xe131a28626f81ab20x922a6653B323 + inline Void ClearPedParachutePackVariation(Ped ped) { return _i(0x1280804F7CFD2D6C, ped); } // 0x1280804f7cfd2d6c0x7bcd8991B323 + // This native sets a scuba mask for freemode models and an oxygen bottle for player_* models. It works on freemode and player_* models. + inline Void SetPedScubaGearVariation(Ped ped) { return _i(0x36C6984C3ED0C911, ped); } // 0x36c6984c3ed0c911B323 + // Removes the scubagear (for mp male: component id: 8, drawableId: 123, textureId: any) from peds. Does not play the 'remove scuba gear' animation, but instantly removes it. + inline Void ClearPedScubaGearVariation(Ped ped) { return _i(0xB50EB4CCB29704AC, ped); } // 0xb50eb4ccb29704ac0x080275eeB323 + inline BOOL IsUsingPedScubaGearVariation(Any p0) { return _i(0xFEC9A3B1820F3331, p0); } // 0xfec9a3b1820f3331B323 + // works with TASK::TaskSetBlockingOfNonTemporaryEvents to make a ped completely oblivious to all events going on around him + inline Void SetBlockingOfNonTemporaryEvents(Ped ped, BOOL toggle) { return _i(0x9F8AA94D6D97DBF4, ped, toggle); } // 0x9f8aa94d6d97dbf40xdfe34e4aB323 + inline Void SetPedBoundsOrientation(Ped ped, float p1, float p2, float x, float y, float z) { return _i(0x4F5F651ACCC9C4CF, ped, p1, p2, x, y, z); } // 0x4f5f651accc9c4cf0xcfa20d68B323 + // PED::RegisterTarget(l_216, PLAYER::PlayerPedId()); from re_prisonbreak.txt. + // + // l_216 = RECSBRobber1 + inline Void RegisterTarget(Ped ped, Ped target) { return _i(0x2F25D9AEFA34FBA2, ped, target); } // 0x2f25d9aefa34fba20x50a95442B323 + // Based on TaskCombatHatedTargetsAroundPed, the parameters are likely similar (PedHandle, and area to attack in). + inline Void RegisterHatedTargetsAroundPed(Ped ped, float radius) { return _i(0x9222F300BF8354FE, ped, radius); } // 0x9222f300bf8354fe0x7f87559eB323 + // Gets a random ped in the x/y/zRadius near the x/y/z coordinates passed. + // + // Ped Types: + // Any = -1 + // Player = 1 + // Male = 4 + // Female = 5 + // Cop = 6 + // Human = 26 + // SWAT = 27 + // Animal = 28 + // Army = 29 + inline Ped GetRandomPedAtCoord(float x, float y, float z, float xRadius, float yRadius, float zRadius, int pedType) { return _i(0x876046A8E3A4B71C, x, y, z, xRadius, yRadius, zRadius, pedType); } // 0x876046a8e3a4b71c0xdc8239ebB323 + // Gets the closest ped in a radius. + // + // Ped Types: + // Any ped = -1 + // Player = 1 + // Male = 4 + // Female = 5 + // Cop = 6 + // Human = 26 + // SWAT = 27 + // Animal = 28 + // Army = 29 + // + // ------------------ + // P4 P5 P7 P8 + // 1 0 x x = return nearest walking Ped + // 1 x 0 x = return nearest walking Ped + // x 1 1 x = return Ped you are using + // 0 0 x x = no effect + // 0 x 0 x = no effect + // + // x = can be 1 or 0. Does not have any obvious changes. + // + // This function does not return ped who is: + // 1. Standing still + // 2. Driving + // 3. Fleeing + // 4. Attacking + // + // This function only work if the ped is: + // 1. walking normally. + // 2. waiting to cross a road. + // + // Note: PED::GetPedNearbyPeds works for more peds. + inline BOOL GetClosestPed(float x, float y, float z, float radius, BOOL p4, BOOL p5, Ped* outPed, BOOL p7, BOOL p8, int pedType) { return _i(0xC33AB876A77F8164, x, y, z, radius, p4, p5, outPed, p7, p8, pedType); } // 0xc33ab876a77f81640x8f6c1f55B323 + // Sets a value indicating whether scenario peds should be returned by the next call to a command that returns peds. Eg. GetClosestPed. + inline Void SetScenarioPedsToBeReturnedByNextCommand(BOOL value) { return _i(0x14F19A8782C8071E, value); } // 0x14f19a8782c8071e0x85615fd0B323 + inline BOOL GetCanPedBeGrabbedByScript(Ped ped, BOOL p1, BOOL p2, BOOL p3, BOOL p4, BOOL p5, BOOL p6, BOOL p7, Any p8) { return _i(0x03EA03AF85A85CB7, ped, p1, p2, p3, p4, p5, p6, p7, p8); } // 0x03ea03af85a85cb70x18dd76a1B323 + // Scripts use 0.2, 0.5 and 1.0. Value must be >= 0.0 && <= 1.0 + inline Void SetDriverRacingModifier(Ped driver, float modifier) { return _i(0xDED5AF5A0EA4B297, driver, modifier); } // 0xded5af5a0ea4b2970x6d55b3b3B323 + // The function specifically verifies the value is equal to, or less than 1.0f. If it is greater than 1.0f, the function does nothing at all. + inline Void SetDriverAbility(Ped driver, float ability) { return _i(0xB195FFA8042FC5C3, driver, ability); } // 0xb195ffa8042fc5c30xaad4012cB323 + // range 0.0f - 1.0f + inline Void SetDriverAggressiveness(Ped driver, float aggressiveness) { return _i(0xA731F608CA104E3C, driver, aggressiveness); } // 0xa731f608ca104e3c0x8b02a8fbB323 + // Prevents the ped from going limp. + // + // [Example: Can prevent peds from falling when standing on moving vehicles.] + inline BOOL CanPedRagdoll(Ped ped) { return _i(0x128F79EDCECE4FD5, ped); } // 0x128f79edcece4fd50xc0efb7a3B323 + // p4/p5: Unused in TU27 + // Ragdoll Types: + // **0**: CTaskNMRelax + // **1**: CTaskNMScriptControl: Hardcoded not to work in networked environments. + // **Else**: CTaskNMBalance + // time1- Time(ms) Ped is in ragdoll mode; only applies to ragdoll types 0 and not 1. + // + // time2- Unknown time, in milliseconds + // + // ragdollType- + // 0 : Normal ragdoll + // 1 : Falls with stiff legs/body + // 2 : Narrow leg stumble(may not fall) + // 3 : Wide leg stumble(may not fall) + // + // p4, p5, p6- No idea. In R*'s scripts they are usually either "true, true, false" or "false, false, false". + // + // + // + // + // EDIT 3/11/16: unclear what 'mircoseconds' mean-- a microsecond is 1000x a ms, so time2 must be 1000x time1? more testing needed. -sob + // + // Edit Mar 21, 2017: removed part about time2 being the microseconds version of time1. this just isn't correct. time2 is in milliseconds, and time1 and time2 don't seem to be connected in any way. + inline BOOL SetPedToRagdoll(Ped ped, int time1, int time2, int ragdollType, BOOL p4, BOOL p5, BOOL p6) { return _i(0xAE99FB955581844A, ped, time1, time2, ragdollType, p4, p5, p6); } // 0xae99fb955581844a0x83cb5052B323 + // Return variable is never used in R*'s scripts. + // + // Not sure what p2 does. It seems like it would be a time judging by it's usage in R*'s scripts, but didn't seem to affect anything in my testings. + // + // enum eRagdollType + // { + // RD_MALE=0, + // RD_FEMALE = 1, + // RD_MALE_LARGE = 2, + // RD_CUSTOM = 3, + // } + // + // x, y, and z are coordinates, most likely to where the ped will fall. + // + // p8 to p13 are always 0f in R*'s scripts. + // + // (Simplified) Example of the usage of the function from R*'s scripts: + // ped::set_ped_to_ragdoll_with_fall(ped, 1500, 2000, 1, -entity::get_entity_forward_vector(ped), 1f, 0f, 0f, 0f, 0f, 0f, 0f); + // + inline BOOL SetPedToRagdollWithFall(Ped ped, int time, int p2, int ragdollType, float x, float y, float z, float velocity, float p8, float p9, float p10, float p11, float p12, float p13) { return _i(0xD76632D99E4966C8, ped, time, p2, ragdollType, x, y, z, velocity, p8, p9, p10, p11, p12, p13); } // 0xd76632d99e4966c80xfa12e286B323 + // Causes Ped to ragdoll on collision with any object (e.g Running into trashcan). If applied to player you will sometimes trip on the sidewalk. + inline Void SetPedRagdollOnCollision(Ped ped, BOOL toggle) { return _i(0xF0A4F1BBF4FA7497, ped, toggle); } // 0xf0a4f1bbf4fa74970x2654a0f4B323 + // If the ped handle passed through the parenthesis is in a ragdoll state this will return true. + inline BOOL IsPedRagdoll(Ped ped) { return _i(0x47E4E977581C5B55, ped); } // 0x47e4e977581c5b550xc833bbe1B323 + inline BOOL IsPedRunningRagdollTask(Ped ped) { return _i(0xE3B6097CC25AA69E, ped); } // 0xe3b6097cc25aa69e0x44a153f2B323 + inline Void SetPedRagdollForceFall(Ped ped) { return _i(0x01F6594B923B9251, ped); } // 0x01f6594b923b92510x20a5bde0B323 + inline Void ResetPedRagdollTimer(Ped ped) { return _i(0x9FA4664CF62E47E8, ped); } // 0x9fa4664cf62e47e80xf2865370B323 + inline Void SetPedCanRagdoll(Ped ped, BOOL toggle) { return _i(0xB128377056A54E2A, ped, toggle); } // 0xb128377056a54e2a0xcf1384c4B323 + inline BOOL IsPedRunningMeleeTask(Ped ped) { return _i(0xD1871251F3B5ACD7, ped); } // 0xd1871251f3b5acd70xbd4236f6B323 + inline BOOL IsPedRunningMobilePhoneTask(Ped ped) { return _i(0x2AFE52F782F25775, ped); } // 0x2afe52f782f257750xfb2afed1B323 + inline BOOL IsMobilePhoneToPedEar(Ped ped) { return _i(0xA3F3564A5B3646C0, ped); } // 0xa3f3564a5b3646c00x97353375B323 + // Works for both player and peds, + // + // enum eRagdollBlockingFlags + // { + // RBF_BULLET_IMPACT = 0, + // RBF_VEHICLE_IMPACT = 1, + // RBF_FIRE = 2, + // RBF_ELECTROCUTION = 3, + // RBF_PLAYER_IMPACT = 4, + // RBF_EXPLOSION = 5,0 + // RBF_IMPACT_OBJECT = 6, + // RBF_MELEE = 7, + // RBF_RUBBER_BULLET = 8, + // RBF_FALLING = 9, + // RBF_WATER_JET = 10, + // RBF_DROWNING = 11, + // _0x9F52E2C4 = 12, + // RBF_PLAYER_BUMP = 13, + // RBF_PLAYER_RAGDOLL_BUMP = 14, + // RBF_PED_RAGDOLL_BUMP = 15, + // RBF_VEHICLE_GRAB = 16, + // RBF_SMOKE_GRENADE = 17, + // }; + // + // + inline Void SetRagdollBlockingFlags(Ped ped, int blockingFlag) { return _i(0x26695EC767728D84, ped, blockingFlag); } // 0x26695ec767728d840x9c8f830dB323 + // See SetRagdollBlockingFlags for flags + inline Void ClearRagdollBlockingFlags(Ped ped, int blockingFlag) { return _i(0xD86D101FCFD00A4B, ped, blockingFlag); } // 0xd86d101fcfd00a4b0x77cba290B323 + inline Void SetPedAngledDefensiveArea(Ped ped, float p1, float p2, float p3, float p4, float p5, float p6, float p7, BOOL p8, BOOL p9) { return _i(0xC7F76DF27A5045A1, ped, p1, p2, p3, p4, p5, p6, p7, p8, p9); } // 0xc7f76df27a5045a10x3efbdd9bB323 + inline Void SetPedSphereDefensiveArea(Ped ped, float x, float y, float z, float radius, BOOL p5, BOOL p6) { return _i(0x9D3151A373974804, ped, x, y, z, radius, p5, p6); } // 0x9d3151a3739748040xbd96d8e8B323 + inline Void SetPedDefensiveSphereAttachedToPed(Ped ped, Ped target, float xOffset, float yOffset, float zOffset, float radius, BOOL p6) { return _i(0xF9B8F91AAD3B953E, ped, target, xOffset, yOffset, zOffset, radius, p6); } // 0xf9b8f91aad3b953e0x40638bdcB323 + inline Void SetPedDefensiveSphereAttachedToVehicle(Ped ped, Vehicle target, float xOffset, float yOffset, float zOffset, float radius, BOOL p6) { return _i(0xE4723DB6E736CCFF, ped, target, xOffset, yOffset, zOffset, radius, p6); } // 0xe4723db6e736ccff0x4763b2c6B323 + inline Void SetPedDefensiveAreaAttachedToPed(Ped ped, Ped attachPed, float p2, float p3, float p4, float p5, float p6, float p7, float p8, BOOL p9, BOOL p10) { return _i(0x4EF47FE21698A8B6, ped, attachPed, p2, p3, p4, p5, p6, p7, p8, p9, p10); } // 0x4ef47fe21698a8b60x74bda7ceB323 + inline Void SetPedDefensiveAreaDirection(Ped ped, float p1, float p2, float p3, BOOL p4) { return _i(0x413C6C763A4AFFAD, ped, p1, p2, p3, p4); } // 0x413c6c763a4affad0xb66b0c9aB323 + // Ped will no longer get angry when you stay near him. + inline Void RemovePedDefensiveArea(Ped ped, BOOL toggle) { return _i(0x74D4E028107450A9, ped, toggle); } // 0x74d4e028107450a90x34aaafa5B323 + inline Vector3 GetPedDefensiveAreaPosition(Ped ped, BOOL p1) { return _i(0x3C06B8786DD94CD1, ped, p1); } // 0x3c06b8786dd94cd10xcb65198dB323 + inline BOOL IsPedDefensiveAreaActive(Ped ped, BOOL p1) { return _i(0xBA63D9FE45412247, ped, p1); } // 0xba63d9fe454122470x6d88bcd3B323 + inline Void SetPedPreferredCoverSet(Ped ped, Any itemSet) { return _i(0x8421EB4DA7E391B9, ped, itemSet); } // 0x8421eb4da7e391b90xf3b7efbfB323 + inline Void RemovePedPreferredCoverSet(Ped ped) { return _i(0xFDDB234CF74073D9, ped); } // 0xfddb234cf74073d90xa0134498B323 + // It will revive/cure the injured ped. The condition is ped must not be dead. + // + // Upon setting and converting the health int, found, if health falls below 5, the ped will lay on the ground in pain(Maximum default health is 100). + // + // This function is well suited there. + inline Void ReviveInjuredPed(Ped ped) { return _i(0x8D8ACD8388CD99CE, ped); } // 0x8d8acd8388cd99ce0x14d3e6e3B323 + // This function will simply bring the dead person back to life. + // + // Try not to use it alone, since using this function alone, will make peds fall through ground in hell(well for the most of the times). + // + // Instead, before calling this function, you may want to declare the position, where your Resurrected ped to be spawn at.(For instance, Around 2 floats of Player's current position.) + // + // Also, disabling any assigned task immediately helped in the number of scenarios, where If you want peds to perform certain decided tasks. + inline Void ResurrectPed(Ped ped) { return _i(0x71BC8E838B9C6035, ped); } // 0x71bc8e838b9c60350xa4b82097B323 + // NOTE: Debugging functions are not present in the retail version of the game. + // + // *untested but char *name could also be a hash for a localized string + inline Void SetPedNameDebug(Ped ped, String name) { return _i(0x98EFA132A4117BE1, ped, name); } // 0x98efa132a4117be10x20d6273eB323 + // Gets the offset the specified ped has moved since the previous tick. + // + // If worldSpace is false, the returned offset is relative to the ped. That is, if the ped has moved 1 meter right and 5 meters forward, it'll return 1,5,0. + // + // If worldSpace is true, the returned offset is relative to the world. That is, if the ped has moved 1 meter on the X axis and 5 meters on the Y axis, it'll return 1,5,0. + inline Vector3 GetPedExtractedDisplacement(Ped ped, BOOL worldSpace) { return _i(0xE0AF41401ADF87E3, ped, worldSpace); } // 0xe0af41401adf87e30x5231f901B323 + inline Void SetPedDiesWhenInjured(Ped ped, BOOL toggle) { return _i(0x5BA7919BED300023, ped, toggle); } // 0x5ba7919bed3000230xe94e24d4B323 + inline Void SetPedEnableWeaponBlocking(Ped ped, BOOL toggle) { return _i(0x97A790315D3831FD, ped, toggle); } // 0x97a790315d3831fd0x4cad1a4aB323 + // p1 was always 1 (true). + // + // Kicks the ped from the current vehicle and keeps the rendering-focus on this ped (also disables its collision). If doing this for your player ped, you'll still be able to drive the vehicle. + inline Void SpecialFunctionDoNotUse(Ped ped, BOOL p1) { return _i(0xF9ACF4A08098EA25, ped, p1); } // 0xf9acf4a08098ea250x141cc936B323 + inline Void ResetPedVisibleDamage(Ped ped) { return _i(0x3AC1F7B898F30C05, ped); } // 0x3ac1f7b898f30c050xc4bc4841B323 + inline Void ApplyPedBloodDamageByZone(Ped ped, Any p1, float p2, float p3, Any p4) { return _i(0x816F6981C60BF53B, ped, p1, p2, p3, p4); } // 0x816f6981c60bf53b0x1e54db12B323 + // woundTypes: + // - soak_splat + // - wound_sheet + // - BulletSmall + // - BulletLarge + // - ShotgunSmall + // - ShotgunSmallMonolithic + // - ShotgunLarge + // - ShotgunLargeMonolithic + // - NonFatalHeadshot + // - stab + // - BasicSlash + // - Scripted_Ped_Splash_Back + // - BackSplash + inline Void ApplyPedBlood(Ped ped, int boneIndex, float xRot, float yRot, float zRot, String woundType) { return _i(0x83F7E01C7B769A26, ped, boneIndex, xRot, yRot, zRot, woundType); } // 0x83f7e01c7b769a260x376ce3c0B323 + inline Void ApplyPedBloodByZone(Ped ped, int p1, float p2, float p3, String p4) { return _i(0x3311E47B91EDCBBC, ped, p1, p2, p3, p4); } // 0x3311e47b91edcbbc0x8f3f3a9cB323 + inline Void ApplyPedBloodSpecific(Ped ped, int p1, float p2, float p3, float p4, float p5, int p6, float p7, String p8) { return _i(0xEF0D582CBF2D9B0F, ped, p1, p2, p3, p4, p5, p6, p7, p8); } // 0xef0d582cbf2d9b0f0xfc13ce80B323 + // enum eDamageZone + // { + // DZ_Torso = 0, + // DZ_Head, + // DZ_LeftArm, + // DZ_RightArm, + // DZ_LeftLeg, + // DZ_RightLeg, + // }; + // + // Decal Names: + // scar + // blushing + // cs_flush_anger + // cs_flush_anger_face + // bruise + // bruise_large + // herpes + // ArmorBullet + // basic_dirt_cloth + // basic_dirt_skin + // cs_trev1_dirt + // + // ApplyPedDamageDecal(ped, 1, 0.5f, 0.513f, 0f, 1f, unk, 0, 0, "blushing"); + inline Void ApplyPedDamageDecal(Ped ped, int damageZone, float xOffset, float yOffset, float heading, float scale, float alpha, int variation, BOOL fadeIn, String decalName) { return _i(0x397C38AA7B4A5F83, ped, damageZone, xOffset, yOffset, heading, scale, alpha, variation, fadeIn, decalName); } // 0x397c38aa7b4a5f830x8a13a41fB323 + // Damage Packs: + // + // "SCR_TrevorTreeBang" + // "HOSPITAL_0" + // "HOSPITAL_1" + // "HOSPITAL_2" + // "HOSPITAL_3" + // "HOSPITAL_4" + // "HOSPITAL_5" + // "HOSPITAL_6" + // "HOSPITAL_7" + // "HOSPITAL_8" + // "HOSPITAL_9" + // "SCR_Dumpster" + // "BigHitByVehicle" + // "SCR_Finale_Michael_Face" + // "SCR_Franklin_finb" + // "SCR_Finale_Michael" + // "SCR_Franklin_finb2" + // "Explosion_Med" + // "SCR_Torture" + // "SCR_TracySplash" + // "Skin_Melee_0" + // + // Additional damage packs: + // + // gist.github.com/alexguirre/f3f47f75ddcf617f416f3c8a55ae2227 + // Full list of ped damage packs by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedDamagePacks.json + inline Void ApplyPedDamagePack(Ped ped, String damagePack, float damage, float mult) { return _i(0x46DF918788CB093F, ped, damagePack, damage, mult); } // 0x46df918788cb093f0x208d0cb8B323 + inline Void ClearPedBloodDamage(Ped ped) { return _i(0x8FE22675A5A45817, ped); } // 0x8fe22675a5a458170xf7adc960B323 + // Somehow related to changing ped's clothes. + inline Void ClearPedBloodDamageByZone(Ped ped, int p1) { return _i(0x56E3B78C5408D9F4, ped, p1); } // 0x56e3b78c5408d9f40xf210be69B323 + inline Void HidePedBloodDamageByZone(Ped ped, Any p1, BOOL p2) { return _i(0x62AB793144DE75DC, ped, p1, p2); } // 0x62ab793144de75dc0x0cb6c4edB323 + // p1: from 0 to 5 in the b617d scripts. + // p2: "blushing" and "ALL" found in the b617d scripts. + inline Void ClearPedDamageDecalByZone(Ped ped, int p1, String p2) { return _i(0x523C79AEEFCC4A2A, ped, p1, p2); } // 0x523c79aeefcc4a2a0x70aa5b7dB323 + inline int GetPedDecorationsState(Ped ped) { return _i(0x71EAB450D86954A1, ped); } // 0x71eab450d86954a10x47187f7fB323 + inline Void MarkPedDecorationsAsClonedFromLocalPlayer(Ped ped, BOOL p1) { return _i(0x2B694AFCF64E6994, ped, p1); } // 0x2b694afcf64e6994B323 + // It clears the wetness of the selected Ped/Player. Clothes have to be wet to notice the difference. + inline Void ClearPedWetness(Ped ped) { return _i(0x9C720776DAA43E7E, ped); } // 0x9c720776daa43e7e0x629f15bdB323 + // It adds the wetness level to the player clothing/outfit. As if player just got out from water surface. + // + // + inline Void SetPedWetnessHeight(Ped ped, float height) { return _i(0x44CB6447D2571AA0, ped, height); } // 0x44cb6447d2571aa00x7b33289aB323 + // combined with PED::SetPedWetnessHeight(), this native makes the ped drenched in water up to the height specified in the other function + inline Void SetPedWetnessEnabledThisFrame(Ped ped) { return _i(0xB5485E4907B53019, ped); } // 0xb5485e4907b530190xbde749f7B323 + inline Void SetPedWetness(Ped ped, float wetLevel) { return _i(0xAC0BB4D87777CAE2, ped, wetLevel); } // 0xac0bb4d87777cae2B2802 + inline Void ClearPedEnvDirt(Ped ped) { return _i(0x6585D955A68452A5, ped); } // 0x6585d955a68452a50xa993915fB323 + // Sweat is set to 100.0 or 0.0 in the decompiled scripts. + inline Void SetPedSweat(Ped ped, float sweat) { return _i(0x27B0405F59637D1F, ped, sweat); } // 0x27b0405f59637d1f0x76a1db9fB323 + // Applies an Item from a PedDecorationCollection to a ped. These include tattoos and shirt decals. + // + // collection - PedDecorationCollection filename hash + // overlay - Item name hash + // + // Example: + // Entry inside "mpbeach_overlays.xml" - + // + // + // + // + // FM_Hair_Fuzz + // mp_hair_fuzz + // mp_hair_fuzz + // ZONE_HEAD + // TYPE_TATTOO + // FM + // All + // GENDER_DONTCARE + // + // + // + // + // Code: + // PED::AddPedDecorationFromHashes(PLAYER::PlayerPedId(), MISC::GetHashKey("mpbeach_overlays"), MISC::GetHashKey("fm_hair_fuzz")) + // + // Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json + inline Void AddPedDecorationFromHashes(Ped ped, Hash collection, Hash overlay) { return _i(0x5F5D1665E352A839, ped, collection, overlay); } // 0x5f5d1665e352a8390x70559ac7B323 + // Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json + inline Void AddPedDecorationFromHashesInCorona(Ped ped, Hash collection, Hash overlay) { return _i(0x5619BFA07CFD7833, ped, collection, overlay); } // 0x5619bfa07cfd78330x8cd3e487B323 + // Returns the zoneID for the overlay if it is a member of collection. + // enum ePedDecorationZone + // { + // ZONE_TORSO = 0, + // ZONE_HEAD = 1, + // ZONE_LEFT_ARM = 2, + // ZONE_RIGHT_ARM = 3, + // ZONE_LEFT_LEG = 4, + // ZONE_RIGHT_LEG = 5, + // ZONE_MEDALS = 6, + // ZONE_INVALID = 7 + // }; + // + // Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json + inline int GetPedDecorationZoneFromHashes(Hash collection, Hash overlay) { return _i(0x9FD452BFBE7A7A8B, collection, overlay); } // 0x9fd452bfbe7a7a8b0x3543019eB323 + inline Void ClearPedDecorations(Ped ped) { return _i(0x0E5173C163976E38, ped); } // 0x0e5173c163976e380xd4496bf3B323 + inline Void ClearPedDecorationsLeaveScars(Ped ped) { return _i(0xE3B27E70CEAB9F0C, ped); } // 0xe3b27e70ceab9f0c0xefd58eb9B323 + // Despite this function's name, it simply returns whether the specified handle is a Ped. + inline BOOL WasPedSkeletonUpdated(Ped ped) { return _i(0x11B499C1E0FF8559, ped); } // 0x11b499c1e0ff85590xf7e2fbadB323 + // Gets the position of the specified bone of the specified ped. + // + // ped: The ped to get the position of a bone from. + // boneId: The ID of the bone to get the position from. This is NOT the index. + // offsetX: The X-component of the offset to add to the position relative to the bone's rotation. + // offsetY: The Y-component of the offset to add to the position relative to the bone's rotation. + // offsetZ: The Z-component of the offset to add to the position relative to the bone's rotation. + inline Vector3 GetPedBoneCoords(Ped ped, int boneId, float offsetX, float offsetY, float offsetZ) { return _i(0x17C07FC640E86B4E, ped, boneId, offsetX, offsetY, offsetZ); } // 0x17c07fc640e86b4e0x4579cab1B323 + // Creates a new NaturalMotion message. + // + // startImmediately: If set to true, the character will perform the message the moment it receives it by GivePedNmMessage. If false, the Ped will get the message but won't perform it yet. While it's a boolean value, if negative, the message will not be initialized. + // messageId: The ID of the NaturalMotion message. + // + // If a message already exists, this function does nothing. A message exists until the point it has been successfully dispatched by GivePedNmMessage. + inline Void CreateNmMessage(BOOL startImmediately, int messageId) { return _i(0x418EF2A1BCE56685, startImmediately, messageId); } // 0x418ef2a1bce566850x1cfbfd4bB323 + // Sends the message that was created by a call to CreateNmMessage to the specified Ped. + // + // If a message hasn't been created already, this function does nothing. + // If the Ped is not ragdolled with Euphoria enabled, this function does nothing. + // The following call can be used to ragdoll the Ped with Euphoria enabled: SetPedToRagdoll(ped, 4000, 5000, 1, 1, 1, 0); + // + // Call order: + // SetPedToRagdoll + // CreateNmMessage + // GivePedNmMessage + // + // Multiple messages can be chained. Eg. to make the ped stagger and swing his arms around, the following calls can be made: + // SetPedToRagdoll(ped, 4000, 5000, 1, 1, 1, 0); + // CreateNmMessage(true, 0); // stopAllBehaviours - Stop all other behaviours, in case the Ped is already doing some Euphoria stuff. + // GivePedNmMessage(ped); // Dispatch message to Ped. + // CreateNmMessage(true, 1151); // staggerFall - Attempt to walk while falling. + // GivePedNmMessage(ped); // Dispatch message to Ped. + // CreateNmMessage(true, 372); // armsWindmill - Swing arms around. + // GivePedNmMessage(ped); // Dispatch message to Ped. + inline Void GivePedNmMessage(Ped ped) { return _i(0xB158DFCCC56E5C5B, ped); } // 0xb158dfccc56e5c5b0x737c3689B323 + inline int AddScenarioBlockingArea(float x1, float y1, float z1, float x2, float y2, float z2, BOOL p6, BOOL p7, BOOL p8, BOOL p9, Any p10) { return _i(0x1B5C85C612E5256E, x1, y1, z1, x2, y2, z2, p6, p7, p8, p9, p10); } // 0x1b5c85c612e5256e0xa38c0234B323 + inline Void RemoveScenarioBlockingAreas() { return _i(0xD37401D78A929A49); } // 0xd37401d78a929a490x4ddf845fB323 + inline Void RemoveScenarioBlockingArea(Any p0, BOOL p1) { return _i(0x31D16B74C6E29D66, p0, p1); } // 0x31d16b74c6e29d660x4483ef06B323 + inline Void SetScenarioPedsSpawnInSphereArea(float x, float y, float z, float range, int p4) { return _i(0x28157D43CF600981, x, y, z, range, p4); } // 0x28157d43cf6009810x80ead297B323 + inline BOOL DoesScenarioBlockingAreaExists(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0x8A24B067D175A7BD, x1, y1, z1, x2, y2, z2); } // 0x8a24b067d175a7bdB678 + // Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json + inline BOOL IsPedUsingScenario(Ped ped, String scenario) { return _i(0x1BF094736DD62C2E, ped, scenario); } // 0x1bf094736dd62c2e0x0f65b0d4B323 + inline BOOL IsPedUsingAnyScenario(Ped ped) { return _i(0x57AB4A3080F85143, ped); } // 0x57ab4a3080f851430x195ef5b7B323 + inline BOOL SetPedPanicExitScenario(Any p0, Any p1, Any p2, Any p3) { return _i(0xFE07FF6495D52E2A, p0, p1, p2, p3); } // 0xfe07ff6495d52e2a0x59de73acB323 + inline Void ToggleScenarioPedCowerInPlace(Ped ped, BOOL toggle) { return _i(0x9A77DFD295E29B09, ped, toggle); } // 0x9a77dfd295e29b090xc08fe5f6B323 + inline BOOL TriggerPedScenarioPanicexittoflee(Any p0, Any p1, Any p2, Any p3) { return _i(0x25361A96E0F7E419, p0, p1, p2, p3); } // 0x25361a96e0f7e4190x58c0f6cfB323 + inline BOOL SetPedShouldPlayDirectedNormalScenarioExit(Any p0, Any p1, Any p2, Any p3) { return _i(0xEC6935EBE0847B90, p0, p1, p2, p3); } // 0xec6935ebe0847b90B323 + inline Void SetPedShouldPlayNormalScenarioExit(Ped ped) { return _i(0xA3A9299C4F2ADB98, ped); } // 0xa3a9299c4f2adb980x033f43faB323 + inline Void SetPedShouldPlayImmediateScenarioExit(Ped ped) { return _i(0xF1C03A5352243A30, ped); } // 0xf1c03a5352243a300x4c684c81B323 + inline BOOL SetPedShouldPlayFleeScenarioExit(Ped ped, Any p1, Any p2, Any p3) { return _i(0xEEED8FAFEC331A70, ped, p1, p2, p3); } // 0xeeed8fafec331a700x7b4c3e6fB323 + inline Void SetPedShouldIgnoreScenarioExitCollisionChecks(Ped ped, BOOL p1) { return _i(0x425AECF167663F48, ped, p1); } // 0x425aecf167663f480x5bc276aeB323 + inline Void SetPedShouldIgnoreScenarioNavChecks(Any p0, BOOL p1) { return _i(0x5B6010B3CBC29095, p0, p1); } // 0x5b6010b3cbc29095B323 + inline Void SetPedShouldProbeForScenarioExitsInOneFrame(Any p0, BOOL p1) { return _i(0xCEDA60A74219D064, p0, p1); } // 0xceda60a74219d064B323 + inline BOOL IsPedGesturing(Any p0) { return _i(0xC30BDAEE47256C13, p0); } // 0xc30bdaee47256c13B1868 + inline Void ResetFacialIdleAnim(Ped ped) { return _i(0x007FDE5A7897E426, ped); } // 0x007fde5a7897e426B2802 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline Void PlayFacialAnim(Ped ped, String animName, String animDict) { return _i(0xE1E65CA8AC9C00ED, ped, animName, animDict); } // 0xe1e65ca8ac9c00ed0x1f6ccddeB323 + // Clipsets: + // facials@gen_female@base + // facials@gen_male@base + // facials@p_m_zero@base + // + // Typically followed with SetFacialIdleAnimOverride: + // mood_drunk_1 + // mood_stressed_1 + // mood_happy_1 + // mood_talking_1 + // + inline Void SetFacialClipset(Ped ped, String animDict) { return _i(0x5687C7F05B39E401, ped, animDict); } // 0x5687c7f05b39e401B1493 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline Void SetFacialIdleAnimOverride(Ped ped, String animName, String animDict) { return _i(0xFFC24B988B938B38, ped, animName, animDict); } // 0xffc24b988b938b380x9ba19c13B323 + inline Void ClearFacialIdleAnimOverride(Ped ped) { return _i(0x726256CC1EEB182F, ped); } // 0x726256cc1eeb182f0x5244f4e2B323 + inline Void SetPedCanPlayGestureAnims(Ped ped, BOOL toggle) { return _i(0xBAF20C5432058024, ped, toggle); } // 0xbaf20c54320580240xe131e3b3B323 + // p2 usually 0 + inline Void SetPedCanPlayVisemeAnims(Ped ped, BOOL toggle, BOOL p2) { return _i(0xF833DDBA3B104D43, ped, toggle, p2); } // 0xf833ddba3b104d430xa2fdaf27B323 + inline Void SetPedIsIgnoredByAutoOpenDoors(Ped ped, BOOL p1) { return _i(0x33A60D8BDD6E508C, ped, p1); } // 0x33a60d8bdd6e508c0xadb2511aB323 + inline Void SetPedCanPlayAmbientAnims(Ped ped, BOOL toggle) { return _i(0x6373D1349925A70E, ped, toggle); } // 0x6373d1349925a70e0xf8053081B323 + inline Void SetPedCanPlayAmbientBaseAnims(Ped ped, BOOL toggle) { return _i(0x0EB0585D15254740, ped, toggle); } // 0x0eb0585d152547400x5720a5ddB323 + inline Void TriggerIdleAnimationOnPed(Ped ped) { return _i(0xC2EE020F5FB4DB53, ped); } // 0xc2ee020f5fb4db530xb7cd0a49B323 + inline Void SetPedCanArmIk(Ped ped, BOOL toggle) { return _i(0x6C3B4D6D13B4C841, ped, toggle); } // 0x6c3b4d6d13b4c8410x343b4de0B323 + inline Void SetPedCanHeadIk(Ped ped, BOOL toggle) { return _i(0xC11C18092C5530DC, ped, toggle); } // 0xc11c18092c5530dc0xd3b04476B323 + inline Void SetPedCanLegIk(Ped ped, BOOL toggle) { return _i(0x73518ECE2485412B, ped, toggle); } // 0x73518ece2485412b0x9955bc6fB323 + inline Void SetPedCanTorsoIk(Ped ped, BOOL toggle) { return _i(0xF2B7106D37947CE0, ped, toggle); } // 0xf2b7106d37947ce00x8e5d4eabB323 + inline Void SetPedCanTorsoReactIk(Ped ped, BOOL p1) { return _i(0xF5846EDB26A98A24, ped, p1); } // 0xf5846edb26a98a240x7b0040a8B323 + inline Void SetPedCanTorsoVehicleIk(Ped ped, BOOL p1) { return _i(0x6647C5F6F5792496, ped, p1); } // 0x6647c5f6f57924960x0fda62deB323 + inline Void SetPedCanUseAutoConversationLookat(Ped ped, BOOL toggle) { return _i(0xEC4686EC06434678, ped, toggle); } // 0xec4686ec064346780x584c5178B323 + inline BOOL IsPedHeadtrackingPed(Ped ped1, Ped ped2) { return _i(0x5CD3CB88A7F8850D, ped1, ped2); } // 0x5cd3cb88a7f8850d0x2a5df721B323 + inline BOOL IsPedHeadtrackingEntity(Ped ped, Entity entity) { return _i(0x813A0A7C9D2E831F, ped, entity); } // 0x813a0a7c9d2e831f0x233c9acfB323 + // This is only called once in the scripts. + // + // sub_1CD9(&l_49, 0, getElem(3, &l_34, 4), "MICHAEL", 0, 1); + // sub_1CA8("WORLD_HUMAN_SMOKING", 2); + // PED::SetPedPrimaryLookat(getElem(3, &l_34, 4), PLAYER::PlayerPedId()); + inline Void SetPedPrimaryLookat(Ped ped, Ped lookAt) { return _i(0xCD17B554996A8D9E, ped, lookAt); } // 0xcd17b554996a8d9e0x6def6f1cB323 + inline Void SetPedClothPinFrames(Any p0, Any p1) { return _i(0x78C4E9961DB3EB5B, p0, p1); } // 0x78c4e9961db3eb5bB323 + inline Void SetPedClothPackageIndex(Any p0, Any p1) { return _i(0x82A3D6D9CC2CB8E3, p0, p1); } // 0x82a3d6d9cc2cb8e3B323 + inline Void SetPedClothProne(Any p0, BOOL p1) { return _i(0xA660FAF550EB37E5, p0, p1); } // 0xa660faf550eb37e5B323 + inline Void SetPedConfigFlag(Ped ped, int flagId, BOOL value) { return _i(0x1913FE4CBF41C463, ped, flagId, value); } // 0x1913fe4cbf41c4630x9cfbe10dB323 + // PED::SetPedResetFlag(PLAYER::PlayerPedId(), 240, 1); + // Known values: + // PRF_PreventGoingIntoStillInVehicleState = 236 *(fanatic2.c)* + inline Void SetPedResetFlag(Ped ped, int flagId, BOOL doReset) { return _i(0xC1E8A365BF3B29F2, ped, flagId, doReset); } // 0xc1e8a365bf3b29f20xcff6ff66B323 + // See SetPedConfigFlag + inline BOOL GetPedConfigFlag(Ped ped, int flagId, BOOL p2) { return _i(0x7EE53118C892B513, ped, flagId, p2); } // 0x7ee53118c892b5130xabe98267B323 + inline BOOL GetPedResetFlag(Ped ped, int flagId) { return _i(0xAF9E59B1B1FBF2A0, ped, flagId); } // 0xaf9e59b1b1fbf2a00x2fc10d11B323 + inline Void SetPedGroupMemberPassengerIndex(Ped ped, int index) { return _i(0x0BDDB8D9EC6BCF3C, ped, index); } // 0x0bddb8d9ec6bcf3c0x2ab3670bB323 + inline Void SetPedCanEvasiveDive(Ped ped, BOOL toggle) { return _i(0x6B7A646C242A7059, ped, toggle); } // 0x6b7a646c242a70590x542feb4dB323 + // Presumably returns the Entity that the Ped is currently diving out of the way of. + // + // var num3; + // if (PED::IsPedEvasiveDiving(A_0, &num3) != 0) + // if (ENTITY::IsEntityAVehicle(num3) != 0) + inline BOOL IsPedEvasiveDiving(Ped ped, Entity* evadingEntity) { return _i(0x414641C26E105898, ped, evadingEntity); } // 0x414641c26e1058980xd82829dcB323 + inline Void SetPedShootsAtCoord(Ped ped, float x, float y, float z, BOOL toggle) { return _i(0x96A05E4FB321B1BA, ped, x, y, z, toggle); } // 0x96a05e4fb321b1ba0xfd64eae5B323 + // Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json + inline Void SetPedModelIsSuppressed(Hash modelHash, BOOL toggle) { return _i(0xE163A4BCE4DE6F11, modelHash, toggle); } // 0xe163a4bce4de6f110x7820ca43B323 + inline Void StopAnyPedModelBeingSuppressed() { return _i(0xB47BD05FA66B40CF); } // 0xb47bd05fa66b40cf0x5ad7dc55B323 + inline Void SetPedCanBeTargetedWhenInjured(Ped ped, BOOL toggle) { return _i(0x638C03B0F9878F57, ped, toggle); } // 0x638c03b0f9878f570x6fd9a7cdB323 + inline Void SetPedGeneratesDeadBodyEvents(Ped ped, BOOL toggle) { return _i(0x7FB17BA2E7DECA5B, ped, toggle); } // 0x7fb17ba2e7deca5b0xe9b97a2bB323 + inline Void BlockPedFromGeneratingDeadBodyEventsWhenDead(Ped ped, BOOL toggle) { return _i(0xE43A13C9E4CCCBCF, ped, toggle); } // 0xe43a13c9e4cccbcf0xff1f6aebB323 + inline Void SetPedWillOnlyAttackWantedPlayer(Any p0, Any p1) { return _i(0x3E9679C1DFCF422C, p0, p1); } // 0x3e9679c1dfcf422cB877 + inline Void SetPedCanRagdollFromPlayerImpact(Ped ped, BOOL toggle) { return _i(0xDF993EE5E90ABA25, ped, toggle); } // 0xdf993ee5e90aba250xe9bd733aB323 + // PoliceMotorcycleHelmet 1024 + // RegularMotorcycleHelmet 4096 + // FiremanHelmet 16384 + // PilotHeadset 32768 + // PilotHelmet 65536 + // -- + // p2 is generally 4096 or 16384 in the scripts. p1 varies between 1 and 0. + inline Void GivePedHelmet(Ped ped, BOOL cannotRemove, int helmetFlag, int textureIndex) { return _i(0x54C7C4A94367717E, ped, cannotRemove, helmetFlag, textureIndex); } // 0x54c7c4a94367717e0x1862a461B323 + inline Void RemovePedHelmet(Ped ped, BOOL instantly) { return _i(0xA7B2458D0AD6DED8, ped, instantly); } // 0xa7b2458d0ad6ded80x2086b1f0B323 + inline BOOL IsPedTakingOffHelmet(Ped ped) { return _i(0x14590DDBEDB1EC85, ped); } // 0x14590ddbedb1ec850xa1008e0eB323 + inline Void SetPedHelmet(Ped ped, BOOL canWearHelmet) { return _i(0x560A43136EB58105, ped, canWearHelmet); } // 0x560a43136eb581050xed366e53B323 + inline Void SetPedHelmetFlag(Ped ped, int helmetFlag) { return _i(0xC0E78D5C2CE3EB25, ped, helmetFlag); } // 0xc0e78d5c2ce3eb250x12677780B323 + // List of component/props ID + // gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html + inline Void SetPedHelmetPropIndex(Ped ped, int propIndex, BOOL p2) { return _i(0x26D83693ED99291C, ped, propIndex, p2); } // 0x26d83693ed99291c0xa316d13fB323 + inline Void SetPedHelmetVisorPropIndices(Ped ped, BOOL p1, int p2, int p3) { return _i(0x3F7325574E41B44D, ped, p1, p2, p3); } // 0x3f7325574e41b44dB791 + inline BOOL IsPedHelmetVisorUp(Ped ped) { return _i(0xB9496CE47546DB2C, ped); } // 0xb9496ce47546db2cB791 + inline Void SetPedHelmetTextureIndex(Ped ped, int textureIndex) { return _i(0xF1550C4BD22582E2, ped, textureIndex); } // 0xf1550c4bd22582e20x5f6c3328B323 + // Returns true if the ped passed through the parenthesis is wearing a helmet. + inline BOOL IsPedWearingHelmet(Ped ped) { return _i(0xF33BDFE19B309B19, ped); } // 0xf33bdfe19b309b190x0d680d49B323 + inline Void ClearPedStoredHatProp(Ped ped) { return _i(0x687C0B594907D2E8, ped); } // 0x687c0b594907d2e80x24a1284eB323 + inline int GetPedHelmetStoredHatPropIndex(Ped ped) { return _i(0x451294E859ECC018, ped); } // 0x451294e859ecc0180x8a3a3116B323 + inline int GetPedHelmetStoredHatTexIndex(Ped ped) { return _i(0x9D728C1E12BF5518, ped); } // 0x9d728c1e12bf55180x74eb662dB323 + inline BOOL IsCurrentHeadPropAHelmet(Any p0) { return _i(0xF2385935BFFD4D92, p0); } // 0xf2385935bffd4d920xfff149feB323 + inline Void SetPedToLoadCover(Ped ped, BOOL toggle) { return _i(0x332B562EEDA62399, ped, toggle); } // 0x332b562eeda623990xcf94ba97B323 + // It simply makes the said ped to cower behind cover object(wall, desk, car) + // + // Peds flee attributes must be set to not to flee, first. Else, most of the peds, will just flee from gunshot sounds or any other panic situations. + inline Void SetPedCanCowerInCover(Ped ped, BOOL toggle) { return _i(0xCB7553CDCEF4A735, ped, toggle); } // 0xcb7553cdcef4a7350x5194658bB323 + inline Void SetPedCanPeekInCover(Ped ped, BOOL toggle) { return _i(0xC514825C507E3736, ped, toggle); } // 0xc514825c507e37360xc1dae216B323 + // This native does absolutely nothing, just a nullsub + inline Void SetPedPlaysHeadOnHornAnimWhenDiesInVehicle(Ped ped, BOOL toggle) { return _i(0x94D94BF1A75AED3D, ped, toggle); } // 0x94d94bf1a75aed3d0x7c563cd2B323 + // "IK" stands for "Inverse kinematics." I assume this has something to do with how the ped uses his legs to balance. In the scripts, the second parameter is always an int with a value of 2, 0, or sometimes 1 + inline Void SetPedLegIkMode(Ped ped, int mode) { return _i(0xC396F5B86FF9FEBD, ped, mode); } // 0xc396f5b86ff9febd0xfddb042eB323 + inline Void SetPedMotionBlur(Ped ped, BOOL toggle) { return _i(0x0A986918B102B448, ped, toggle); } // 0x0a986918b102b4480xa211a128B323 + inline Void SetPedCanSwitchWeapon(Ped ped, BOOL toggle) { return _i(0xED7F7EFE9FABF340, ped, toggle); } // 0xed7f7efe9fabf3400xb5f8ba28B323 + inline Void SetPedDiesInstantlyInWater(Ped ped, BOOL toggle) { return _i(0xEEB64139BA29A7CF, ped, toggle); } // 0xeeb64139ba29a7cf0xfe2554fcB323 + // Only appears in lamar1 script. + inline Void SetLadderClimbInputState(Ped ped, int p1) { return _i(0x1A330D297AAC6BC1, ped, p1); } // 0x1a330d297aac6bc10x77bb7cb8B323 + inline Void StopPedWeaponFiringWhenDropped(Ped ped) { return _i(0xC158D28142A34608, ped); } // 0xc158d28142a346080x4ac3421eB323 + inline Void SetScriptedAnimSeatOffset(Ped ped, float p1) { return _i(0x5917BBA32D06C230, ped, p1); } // 0x5917bba32d06c2300x7ceffa45B323 + // enum eCombatMovement // 0x4F456B61 + // { + // CM_Stationary, + // CM_Defensive, + // CM_WillAdvance, + // CM_WillRetreat + // }; + inline Void SetPedCombatMovement(Ped ped, int combatMovement) { return _i(0x4D9CA1009AFBD057, ped, combatMovement); } // 0x4d9ca1009afbd0570x12e62f9eB323 + // See SetPedCombatMovement + inline int GetPedCombatMovement(Ped ped) { return _i(0xDEA92412FCAEB3F5, ped); } // 0xdea92412fcaeb3f50xf3e7730eB323 + // enum eCombatAbility // 0xE793438C + // { + // CA_Poor, + // CA_Average, + // CA_Professional, + // CA_NumTypes + // }; + inline Void SetPedCombatAbility(Ped ped, int abilityLevel) { return _i(0xC7622C0D36B2FDA8, ped, abilityLevel); } // 0xc7622c0d36b2fda80x6c23d329B323 + // enum eCombatRange // 0xB69160F5 + // { + // CR_Near, + // CR_Medium, + // CR_Far, + // CR_VeryFar, + // CR_NumRanges + // }; + inline Void SetPedCombatRange(Ped ped, int combatRange) { return _i(0x3C606747B23E497B, ped, combatRange); } // 0x3c606747b23e497b0x8818a959B323 + // See SetPedCombatRange + inline int GetPedCombatRange(Ped ped) { return _i(0xF9D9F7F2DB8E2FA0, ped); } // 0xf9d9f7f2db8e2fa00x9b9b7163B323 + // enum eCombatAttributes // 0x0E8E7201 + // { + // BF_CanUseCover = 0, + // BF_CanUseVehicles = 1, + // BF_CanDoDrivebys = 2, + // BF_CanLeaveVehicle = 3, + // BF_CanUseDynamicStrafeDecisions = 4, + // BF_AlwaysFight = 5, + // BF_0x66BB9FCC = 6, + // BF_0x6837DA41 = 7, + // BF_0xB4A13A5A = 8, + // BF_0xEE326AAD = 9, + // BF_0x7DF2CCFA = 10, + // BF_0x0036D422 = 11, + // BF_BlindFireWhenInCover = 12, + // BF_Aggressive = 13, + // BF_CanInvestigate = 14, + // BF_HasRadio = 15, + // BF_0x6BDE28D1 = 16, + // BF_AlwaysFlee = 17, + // BF_0x7852797D = 18, + // BF_0x33497B95 = 19, + // BF_CanTauntInVehicle = 20, + // BF_CanChaseTargetOnFoot = 21, + // BF_WillDragInjuredPedsToSafety = 22, + // BF_0xCD7168B8 = 23, + // BF_UseProximityFiringRate = 24, + // BF_0x48F914F8 = 25, + // BF_0x2EA543D0 = 26, + // BF_PerfectAccuracy = 27, + // BF_CanUseFrustratedAdvance = 28, + // BF_0x3D131AC1 = 29, + // BF_0x3AD95F27 = 30, + // BF_MaintainMinDistanceToTarget = 31, + // BF_0xEAD68AD2 = 32, + // BF_0xA206C2E0 = 33, + // BF_CanUsePeekingVariations = 34, + // BF_0xA5715184 = 35, + // BF_0xD5265533 = 36, + // BF_0x2B84C2BF = 37, + // BF_DisableBulletReactions = 38, + // BF_CanBust = 39, + // BF_0xAA525726 = 40, + // BF_CanCommandeerVehicles = 41, + // BF_CanFlank = 42, + // BF_SwitchToAdvanceIfCantFindCover = 43, + // BF_SwitchToDefensiveIfInCover = 44, + // BF_0xEB4786A0 = 45, + // BF_CanFightArmedPedsWhenNotArmed = 46, + // BF_0xA08E9402 = 47, + // BF_0x952EAD7D = 48, + // BF_UseEnemyAccuracyScaling = 49, + // BF_CanCharge = 50, + // BF_0xDA8C2BD3 = 51, + // BF_0x6562F017 = 52, + // BF_0xA2C3D53B = 53, + // BF_AlwaysEquipBestWeapon = 54, + // BF_CanSeeUnderwaterPeds = 55, + // BF_0xF619486B = 56, + // BF_0x61EB63A3 = 57, + // BF_DisableFleeFromCombat = 58, + // BF_0x8976D12B = 59, + // BF_CanThrowSmokeGrenade = 60, + // BF_NonMissionPedsFleeFromThisPedUnlessArmed = 61, + // BF_0x5452A10C = 62, + // BF_FleesFromInvincibleOpponents = 63, + // BF_DisableBlockFromPursueDuringVehicleChase = 64, + // BF_DisableSpinOutDuringVehicleChase = 65, + // BF_DisableCruiseInFrontDuringBlockDuringVehicleChase = 66, + // BF_0x0B404731 = 67, + // BF_DisableReactToBuddyShot = 68, + // BF_0x7FFD6AEB = 69, + // BF_0x51F4AEF8 = 70, + // BF_PermitChargeBeyondDefensiveArea = 71, + // BF_0x63E0A8E2 = 72, + // BF_0xDF974436 = 73, + // BF_0x556C080B = 74, + // BF_0xA4D50035 = 75, + // BF_SetDisableShoutTargetPositionOnCombatStart = 76, + // BF_DisableRespondedToThreatBroadcast = 77, + // BF_0xCBB01765 = 78, + // BF_0x4F862ED4 = 79, + // BF_0xEF9C7C40 = 80, + // BF_0xE51B494F = 81, + // BF_0x054D0199 = 82, + // BF_0xD36BCE94 = 83, + // BF_0xFB11F690 = 84, + // BF_0xD208A9AD = 85, + // BF_AllowDogFighting = 86, + // BF_0x07A6E531 = 87, + // BF_0x34F9317B = 88, + // BF_0x4240F5A9 = 89, + // BF_0xEE129DBD = 90, + // BF_0x053AEAD9 = 91 + // }; + inline Void SetPedCombatAttributes(Ped ped, int attributeId, BOOL enabled) { return _i(0x9F7794730795E019, ped, attributeId, enabled); } // 0x9f7794730795e0190x81d64248B323 + // enum eTargetLossResponseType + // { + // TLR_ExitTask, + // TLR_NeverLoseTarget, + // TLR_SearchForTarget + // }; + inline Void SetPedTargetLossResponse(Ped ped, int responseType) { return _i(0x0703B9079823DA4A, ped, responseType); } // 0x0703b9079823da4a0xcfa613ffB323 + inline BOOL IsPedPerformingMeleeAction(Ped ped) { return _i(0xDCCA191DF9980FD7, ped); } // 0xdcca191df9980fd70x139c0875B323 + inline BOOL IsPedPerformingStealthKill(Ped ped) { return _i(0xFD4CCDBCC59941B7, ped); } // 0xfd4ccdbcc59941b70x9add7b21B323 + inline BOOL IsPedPerformingACounterAttack(Ped ped) { return _i(0xEBD0EDBA5BE957CF, ped); } // 0xebd0edba5be957cf0x9be7c860B323 + inline BOOL IsPedBeingStealthKilled(Ped ped) { return _i(0x863B23EFDE9C5DF2, ped); } // 0x863b23efde9c5df20xd044c8afB323 + inline Ped GetMeleeTargetForPed(Ped ped) { return _i(0x18A3E9EE1297FD39, ped); } // 0x18a3e9ee1297fd390xafec26a4B323 + inline BOOL WasPedKilledByStealth(Ped ped) { return _i(0xF9800AA1A771B000, ped); } // 0xf9800aa1a771b0000x2ea4b54eB323 + inline BOOL WasPedKilledByTakedown(Ped ped) { return _i(0x7F08E26039C7347C, ped); } // 0x7f08e26039c7347c0xbdd3ce69B323 + inline BOOL WasPedKnockedOut(Ped ped) { return _i(0x61767F73EACEED21, ped); } // 0x61767f73eaceed210x3993092bB323 + // bit 1 (0x2) = use vehicle + // bit 15 (0x8000) = force cower + inline Void SetPedFleeAttributes(Ped ped, int attributeFlags, BOOL enable) { return _i(0x70A2D1137C8ED7C9, ped, attributeFlags, enable); } // 0x70a2d1137c8ed7c90xa717a875B323 + // p1: Only "CODE_HUMAN_STAND_COWER" found in the b617d scripts. + inline Void SetPedCowerHash(Ped ped, String p1) { return _i(0xA549131166868ED3, ped, p1); } // 0xa549131166868ed30x16f30df4B323 + inline Void SetPedSteersAroundDeadBodies(Ped ped, BOOL toggle) { return _i(0x2016C603D6B8987C, ped, toggle); } // 0x2016c603d6b8987c0xa6f2c057B323 + inline Void SetPedSteersAroundPeds(Ped ped, BOOL toggle) { return _i(0x46F2193B3AD1D891, ped, toggle); } // 0x46f2193b3ad1d8910x797cae4fB323 + inline Void SetPedSteersAroundObjects(Ped ped, BOOL toggle) { return _i(0x1509C089ADC208BF, ped, toggle); } // 0x1509c089adc208bf0x3bd9b0a6B323 + inline Void SetPedSteersAroundVehicles(Ped ped, BOOL toggle) { return _i(0xEB6FB9D48DDE23EC, ped, toggle); } // 0xeb6fb9d48dde23ec0x533c0651B323 + inline Void SetPedIsAvoidedByOthers(Any p0, BOOL p1) { return _i(0xA9B61A329BFDCBEA, p0, p1); } // 0xa9b61a329bfdcbea0x2276de0dB323 + inline Void SetPedIncreasedAvoidanceRadius(Ped ped) { return _i(0x570389D1C3DE3C6B, ped); } // 0x570389d1c3de3c6b0x59c52be6B323 + inline Void SetPedBlocksPathingWhenDead(Ped ped, BOOL toggle) { return _i(0x576594E8D64375E2, ped, toggle); } // 0x576594e8d64375e20x1d87ddc1B323 + inline Void SetPedNoTimeDelayBeforeShot(Any p0) { return _i(0xA52D5247A4227E14, p0); } // 0xa52d5247a4227e140xb52ba5f5B323 + inline BOOL IsAnyPedNearPoint(float x, float y, float z, float radius) { return _i(0x083961498679DC9F, x, y, z, radius); } // 0x083961498679dc9f0xfbd9b050B323 + inline Void ForcePedAiAndAnimationUpdate(Ped ped, BOOL p1, BOOL p2) { return _i(0x2208438012482A1A, ped, p1, p2); } // 0x2208438012482a1a0x187b9070B323 + inline BOOL IsPedHeadingTowardsPosition(Ped ped, float x, float y, float z, float p4) { return _i(0xFCF37A457CB96DC0, ped, x, y, z, p4); } // 0xfcf37a457cb96dc00x45037b9bB323 + inline Void RequestPedVisibilityTracking(Ped ped) { return _i(0x7D7A2E43E74E2EB8, ped); } // 0x7d7a2e43e74e2eb80x840d24d3B323 + inline Void RequestPedVehicleVisibilityTracking(Ped ped, BOOL p1) { return _i(0x2BC338A7B21F4608, ped, p1); } // 0x2bc338a7b21f46080x31c31daaB323 + inline Void RequestPedRestrictedVehicleVisibilityTracking(Ped ped, BOOL p1) { return _i(0xCD018C591F94CB43, ped, p1); } // 0xcd018c591f94cb43B323 + inline Void RequestPedUseSmallBboxVisibilityTracking(Ped ped, BOOL p1) { return _i(0x75BA1CB3B7D40CAF, ped, p1); } // 0x75ba1cb3b7d40caf0x9194db71B323 + // returns whether or not a ped is visible within your FOV, not this check auto's to false after a certain distance. + // + // + // Target needs to be tracked.. won't work otherwise. + inline BOOL IsTrackedPedVisible(Ped ped) { return _i(0x91C8E617F64188AC, ped); } // 0x91c8e617f64188ac0x33248cc1B323 + inline int GetTrackedPedPixelcount(Ped ped) { return _i(0x511F1A683387C7E2, ped); } // 0x511f1a683387c7e20x5b1b70aaB323 + inline BOOL IsPedTracked(Ped ped) { return _i(0x4C5E1F087CD10BB7, ped); } // 0x4c5e1f087cd10bb70x7eb613d9B323 + inline BOOL HasPedReceivedEvent(Ped ped, int eventId) { return _i(0x8507BCB710FA6DC0, ped, eventId); } // 0x8507bcb710fa6dc00xecd73db0B323 + inline BOOL CanPedSeeHatedPed(Ped ped1, Ped ped2) { return _i(0x6CD5A433374D4CFB, ped1, ped2); } // 0x6cd5a433374d4cfb0x74a0f291B323 + inline BOOL CanPedShuffleToOrFromTurretSeat(Ped ped, int* p1) { return _i(0x9C6A6C19B6C0C496, ped, p1); } // 0x9c6a6c19b6c0c496B323 + inline BOOL CanPedShuffleToOrFromExtraSeat(Ped ped, int* p1) { return _i(0x2DFC81C9B9608549, ped, p1); } // 0x2dfc81c9b9608549B944 + // no bone= -1 + // + // boneIds: + // SKEL_ROOT = 0x0, + // SKEL_Pelvis = 0x2e28, + // SKEL_L_Thigh = 0xe39f, + // SKEL_L_Calf = 0xf9bb, + // SKEL_L_Foot = 0x3779, + // SKEL_L_Toe0 = 0x83c, + // IK_L_Foot = 0xfedd, + // PH_L_Foot = 0xe175, + // MH_L_Knee = 0xb3fe, + // SKEL_R_Thigh = 0xca72, + // SKEL_R_Calf = 0x9000, + // SKEL_R_Foot = 0xcc4d, + // SKEL_R_Toe0 = 0x512d, + // IK_R_Foot = 0x8aae, + // PH_R_Foot = 0x60e6, + // MH_R_Knee = 0x3fcf, + // RB_L_ThighRoll = 0x5c57, + // RB_R_ThighRoll = 0x192a, + // SKEL_Spine_Root = 0xe0fd, + // SKEL_Spine0 = 0x5c01, + // SKEL_Spine1 = 0x60f0, + // SKEL_Spine2 = 0x60f1, + // SKEL_Spine3 = 0x60f2, + // SKEL_L_Clavicle = 0xfcd9, + // SKEL_L_UpperArm = 0xb1c5, + // SKEL_L_Forearm = 0xeeeb, + // SKEL_L_Hand = 0x49d9, + // SKEL_L_Finger00 = 0x67f2, + // SKEL_L_Finger01 = 0xff9, + // SKEL_L_Finger02 = 0xffa, + // SKEL_L_Finger10 = 0x67f3, + // SKEL_L_Finger11 = 0x1049, + // SKEL_L_Finger12 = 0x104a, + // SKEL_L_Finger20 = 0x67f4, + // SKEL_L_Finger21 = 0x1059, + // SKEL_L_Finger22 = 0x105a, + // SKEL_L_Finger30 = 0x67f5, + // SKEL_L_Finger31 = 0x1029, + // SKEL_L_Finger32 = 0x102a, + // SKEL_L_Finger40 = 0x67f6, + // SKEL_L_Finger41 = 0x1039, + // SKEL_L_Finger42 = 0x103a, + // PH_L_Hand = 0xeb95, + // IK_L_Hand = 0x8cbd, + // RB_L_ForeArmRoll = 0xee4f, + // RB_L_ArmRoll = 0x1470, + // MH_L_Elbow = 0x58b7, + // SKEL_R_Clavicle = 0x29d2, + // SKEL_R_UpperArm = 0x9d4d, + // SKEL_R_Forearm = 0x6e5c, + // SKEL_R_Hand = 0xdead, + // SKEL_R_Finger00 = 0xe5f2, + // SKEL_R_Finger01 = 0xfa10, + // SKEL_R_Finger02 = 0xfa11, + // SKEL_R_Finger10 = 0xe5f3, + // SKEL_R_Finger11 = 0xfa60, + // SKEL_R_Finger12 = 0xfa61, + // SKEL_R_Finger20 = 0xe5f4, + // SKEL_R_Finger21 = 0xfa70, + // SKEL_R_Finger22 = 0xfa71, + // SKEL_R_Finger30 = 0xe5f5, + // SKEL_R_Finger31 = 0xfa40, + // SKEL_R_Finger32 = 0xfa41, + // SKEL_R_Finger40 = 0xe5f6, + // SKEL_R_Finger41 = 0xfa50, + // SKEL_R_Finger42 = 0xfa51, + // PH_R_Hand = 0x6f06, + // IK_R_Hand = 0x188e, + // RB_R_ForeArmRoll = 0xab22, + // RB_R_ArmRoll = 0x90ff, + // MH_R_Elbow = 0xbb0, + // SKEL_Neck_1 = 0x9995, + // SKEL_Head = 0x796e, + // IK_Head = 0x322c, + // FACIAL_facialRoot = 0xfe2c, + // FB_L_Brow_Out_000 = 0xe3db, + // FB_L_Lid_Upper_000 = 0xb2b6, + // FB_L_Eye_000 = 0x62ac, + // FB_L_CheekBone_000 = 0x542e, + // FB_L_Lip_Corner_000 = 0x74ac, + // FB_R_Lid_Upper_000 = 0xaa10, + // FB_R_Eye_000 = 0x6b52, + // FB_R_CheekBone_000 = 0x4b88, + // FB_R_Brow_Out_000 = 0x54c, + // FB_R_Lip_Corner_000 = 0x2ba6, + // FB_Brow_Centre_000 = 0x9149, + // FB_UpperLipRoot_000 = 0x4ed2, + // FB_UpperLip_000 = 0xf18f, + // FB_L_Lip_Top_000 = 0x4f37, + // FB_R_Lip_Top_000 = 0x4537, + // FB_Jaw_000 = 0xb4a0, + // FB_LowerLipRoot_000 = 0x4324, + // FB_LowerLip_000 = 0x508f, + // FB_L_Lip_Bot_000 = 0xb93b, + // FB_R_Lip_Bot_000 = 0xc33b, + // FB_Tongue_000 = 0xb987, + // RB_Neck_1 = 0x8b93, + // IK_Root = 0xdd1c + inline int GetPedBoneIndex(Ped ped, int boneId) { return _i(0x3F428D08BE5AAE31, ped, boneId); } // 0x3f428d08be5aae310x259c6ba2B323 + inline int GetPedRagdollBoneIndex(Ped ped, int bone) { return _i(0x2057EF813397A772, ped, bone); } // 0x2057ef813397a7720x849f0716B323 + // Values look to be between 0.0 and 1.0 + // From decompiled scripts: 0.0, 0.6, 0.65, 0.8, 1.0 + // + // You are correct, just looked in IDA it breaks from the function if it's less than 0.0f or greater than 1.0f. + inline Void SetPedEnveffScale(Ped ped, float value) { return _i(0xBF29516833893561, ped, value); } // 0xbf295168338935610xfc1cfc27B323 + inline float GetPedEnveffScale(Ped ped) { return _i(0x9C14D30395A51A3C, ped); } // 0x9c14d30395a51a3c0xa3421e39B323 + inline Void SetEnablePedEnveffScale(Ped ped, BOOL toggle) { return _i(0xD2C5AA0C0E8D0F1E, ped, toggle); } // 0xd2c5aa0c0e8d0f1e0xc70f4a84B323 + // In agency_heist3b.c4, its like this 90% of the time: + // + // PED::SetPedEnveffCpvAdd(ped, 0.099); + // PED::SetPedEnveffScale(ped, 1.0); + // PED::SetPedEnveffCpvAdd(ped, 87, 81, 68); + // PED::SetEnablePedEnveffScale(ped, 1); + // + // and its like this 10% of the time: + // + // PED::SetPedEnveffCpvAdd(ped, 0.2); + // PED::SetPedEnveffScale(ped, 0.65); + // PED::SetPedEnveffColorModulator(ped, 74, 69, 60); + // PED::SetEnablePedEnveffScale(ped, 1); + inline Void SetPedEnveffCpvAdd(Ped ped, float p1) { return _i(0x110F526AB784111F, ped, p1); } // 0x110f526ab784111f0x3b882533B323 + // Something related to the environmental effects natives. + // In the "agency_heist3b" script, p1 - p3 are always under 100 - usually they are {87, 81, 68}. If SetPedEnveffScale is set to 0.65 (instead of the usual 1.0), they use {74, 69, 60} + inline Void SetPedEnveffColorModulator(Ped ped, int p1, int p2, int p3) { return _i(0xD69411AA0CEBF9E9, ped, p1, p2, p3); } // 0xd69411aa0cebf9e90x87a0c174B323 + // intensity: 0.0f - 1.0f + // + // This native sets the emissive intensity for the given ped. It is used for different 'glow' levels on illuminated clothing. + inline Void SetPedEmissiveScale(Ped ped, float intensity) { return _i(0x4E90D746056E273D, ped, intensity); } // 0x4e90d746056e273dB944 + // Use 0x4E90D746056E273D to set the illuminated clothing glow intensity for a specific ped. + // Returns a float between 0.0 and 1.0 representing the current illuminated clothing glow intensity. + inline float GetPedEmissiveScale(Ped ped) { return _i(0x1461B28A06717D68, ped); } // 0x1461b28a06717d68B944 + inline BOOL IsPedShaderReady(Ped ped) { return _i(0x81AA517FBBA05D39, ped); } // 0x81aa517fbba05d39B944 + inline Void SetPedEnableCrewEmblem(Ped ped, BOOL toggle) { return _i(0xE906EC930F5FE7C8, ped, toggle); } // 0xe906ec930f5fe7c8B791 + // This native does absolutely nothing, just a nullsub + inline Void RequestRagdollBoundsUpdate(Any p0, Any p1) { return _i(0x1216E0BFA72CC703, p0, p1); } // 0x1216e0bfa72cc7030x7bd26837B323 + // Enable/disable ped shadow (ambient occlusion). https://gfycat.com/thankfulesteemedgecko + inline Void SetPedAoBlobRendering(Ped ped, BOOL toggle) { return _i(0x2B5AA717A181FB4C, ped, toggle); } // 0x2b5aa717a181fb4c0x98e29ed0B323 + inline BOOL IsPedSheltered(Ped ped) { return _i(0xB8B52E498014F5B0, ped); } // 0xb8b52e498014f5b0B323 + // p6 always 2 (but it doesnt seem to matter...) + // + // roll and pitch 0 + // yaw to Ped.rotation + inline int CreateSynchronizedScene(float x, float y, float z, float roll, float pitch, float yaw, int p6) { return _i(0x8C18E0F9080ADD73, x, y, z, roll, pitch, yaw, p6); } // 0x8c18e0f9080add730xffddf8faB323 + inline int CreateSynchronizedSceneAtMapObject(float x, float y, float z, float radius, Hash object) { return _i(0x62EC273D00187DCA, x, y, z, radius, object); } // 0x62ec273d00187dca0xf3876894B323 + // Returns true if a synchronized scene is running + inline BOOL IsSynchronizedSceneRunning(int sceneId) { return _i(0x25D39B935A038A26, sceneId); } // 0x25d39b935a038a260x57a282f1B323 + inline Void SetSynchronizedSceneOrigin(int sceneID, float x, float y, float z, float roll, float pitch, float yaw, BOOL p7) { return _i(0x6ACF6B7225801CD7, sceneID, x, y, z, roll, pitch, yaw, p7); } // 0x6acf6b7225801cd70x2ec2a0b2B323 + inline Void SetSynchronizedScenePhase(int sceneID, float phase) { return _i(0x734292F4F0ABF6D0, sceneID, phase); } // 0x734292f4f0abf6d00xf5ab0d98B323 + inline float GetSynchronizedScenePhase(int sceneID) { return _i(0xE4A310B1D7FA73CC, sceneID); } // 0xe4a310b1d7fa73cc0xb0b2c852B323 + inline Void SetSynchronizedSceneRate(int sceneID, float rate) { return _i(0xB6C49F8A5E295A5D, sceneID, rate); } // 0xb6c49f8a5e295a5d0xf10112fdB323 + inline float GetSynchronizedSceneRate(int sceneID) { return _i(0xD80932D577274D40, sceneID); } // 0xd80932d577274d400x89365f0dB323 + inline Void SetSynchronizedSceneLooped(int sceneID, BOOL toggle) { return _i(0xD9A897A4C6C2974F, sceneID, toggle); } // 0xd9a897a4c6c2974f0x32ed9f82B323 + inline BOOL IsSynchronizedSceneLooped(int sceneID) { return _i(0x62522002E0C391BA, sceneID); } // 0x62522002e0c391ba0x47d87a84B323 + inline Void SetSynchronizedSceneHoldLastFrame(int sceneID, BOOL toggle) { return _i(0x394B9CD12435C981, sceneID, toggle); } // 0x394b9cd12435c9810x2de48da1B323 + inline BOOL IsSynchronizedSceneHoldLastFrame(int sceneID) { return _i(0x7F2F4F13AC5257EF, sceneID); } // 0x7f2f4f13ac5257ef0x72cf2514B323 + inline Void AttachSynchronizedSceneToEntity(int sceneID, Entity entity, int boneIndex) { return _i(0x272E4723B56A3B96, sceneID, entity, boneIndex); } // 0x272e4723b56a3b960xe9ba6189B323 + inline Void DetachSynchronizedScene(int sceneID) { return _i(0x6D38F1F04CBB37EA, sceneID); } // 0x6d38f1f04cbb37ea0x52a1cab2B323 + inline Void TakeOwnershipOfSynchronizedScene(int scene) { return _i(0xCD9CC7E200A52A6F, scene); } // 0xcd9cc7e200a52a6f0xbf7f9035B323 + // Regarding p2, p3 and p4: Most common is 0, 0, 0); followed by 0, 1, 0); and 1, 1, 0); in R* scripts. p4 is very rarely something other than 0. + // + // enum eMotionState // 0x92A659FE + // { + // MotionState_None = 0xEE717723, + // MotionState_Idle = 0x9072A713, + // MotionState_Walk = 0xD827C3DB, + // MotionState_Run = 0xFFF7E7A4, + // MotionState_Sprint = 0xBD8817DB, + // MotionState_Crouch_Idle = 0x43FB099E, + // MotionState_Crouch_Walk = 0x08C31A98, + // MotionState_Crouch_Run = 0x3593CF09, + // MotionState_DoNothing = 0x0EC17E58, + // MotionState_AnimatedVelocity = 0x551AAC43, + // MotionState_InVehicle = 0x94D9D58D, + // MotionState_Aiming = 0x3F67C6AF, + // MotionState_Diving_Idle = 0x4848CDED, + // MotionState_Diving_Swim = 0x916E828C, + // MotionState_Swimming_TreadWater = 0xD1BF11C7, + // MotionState_Dead = 0x0DBB071C, + // MotionState_Stealth_Idle = 0x422D7A25, + // MotionState_Stealth_Walk = 0x042AB6A2, + // MotionState_Stealth_Run = 0xFB0B79E1, + // MotionState_Parachuting = 0xBAC0F10B, + // MotionState_ActionMode_Idle = 0xDA40A0DC, + // MotionState_ActionMode_Walk = 0xD2905EA7, + // MotionState_ActionMode_Run = 0x31BADE14, + // MotionState_Jetpack = 0x535E6A5E + // }; + inline BOOL ForcePedMotionState(Ped ped, Hash motionStateHash, BOOL p2, int p3, BOOL p4) { return _i(0xF28965D04F570DCA, ped, motionStateHash, p2, p3, p4); } // 0xf28965d04f570dca0x164ddeffB323 + inline BOOL GetPedCurrentMoveBlendRatio(Ped ped, float* speedX, float* speedY) { return _i(0xF60165E1D2C5370B, ped, speedX, speedY); } // 0xf60165e1d2c5370bB323 + inline Void SetPedMaxMoveBlendRatio(Ped ped, float value) { return _i(0x433083750C5E064A, ped, value); } // 0x433083750c5e064a0xead0269aB323 + inline Void SetPedMinMoveBlendRatio(Ped ped, float value) { return _i(0x01A898D26E2333DD, ped, value); } // 0x01a898d26e2333dd0x383ec364B323 + // Min: 0.00 + // Max: 10.00 + // + // Can be used in combo with fast run cheat. + // + // When value is set to 10.00: + // Sprinting without fast run cheat: 66 m/s + // Sprinting with fast run cheat: 77 m/s + // + // Needs to be looped! + // + // Note: According to IDA for the Xbox360 xex, when they check bgt they seem to have the min to 0.0f, but the max set to 1.15f not 10.0f. + inline Void SetPedMoveRateOverride(Ped ped, float value) { return _i(0x085BF80FA50A39D1, ped, value); } // 0x085bf80fa50a39d10x900008c6B323 + inline Void SetPedMoveRateInWaterOverride(Ped ped, float p1) { return _i(0x0B3E35AC043707D9, ped, p1); } // 0x0b3e35ac043707d9B573 + // Checks if the specified sexiness flag is set + // + // enum eSexinessFlags + // { + // SF_JEER_AT_HOT_PED = 0, + // SF_HURRIEDFEMALES_SEXY = 1, + // SF_HOT_PERSON = 2, + // }; + inline BOOL PedHasSexinessFlagSet(Ped ped, int sexinessFlag) { return _i(0x46B05BCAE43856B0, ped, sexinessFlag); } // 0x46b05bcae43856b00x79543043B323 + // Returns size of array, passed into the second variable. + // + // See below for usage information. + // + // This function actually requires a struct, where the first value is the maximum number of elements to return. Here is a sample of how I was able to get it to work correctly, without yet knowing the struct format. + // + // //Setup the array + // const int numElements = 10; + // const int arrSize = numElements * 2 + 2; + // Any veh[arrSize]; + // //0 index is the size of the array + // veh[0] = numElements; + // + // int count = PED::GetPedNearbyVehicles(PLAYER::PlayerPedId(), veh); + // + // if (veh != NULL) + // { + // //Simple loop to go through results + // for (int i = 0; i < count; i++) + // { + // int offsettedID = i * 2 + 2; + // //Make sure it exists + // if (veh[offsettedID] != NULL && ENTITY::DoesEntityExist(veh[offsettedID])) + // { + // //Do something + // } + // } + // } + inline int GetPedNearbyVehicles(Ped ped, Any* sizeAndVehs) { return _i(0xCFF869CBFA210D82, ped, sizeAndVehs); } // 0xcff869cbfa210d820xcb716f68B323 + // sizeAndPeds - is a pointer to an array. The array is filled with peds found nearby the ped supplied to the first argument. + // ignore - ped type to ignore + // + // Return value is the number of peds found and added to the array passed. + // + // ----------------------------------- + // + // To make this work in most menu bases at least in C++ do it like so, + // + // Formatted Example: https://pastebin.com/D8an9wwp + // + // ----------------------------------- + // + // Example: gtaforums.com/topic/789788-function-args-to-pedget-ped-nearby-peds/?p=1067386687 + inline int GetPedNearbyPeds(Ped ped, Any* sizeAndPeds, int ignore) { return _i(0x23F8F5FC7E8C4A6B, ped, sizeAndPeds, ignore); } // 0x23f8f5fc7e8c4a6b0x4d3325f4B323 + inline BOOL HaveAllStreamingRequestsCompleted(Ped ped) { return _i(0x7350823473013C02, ped); } // 0x7350823473013c020xf9fb4b71B323 + inline BOOL IsPedUsingActionMode(Ped ped) { return _i(0x00E73468D085F745, ped); } // 0x00e73468d085f7450x5ae7eda2B323 + // p2 is usually -1 in the scripts. action is either 0 or "DEFAULT_ACTION". + inline Void SetPedUsingActionMode(Ped ped, BOOL p1, int p2, String action) { return _i(0xD75ACCF5E0FB5367, ped, p1, p2, action); } // 0xd75accf5e0fb53670x8802f696B323 + // name: "MP_FEMALE_ACTION" found multiple times in the b617d scripts. + inline Void SetMovementModeOverride(Ped ped, String name) { return _i(0x781DE8FA214E87D2, ped, name); } // 0x781de8fa214e87d20x83bae814B323 + // Overrides the ped's collision capsule radius for the current tick. + // Must be called every tick to be effective. + // + // Setting this to 0.001 will allow warping through some objects. + inline Void SetPedCapsule(Ped ped, float value) { return _i(0x364DF566EC833DE2, ped, value); } // 0x364df566ec833de20xb153e1b9B323 + // gtaforums.com/topic/885580-ped-headshotmugshot-txd/ + inline int RegisterPedheadshot(Ped ped) { return _i(0x4462658788425076, ped); } // 0x44626587884250760xffe2667bB323 + inline int RegisterPedheadshotHires(Ped ped) { return _i(0xBA8805A1108A2515, ped); } // 0xba8805a1108a2515B877 + // Similar to RegisterPedheadshot but creates a transparent background instead of black. Example: https://i.imgur.com/iHz8ztn.png + inline int RegisterPedheadshotTransparent(Ped ped) { return _i(0x953563CE563143AF, ped); } // 0x953563ce563143af0x4dd03628B323 + // gtaforums.com/topic/885580-ped-headshotmugshot-txd/ + inline Void UnregisterPedheadshot(int id) { return _i(0x96B1361D9B24C2FF, id); } // 0x96b1361d9b24c2ff0x0879ae45B323 + // gtaforums.com/topic/885580-ped-headshotmugshot-txd/ + inline BOOL IsPedheadshotValid(int id) { return _i(0xA0A9668F158129A2, id); } // 0xa0a9668f158129a20x0b1080c4B323 + // gtaforums.com/topic/885580-ped-headshotmugshot-txd/ + inline BOOL IsPedheadshotReady(int id) { return _i(0x7085228842B13A67, id); } // 0x7085228842b13a670x761cd02eB323 + // gtaforums.com/topic/885580-ped-headshotmugshot-txd/ + inline String GetPedheadshotTxdString(int id) { return _i(0xDB4EACD4AD0A5D6B, id); } // 0xdb4eacd4ad0a5d6b0x76d28e96B323 + inline BOOL RequestPedheadshotImgUpload(int id) { return _i(0xF0DAEF2F545BEE25, id); } // 0xf0daef2f545bee250x10f2c023B323 + inline Void ReleasePedheadshotImgUpload(int id) { return _i(0x5D517B27CF6ECD04, id); } // 0x5d517b27cf6ecd040x0dbb2fa7B323 + inline BOOL IsPedheadshotImgUploadAvailable() { return _i(0xEBB376779A760AA8); } // 0xebb376779a760aa80x810158f8B323 + inline BOOL HasPedheadshotImgUploadFailed() { return _i(0x876928DDDFCCC9CD); } // 0x876928dddfccc9cd0x05023f8fB323 + inline BOOL HasPedheadshotImgUploadSucceeded() { return _i(0xE8A169E666CBC541); } // 0xe8a169e666cbc5410xaa39fd6cB323 + inline Void SetPedHeatscaleOverride(Ped ped, float heatScale) { return _i(0xC1F6EBF9A3D55538, ped, heatScale); } // 0xc1f6ebf9a3d555380xef9142dbB323 + inline Void DisablePedHeatscaleOverride(Ped ped) { return _i(0x600048C60D5C2C51, ped); } // 0x600048c60d5c2c510x0688de64B323 + inline Void SpawnpointsStartSearch(float p0, float p1, float p2, float p3, float p4, int interiorFlags, float scale, int duration) { return _i(0x2DF9038C90AD5264, p0, p1, p2, p3, p4, interiorFlags, scale, duration); } // 0x2df9038c90ad52640x909a1d76B323 + inline Void SpawnpointsStartSearchInAngledArea(float x1, float y1, float z1, float x2, float y2, float z2, float width, int interiorFlags, float scale, int duration) { return _i(0xB2AFF10216DEFA2F, x1, y1, z1, x2, y2, z2, width, interiorFlags, scale, duration); } // 0xb2aff10216defa2f0x4aad0ecbB323 + inline Void SpawnpointsCancelSearch() { return _i(0xFEE4A5459472A9F8); } // 0xfee4a5459472a9f80x492c9e46B323 + inline BOOL SpawnpointsIsSearchActive() { return _i(0x3C67506996001F5E); } // 0x3c67506996001f5e0x814a28f4B323 + inline BOOL SpawnpointsIsSearchComplete() { return _i(0xA586FBEB32A53DBB); } // 0xa586fbeb32a53dbb0x0b60d2baB323 + inline BOOL SpawnpointsIsSearchFailed() { return _i(0xF445DE8DA80A1792); } // 0xf445de8da80a17920x6b83abdfB323 + inline int SpawnpointsGetNumSearchResults() { return _i(0xA635C11B8C44AFC2); } // 0xa635c11b8c44afc20xf46b4dc8B323 + inline Void SpawnpointsGetSearchResult(int randomInt, float* x, float* y, float* z) { return _i(0x280C7E3AC7F56E90, randomInt, x, y, z); } // 0x280c7e3ac7f56e900x36a4ac65B323 + inline Void SpawnpointsGetSearchResultFlags(int p0, int* p1) { return _i(0xB782F8238512BAD5, p0, p1); } // 0xb782f8238512bad50xba699ddfB323 + inline Void SetIkTarget(Ped ped, int ikIndex, Entity entityLookAt, int boneLookAt, float offsetX, float offsetY, float offsetZ, Any p7, int blendInDuration, int blendOutDuration) { return _i(0xC32779C16FCEECD9, ped, ikIndex, entityLookAt, boneLookAt, offsetX, offsetY, offsetZ, p7, blendInDuration, blendOutDuration); } // 0xc32779c16fceecd90x6fe5218cB323 + inline Void ForceInstantLegIkSetup(Ped ped) { return _i(0xED3C76ADFA6D07C4, ped); } // 0xed3c76adfa6d07c40xfb4000dcB323 + inline Void RequestActionModeAsset(String asset) { return _i(0x290E2780BB7AA598, asset); } // 0x290e2780bb7aa5980x572ba553B323 + inline BOOL HasActionModeAssetLoaded(String asset) { return _i(0xE4B5F4BF2CB24E65, asset); } // 0xe4b5f4bf2cb24e650xf7eb2bf1B323 + inline Void RemoveActionModeAsset(String asset) { return _i(0x13E940F88470FA51, asset); } // 0x13e940f88470fa510x3f480f92B323 + inline Void RequestStealthModeAsset(String asset) { return _i(0x2A0A62FCDEE16D4F, asset); } // 0x2a0a62fcdee16d4f0x280a004aB323 + inline BOOL HasStealthModeAssetLoaded(String asset) { return _i(0xE977FC5B08AF3441, asset); } // 0xe977fc5b08af34410x39245667B323 + inline Void RemoveStealthModeAsset(String asset) { return _i(0x9219857D21F0E842, asset); } // 0x9219857d21f0e8420x8c0b243aB323 + inline Void SetPedLodMultiplier(Ped ped, float multiplier) { return _i(0xDC2C5C242AAC342B, ped, multiplier); } // 0xdc2c5c242aac342b0x1d2b5c70B323 + inline Void SetPedCanLosePropsOnDamage(Ped ped, BOOL toggle, int p2) { return _i(0xE861D0B05C7662B8, ped, toggle, p2); } // 0xe861d0b05c7662b80x2f9550c2B323 + inline Void SetForceFootstepUpdate(Ped ped, BOOL toggle) { return _i(0x129466ED55140F8D, ped, toggle); } // 0x129466ed55140f8d0x37dbc2adB323 + inline Void SetForceStepType(Ped ped, BOOL p1, int type, int p3) { return _i(0xCB968B53FC7F916D, ped, p1, type, p3); } // 0xcb968b53fc7f916d0xc0f1bc91B323 + inline BOOL IsAnyHostilePedNearPoint(Ped ped, float x, float y, float z, float radius) { return _i(0x68772DB2B2526F9F, ped, x, y, z, radius); } // 0x68772db2b2526f9f0x1a464167B323 + // Toggles config flag CPED_CONFIG_FLAG_CanPlayInCarIdles. + inline Void SetPedCanPlayInCarIdles(Ped ped, BOOL toggle) { return _i(0x820E9892A77E97CD, ped, toggle); } // 0x820e9892a77e97cdB877 + inline BOOL IsTargetPedInPerceptionArea(Ped ped, Ped targetPed, float p2, float p3, float p4, float p5) { return _i(0x06087579E7AA85A9, ped, targetPed, p2, p3, p4, p5); } // 0x06087579e7aa85a90xd0567d41B323 + // Min and max are usually 100.0 and 200.0 + inline Void SetPopControlSphereThisFrame(float x, float y, float z, float min, float max) { return _i(0xD8C3BE3EE94CAF2D, x, y, z, min, max); } // 0xd8c3be3ee94caf2d0x4bbe5e2cB323 + inline Void ForceZeroMassInCollisions(Ped ped) { return _i(0xD33DAA36272177C4, ped); } // 0xd33daa36272177c40xa89a53f2B323 + inline Void SetDisableHighFallDeath(Ped ped, BOOL toggle) { return _i(0x711794453CFD692B, ped, toggle); } // 0x711794453cfd692bB463 + inline Void SetPedPhonePaletteIdx(Any p0, Any p1) { return _i(0x83A169EABCDB10A2, p0, p1); } // 0x83a169eabcdb10a2B323 + inline Void SetPedSteerBias(Ped ped, float value) { return _i(0x288DF530C92DAD6F, ped, value); } // 0x288df530c92dad6fB323 + inline BOOL IsPedSwitchingWeapon(Ped Ped) { return _i(0x3795688A307E1EB6, Ped); } // 0x3795688a307e1eb6B505 + inline Void SetPedTreatedAsFriendly(Any p0, Any p1, Any p2) { return _i(0x0F62619393661D6E, p0, p1, p2); } // 0x0f62619393661d6eB877 + inline Void SetDisablePedMapCollision(Ped ped) { return _i(0xDFE68C4B787E1BFB, ped); } // 0xdfe68c4b787e1bfbB1180 + inline Void EnableMpLight(Ped ped, BOOL toggle) { return _i(0xEE2476B9EE4A094F, ped, toggle); } // 0xee2476b9ee4a094fB1493 + inline BOOL GetMpLightEnabled(Ped ped) { return _i(0x88274C11CF0D866D, ped); } // 0x88274c11cf0d866dB1493 + inline Void ClearCoverPointForPed(Ped ped) { return _i(0x637822DC2AFEEBF8, ped); } // 0x637822dc2afeebf8B1493 + inline Void SetAllowStuntJumpCamera(Ped ped, BOOL toggle) { return _i(0xFAB944D4D481ACCB, ped, toggle); } // 0xfab944d4d481accbB1734 } namespace PHYSICS { - // Creates a rope at the specific position, that extends in the specified direction when not attached to any entities. - // __ - // - // Add_Rope(pos.x,pos.y,pos.z,0.0,0.0,0.0,20.0,4,20.0,1.0,0.0,false,false,false,5.0,false,NULL) - // - // When attached, Position does not matter - // When attached, Angle does not matter - // - // Rope Type: - // 4 and bellow is a thick rope - // 5 and up are small metal wires - // 0 crashes the game - // - // Max_length - Rope is forced to this length, generally best to keep this the same as your rope length. - // - // windingSpeed - Speed the Rope is being winded, using native StartRopeWinding. Set positive for winding and negative for unwinding. - // - // Rigid - If max length is zero, and this is set to false the rope will become rigid (it will force a specific distance, what ever length is, between the objects). - // - // breakable - Whether or not shooting the rope will break it. - // - // unkPtr - unknown ptr, always 0 in orig scripts - // __ - // - // Lengths can be calculated like so: - // - // float distance = abs(x1 - x2) + abs(y1 - y2) + abs(z1 - z2); // Rope length - // - // - // NOTES: - // - // Rope does NOT interact with anything you attach it to, in some cases it make interact with the world AFTER it breaks (seems to occur if you set the type to -1). - // - // Rope will sometimes contract and fall to the ground like you'd expect it to, but since it doesn't interact with the world the effect is just jaring. - inline int AddRope(float x, float y, float z, float rotX, float rotY, float rotZ, float length, int ropeType, float maxLength, float minLength, float windingSpeed, BOOL p11, BOOL p12, BOOL rigid, float p14, BOOL breakWhenShot, Any* unkPtr) { return _i(0xE832D760399EB220, x, y, z, rotX, rotY, rotZ, length, ropeType, maxLength, minLength, windingSpeed, p11, p12, rigid, p14, breakWhenShot, unkPtr); } // 0xe832d760399eb2200xa592ec74B323 - inline Void DeleteRope(int* ropeId) { return _i(0x52B4829281364649, ropeId); } // 0x52b48292813646490x748d72afB323 - inline Void DeleteChildRope(int ropeId) { return _i(0xAA5D6B1888E4DB20, ropeId); } // 0xaa5d6b1888e4db200xb19b4706B323 - inline BOOL DoesRopeExist(int* ropeId) { return _i(0xFD5448BE3111ED96, ropeId); } // 0xfd5448be3111ed960x66e4a3acB323 - inline Void RopeDrawEnabled(int* ropeId, BOOL p1) { return _i(0xA1AE736541B0FCA3, ropeId, p1); } // 0xa1ae736541b0fca3B1868 - inline Void RopeDrawShadowEnabled(int* ropeId, BOOL toggle) { return _i(0xF159A63806BB5BA8, ropeId, toggle); } // 0xf159a63806bb5ba80x51523b8cB323 - // Rope presets can be found in the gamefiles. One example is "ropeFamily3", it is NOT a hash but rather a string. - inline Void LoadRopeData(int ropeId, String rope_preset) { return _i(0xCBB203C04D1ABD27, ropeId, rope_preset); } // 0xcbb203c04d1abd270x9e8f1644B323 - inline Void PinRopeVertex(int ropeId, int vertex, float x, float y, float z) { return _i(0x2B320CF14146B69A, ropeId, vertex, x, y, z); } // 0x2b320cf14146b69a0xae1d101bB323 - inline Void UnpinRopeVertex(int ropeId, int vertex) { return _i(0x4B5AE2EEE4A8F180, ropeId, vertex); } // 0x4b5ae2eee4a8f1800xb30b552fB323 - inline int GetRopeVertexCount(int ropeId) { return _i(0x3655F544CD30F0B5, ropeId); } // 0x3655f544cd30f0b50x5131cd2cB323 - // Attaches entity 1 to entity 2. - inline Void AttachEntitiesToRope(int ropeId, Entity ent1, Entity ent2, float ent1_x, float ent1_y, float ent1_z, float ent2_x, float ent2_y, float ent2_z, float length, BOOL p10, BOOL p11, Any* p12, Any* p13) { return _i(0x3D95EC8B6D940AC3, ropeId, ent1, ent2, ent1_x, ent1_y, ent1_z, ent2_x, ent2_y, ent2_z, length, p10, p11, p12, p13); } // 0x3d95ec8b6d940ac30x7508668fB323 - // The position supplied can be anywhere, and the entity should anchor relative to that point from it's origin. - inline Void AttachRopeToEntity(int ropeId, Entity entity, float x, float y, float z, BOOL p5) { return _i(0x4B490A6832559A65, ropeId, entity, x, y, z, p5); } // 0x4b490a6832559a650xb25d9536B323 - inline Void DetachRopeFromEntity(int ropeId, Entity entity) { return _i(0xBCF3026912A8647D, ropeId, entity); } // 0xbcf3026912a8647d0x3e720beeB323 - inline Void RopeSetUpdatePinverts(int ropeId) { return _i(0xC8D667EE52114ABA, ropeId); } // 0xc8d667ee52114aba0xeaf291a0B323 - inline Void RopeSetUpdateOrder(int ropeId, Any p1) { return _i(0xDC57A637A20006ED, ropeId, p1); } // 0xdc57a637a20006ed0x80db77a7B323 - inline Void RopeSetSmoothReelin(int ropeId, BOOL p1) { return _i(0x36CCB9BE67B970FD, ropeId, p1); } // 0x36ccb9be67b970fd0xc67d5cf6B323 - inline BOOL IsRopeAttachedAtBothEnds(int* ropeId) { return _i(0x84DE3B5FB3E666F0, ropeId); } // 0x84de3b5fb3e666f00x7a18bb9cB323 - inline Vector3 GetRopeLastVertexCoord(int ropeId) { return _i(0x21BB0FBD3E217C2D, ropeId); } // 0x21bb0fbd3e217c2d0x91f6848bB323 - inline Vector3 GetRopeVertexCoord(int ropeId, int vertex) { return _i(0xEA61CA8E80F09E4D, ropeId, vertex); } // 0xea61ca8e80f09e4d0x84374452B323 - inline Void StartRopeWinding(int ropeId) { return _i(0x1461C72C889E343E, ropeId); } // 0x1461c72c889e343e0x5187bed3B323 - inline Void StopRopeWinding(int ropeId) { return _i(0xCB2D4AB84A19AA7C, ropeId); } // 0xcb2d4ab84a19aa7c0x46826b53B323 - inline Void StartRopeUnwindingFront(int ropeId) { return _i(0x538D1179EC1AA9A9, ropeId); } // 0x538d1179ec1aa9a90xfc0db4c3B323 - inline Void StopRopeUnwindingFront(int ropeId) { return _i(0xFFF3A50779EFBBB3, ropeId); } // 0xfff3a50779efbbb30x2eedb18fB323 - inline Void RopeConvertToSimple(int ropeId) { return _i(0x5389D48EFA2F079A, ropeId); } // 0x5389d48efa2f079a0x43e92628B323 - // Loads rope textures for all ropes in the current scene. - inline Void RopeLoadTextures() { return _i(0x9B9039DBF2D258C1); } // 0x9b9039dbf2d258c10xba97ce91B323 - inline BOOL RopeAreTexturesLoaded() { return _i(0xF2D0E6A75CC05597); } // 0xf2d0e6a75cc055970x5fdc1047B323 - // Unloads rope textures for all ropes in the current scene. - inline Void RopeUnloadTextures() { return _i(0x6CE36C35C1AC8163); } // 0x6ce36c35c1ac81630x584463e0B323 - inline BOOL DoesScriptOwnRope(int ropeId) { return _i(0x271C9D3ACA5D6409, ropeId); } // 0x271c9d3aca5d6409B323 - inline Void RopeAttachVirtualBoundGeom(int ropeId, int p1, float p2, float p3, float p4, float p5, float p6, float p7, float p8, float p9, float p10, float p11, float p12, float p13) { return _i(0xBC0CE682D4D05650, ropeId, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); } // 0xbc0ce682d4d056500x106ba127B323 - inline Void RopeChangeScriptOwner(Any p0, BOOL p1, BOOL p2) { return _i(0xB1B6216CA2E7B55E, p0, p1, p2); } // 0xb1b6216ca2e7b55e0x7c6f7668B323 - inline Void RopeSetRefframevelocityColliderorder(int ropeId, int p1) { return _i(0xB743F735C03D7810, ropeId, p1); } // 0xb743f735c03d78100x686672ddB323 - inline float RopeGetDistanceBetweenEnds(int ropeId) { return _i(0x73040398DFF9A4A6, ropeId); } // 0x73040398dff9a4a60xfd309dc8B323 - // Forces a rope to a certain length. - inline Void RopeForceLength(int ropeId, float length) { return _i(0xD009F759A723DB1B, ropeId, length); } // 0xd009f759a723db1b0xabf3130fB323 - // Reset a rope to a certain length. - inline Void RopeResetLength(int ropeId, float length) { return _i(0xC16DE94D9BEA14A0, ropeId, length); } // 0xc16de94d9bea14a00xc8a423a3B323 - inline Void ApplyImpulseToCloth(float posX, float posY, float posZ, float vecX, float vecY, float vecZ, float impulse) { return _i(0xE37F721824571784, posX, posY, posZ, vecX, vecY, vecZ, impulse); } // 0xe37f7218245717840xa2a5c9feB323 - inline Void SetDamping(Entity entity, int vertex, float value) { return _i(0xEEA3B200A6FEB65B, entity, vertex, value); } // 0xeea3b200a6feb65b0xcfb37773B323 - inline Void ActivatePhysics(Entity entity) { return _i(0x710311ADF0E20730, entity); } // 0x710311adf0e207300x031711b8B323 - inline Void SetCgoffset(Entity entity, float x, float y, float z) { return _i(0xD8FA3908D7B86904, entity, x, y, z); } // 0xd8fa3908d7b869040x59910ab2B323 - inline Vector3 GetCgoffset(Entity entity) { return _i(0x8214A4B5A7A33612, entity); } // 0x8214a4b5a7a336120x49a11f0dB323 - inline Void SetCgAtBoundcenter(Entity entity) { return _i(0xBE520D9761FF811F, entity); } // 0xbe520d9761ff811f0xa5b55421B323 - inline Void BreakEntityGlass(Entity entity, float p1, float p2, float p3, float p4, float p5, float p6, float p7, float p8, Any p9, BOOL p10) { return _i(0x2E648D16F6E308F3, entity, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } // 0x2e648d16f6e308f30xd0e0402fB323 - inline BOOL GetIsEntityAFrag(Object object) { return _i(0x0C112765300C7E1E, object); } // 0x0c112765300c7e1eB505 - inline Void SetDisableBreaking(Object object, BOOL toggle) { return _i(0x5CEC1A84620E7D5B, object, toggle); } // 0x5cec1a84620e7d5b0xee77c326B323 - inline Void ResetDisableBreaking(Object object) { return _i(0xCC6E963682533882, object); } // 0xcc6e963682533882B323 - inline Void SetDisableFragDamage(Object object, BOOL toggle) { return _i(0x01BA3AED21C16CFB, object, toggle); } // 0x01ba3aed21c16cfb0x97269dc8B323 - // PED_RAGDOLL_BUMP Proof? - inline Void SetUseKinematicPhysics(Entity entity, BOOL toggle) { return _i(0x15F944730C832252, entity, toggle); } // 0x15f944730c832252B463 - inline Void SetInStuntMode(BOOL p0) { return _i(0x9EBD751E5787BAF2, p0); } // 0x9ebd751e5787baf2B791 - // Related to the lower-end of a vehicles fTractionCurve, e.g., from standing starts and acceleration from low/zero speeds. - inline Void SetInArenaMode(BOOL toggle) { return _i(0xAA6A6098851C396F, toggle); } // 0xaa6a6098851c396fB1604 + // Creates a rope at the specific position, that extends in the specified direction when not attached to any entities. + // __ + // + // Add_Rope(pos.x,pos.y,pos.z,0.0,0.0,0.0,20.0,4,20.0,1.0,0.0,false,false,false,5.0,false,NULL) + // + // When attached, Position does not matter + // When attached, Angle does not matter + // + // Rope Type: + // 4 and bellow is a thick rope + // 5 and up are small metal wires + // 0 crashes the game + // + // Max_length - Rope is forced to this length, generally best to keep this the same as your rope length. + // + // windingSpeed - Speed the Rope is being winded, using native StartRopeWinding. Set positive for winding and negative for unwinding. + // + // Rigid - If max length is zero, and this is set to false the rope will become rigid (it will force a specific distance, what ever length is, between the objects). + // + // breakable - Whether or not shooting the rope will break it. + // + // unkPtr - unknown ptr, always 0 in orig scripts + // __ + // + // Lengths can be calculated like so: + // + // float distance = abs(x1 - x2) + abs(y1 - y2) + abs(z1 - z2); // Rope length + // + // + // NOTES: + // + // Rope does NOT interact with anything you attach it to, in some cases it make interact with the world AFTER it breaks (seems to occur if you set the type to -1). + // + // Rope will sometimes contract and fall to the ground like you'd expect it to, but since it doesn't interact with the world the effect is just jaring. + inline int AddRope(float x, float y, float z, float rotX, float rotY, float rotZ, float length, int ropeType, float maxLength, float minLength, float windingSpeed, BOOL p11, BOOL p12, BOOL rigid, float p14, BOOL breakWhenShot, Any* unkPtr) { return _i(0xE832D760399EB220, x, y, z, rotX, rotY, rotZ, length, ropeType, maxLength, minLength, windingSpeed, p11, p12, rigid, p14, breakWhenShot, unkPtr); } // 0xe832d760399eb2200xa592ec74B323 + inline Void DeleteRope(int* ropeId) { return _i(0x52B4829281364649, ropeId); } // 0x52b48292813646490x748d72afB323 + inline Void DeleteChildRope(int ropeId) { return _i(0xAA5D6B1888E4DB20, ropeId); } // 0xaa5d6b1888e4db200xb19b4706B323 + inline BOOL DoesRopeExist(int* ropeId) { return _i(0xFD5448BE3111ED96, ropeId); } // 0xfd5448be3111ed960x66e4a3acB323 + inline Void RopeDrawEnabled(int* ropeId, BOOL p1) { return _i(0xA1AE736541B0FCA3, ropeId, p1); } // 0xa1ae736541b0fca3B1868 + inline Void RopeDrawShadowEnabled(int* ropeId, BOOL toggle) { return _i(0xF159A63806BB5BA8, ropeId, toggle); } // 0xf159a63806bb5ba80x51523b8cB323 + // Rope presets can be found in the gamefiles. One example is "ropeFamily3", it is NOT a hash but rather a string. + inline Void LoadRopeData(int ropeId, String rope_preset) { return _i(0xCBB203C04D1ABD27, ropeId, rope_preset); } // 0xcbb203c04d1abd270x9e8f1644B323 + inline Void PinRopeVertex(int ropeId, int vertex, float x, float y, float z) { return _i(0x2B320CF14146B69A, ropeId, vertex, x, y, z); } // 0x2b320cf14146b69a0xae1d101bB323 + inline Void UnpinRopeVertex(int ropeId, int vertex) { return _i(0x4B5AE2EEE4A8F180, ropeId, vertex); } // 0x4b5ae2eee4a8f1800xb30b552fB323 + inline int GetRopeVertexCount(int ropeId) { return _i(0x3655F544CD30F0B5, ropeId); } // 0x3655f544cd30f0b50x5131cd2cB323 + // Attaches entity 1 to entity 2. + inline Void AttachEntitiesToRope(int ropeId, Entity ent1, Entity ent2, float ent1_x, float ent1_y, float ent1_z, float ent2_x, float ent2_y, float ent2_z, float length, BOOL p10, BOOL p11, Any* p12, Any* p13) { return _i(0x3D95EC8B6D940AC3, ropeId, ent1, ent2, ent1_x, ent1_y, ent1_z, ent2_x, ent2_y, ent2_z, length, p10, p11, p12, p13); } // 0x3d95ec8b6d940ac30x7508668fB323 + // The position supplied can be anywhere, and the entity should anchor relative to that point from it's origin. + inline Void AttachRopeToEntity(int ropeId, Entity entity, float x, float y, float z, BOOL p5) { return _i(0x4B490A6832559A65, ropeId, entity, x, y, z, p5); } // 0x4b490a6832559a650xb25d9536B323 + inline Void DetachRopeFromEntity(int ropeId, Entity entity) { return _i(0xBCF3026912A8647D, ropeId, entity); } // 0xbcf3026912a8647d0x3e720beeB323 + inline Void RopeSetUpdatePinverts(int ropeId) { return _i(0xC8D667EE52114ABA, ropeId); } // 0xc8d667ee52114aba0xeaf291a0B323 + inline Void RopeSetUpdateOrder(int ropeId, Any p1) { return _i(0xDC57A637A20006ED, ropeId, p1); } // 0xdc57a637a20006ed0x80db77a7B323 + inline Void RopeSetSmoothReelin(int ropeId, BOOL p1) { return _i(0x36CCB9BE67B970FD, ropeId, p1); } // 0x36ccb9be67b970fd0xc67d5cf6B323 + inline BOOL IsRopeAttachedAtBothEnds(int* ropeId) { return _i(0x84DE3B5FB3E666F0, ropeId); } // 0x84de3b5fb3e666f00x7a18bb9cB323 + inline Vector3 GetRopeLastVertexCoord(int ropeId) { return _i(0x21BB0FBD3E217C2D, ropeId); } // 0x21bb0fbd3e217c2d0x91f6848bB323 + inline Vector3 GetRopeVertexCoord(int ropeId, int vertex) { return _i(0xEA61CA8E80F09E4D, ropeId, vertex); } // 0xea61ca8e80f09e4d0x84374452B323 + inline Void StartRopeWinding(int ropeId) { return _i(0x1461C72C889E343E, ropeId); } // 0x1461c72c889e343e0x5187bed3B323 + inline Void StopRopeWinding(int ropeId) { return _i(0xCB2D4AB84A19AA7C, ropeId); } // 0xcb2d4ab84a19aa7c0x46826b53B323 + inline Void StartRopeUnwindingFront(int ropeId) { return _i(0x538D1179EC1AA9A9, ropeId); } // 0x538d1179ec1aa9a90xfc0db4c3B323 + inline Void StopRopeUnwindingFront(int ropeId) { return _i(0xFFF3A50779EFBBB3, ropeId); } // 0xfff3a50779efbbb30x2eedb18fB323 + inline Void RopeConvertToSimple(int ropeId) { return _i(0x5389D48EFA2F079A, ropeId); } // 0x5389d48efa2f079a0x43e92628B323 + // Loads rope textures for all ropes in the current scene. + inline Void RopeLoadTextures() { return _i(0x9B9039DBF2D258C1); } // 0x9b9039dbf2d258c10xba97ce91B323 + inline BOOL RopeAreTexturesLoaded() { return _i(0xF2D0E6A75CC05597); } // 0xf2d0e6a75cc055970x5fdc1047B323 + // Unloads rope textures for all ropes in the current scene. + inline Void RopeUnloadTextures() { return _i(0x6CE36C35C1AC8163); } // 0x6ce36c35c1ac81630x584463e0B323 + inline BOOL DoesScriptOwnRope(int ropeId) { return _i(0x271C9D3ACA5D6409, ropeId); } // 0x271c9d3aca5d6409B323 + inline Void RopeAttachVirtualBoundGeom(int ropeId, int p1, float p2, float p3, float p4, float p5, float p6, float p7, float p8, float p9, float p10, float p11, float p12, float p13) { return _i(0xBC0CE682D4D05650, ropeId, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); } // 0xbc0ce682d4d056500x106ba127B323 + inline Void RopeChangeScriptOwner(Any p0, BOOL p1, BOOL p2) { return _i(0xB1B6216CA2E7B55E, p0, p1, p2); } // 0xb1b6216ca2e7b55e0x7c6f7668B323 + inline Void RopeSetRefframevelocityColliderorder(int ropeId, int p1) { return _i(0xB743F735C03D7810, ropeId, p1); } // 0xb743f735c03d78100x686672ddB323 + inline float RopeGetDistanceBetweenEnds(int ropeId) { return _i(0x73040398DFF9A4A6, ropeId); } // 0x73040398dff9a4a60xfd309dc8B323 + // Forces a rope to a certain length. + inline Void RopeForceLength(int ropeId, float length) { return _i(0xD009F759A723DB1B, ropeId, length); } // 0xd009f759a723db1b0xabf3130fB323 + // Reset a rope to a certain length. + inline Void RopeResetLength(int ropeId, float length) { return _i(0xC16DE94D9BEA14A0, ropeId, length); } // 0xc16de94d9bea14a00xc8a423a3B323 + inline Void ApplyImpulseToCloth(float posX, float posY, float posZ, float vecX, float vecY, float vecZ, float impulse) { return _i(0xE37F721824571784, posX, posY, posZ, vecX, vecY, vecZ, impulse); } // 0xe37f7218245717840xa2a5c9feB323 + inline Void SetDamping(Entity entity, int vertex, float value) { return _i(0xEEA3B200A6FEB65B, entity, vertex, value); } // 0xeea3b200a6feb65b0xcfb37773B323 + inline Void ActivatePhysics(Entity entity) { return _i(0x710311ADF0E20730, entity); } // 0x710311adf0e207300x031711b8B323 + inline Void SetCgoffset(Entity entity, float x, float y, float z) { return _i(0xD8FA3908D7B86904, entity, x, y, z); } // 0xd8fa3908d7b869040x59910ab2B323 + inline Vector3 GetCgoffset(Entity entity) { return _i(0x8214A4B5A7A33612, entity); } // 0x8214a4b5a7a336120x49a11f0dB323 + inline Void SetCgAtBoundcenter(Entity entity) { return _i(0xBE520D9761FF811F, entity); } // 0xbe520d9761ff811f0xa5b55421B323 + inline Void BreakEntityGlass(Entity entity, float p1, float p2, float p3, float p4, float p5, float p6, float p7, float p8, Any p9, BOOL p10) { return _i(0x2E648D16F6E308F3, entity, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } // 0x2e648d16f6e308f30xd0e0402fB323 + inline BOOL GetIsEntityAFrag(Object object) { return _i(0x0C112765300C7E1E, object); } // 0x0c112765300c7e1eB505 + inline Void SetDisableBreaking(Object object, BOOL toggle) { return _i(0x5CEC1A84620E7D5B, object, toggle); } // 0x5cec1a84620e7d5b0xee77c326B323 + inline Void ResetDisableBreaking(Object object) { return _i(0xCC6E963682533882, object); } // 0xcc6e963682533882B323 + inline Void SetDisableFragDamage(Object object, BOOL toggle) { return _i(0x01BA3AED21C16CFB, object, toggle); } // 0x01ba3aed21c16cfb0x97269dc8B323 + // PED_RAGDOLL_BUMP Proof? + inline Void SetUseKinematicPhysics(Entity entity, BOOL toggle) { return _i(0x15F944730C832252, entity, toggle); } // 0x15f944730c832252B463 + inline Void SetInStuntMode(BOOL p0) { return _i(0x9EBD751E5787BAF2, p0); } // 0x9ebd751e5787baf2B791 + // Related to the lower-end of a vehicles fTractionCurve, e.g., from standing starts and acceleration from low/zero speeds. + inline Void SetInArenaMode(BOOL toggle) { return _i(0xAA6A6098851C396F, toggle); } // 0xaa6a6098851c396fB1604 } namespace PLAYER { - // Gets the ped for a specified player index. - inline Ped GetPlayerPed(Player player) { return _i(0x43A66C31C68491C0, player); } // 0x43a66c31c68491c00x6e31e993B323 - // Does the same like PLAYER::GetPlayerPed - inline Ped GetPlayerPedScriptIndex(Player player) { return _i(0x50FAC3A3E030A6E1, player); } // 0x50fac3a3e030a6e10x6ac64990B323 - // Set the model for a specific Player. Be aware that this will destroy the current Ped for the Player and create a new one, any reference to the old ped should be reset - // Make sure to request the model first and wait until it has loaded. - inline Void SetPlayerModel(Player player, Hash model) { return _i(0x00A1CADD00108836, player, model); } // 0x00a1cadd001088360x774a4c54B323 - inline Void ChangePlayerPed(Player player, Ped ped, BOOL p2, BOOL resetDamage) { return _i(0x048189FAC643DEEE, player, ped, p2, resetDamage); } // 0x048189fac643deee0xbe515485B323 - inline Void GetPlayerRgbColour(Player player, int* r, int* g, int* b) { return _i(0xE902EF951DCE178F, player, r, g, b); } // 0xe902ef951dce178f0x6ef43bbbB323 - // Gets the number of players in the current session. - // If not multiplayer, always returns 1. - inline int GetNumberOfPlayers() { return _i(0x407C7F91DDB46C16); } // 0x407c7f91ddb46c160x4c1b8867B323 - // Gets the player's team. - // Does nothing in singleplayer. - inline int GetPlayerTeam(Player player) { return _i(0x37039302F4E0A008, player); } // 0x37039302f4e0a0080x9873e404B323 - // Set player team on deathmatch and last team standing.. - inline Void SetPlayerTeam(Player player, int team) { return _i(0x0299FA38396A4940, player, team); } // 0x0299fa38396a49400x725adcf2B323 - inline int GetNumberOfPlayersInTeam(int team) { return _i(0x1FC200409F10E6F1, team); } // 0x1fc200409f10e6f1B1180 - inline String GetPlayerName(Player player) { return _i(0x6D0DE6A7B5DA71F8, player); } // 0x6D0DE6A7B5DA71F8 0x406B4B20 b323 - // Remnant from GTA IV. Does nothing in GTA V. - inline float GetWantedLevelRadius(Player player) { return _i(0x085DEB493BE80812, player); } // 0x085deb493be808120x1cf7d7daB323 - inline Vector3 GetPlayerWantedCentrePosition(Player player) { return _i(0x0C92BA89F1AF26F8, player); } // 0x0c92ba89f1af26f80x821f2d2cB323 - // # Predominant call signatures - // PLAYER::SetPlayerWantedCentrePosition(PLAYER::PlayerId(), ENTITY::GetEntityCoords(PLAYER::PlayerPedId(), 1)); - // - // # Parameter value ranges - // P0: PLAYER::PlayerId() - // P1: ENTITY::GetEntityCoords(PLAYER::PlayerPedId(), 1) - // P2: Not set by any call - inline Void SetPlayerWantedCentrePosition(Player player, Vector3* position, BOOL p2, BOOL p3) { return _i(0x520E541A97A13354, player, position, p2, p3); } // 0x520e541a97a133540xf261633aB323 - // Drft - inline int GetWantedLevelThreshold(int wantedLevel) { return _i(0xFDD179EAF45B556C, wantedLevel); } // 0xfdd179eaf45b556c0xd9783f6bB323 - // Call SetPlayerWantedLevelNow for immediate effect - // - // wantedLevel is an integer value representing 0 to 5 stars even though the game supports the 6th wanted level but no police will appear since no definitions are present for it in the game files - // - // disableNoMission- Disables When Off Mission- appears to always be false - // - inline Void SetPlayerWantedLevel(Player player, int wantedLevel, BOOL disableNoMission) { return _i(0x39FF19C64EF7DA5B, player, wantedLevel, disableNoMission); } // 0x39ff19c64ef7da5b0xb7a0914bB323 - // p2 is always false in R* scripts - inline Void SetPlayerWantedLevelNoDrop(Player player, int wantedLevel, BOOL p2) { return _i(0x340E61DE7F471565, player, wantedLevel, p2); } // 0x340e61de7f4715650xed6f44f5B323 - // Forces any pending wanted level to be applied to the specified player immediately. - // - // Call SetPlayerWantedLevel with the desired wanted level, followed by SetPlayerWantedLevelNow. - // - // Second parameter is unknown (always false). - inline Void SetPlayerWantedLevelNow(Player player, BOOL p1) { return _i(0xE0A7D1E497FFCD6F, player, p1); } // 0xe0a7d1e497ffcd6f0xaf3afd83B323 - inline BOOL ArePlayerFlashingStarsAboutToDrop(Player player) { return _i(0xAFAF86043E5874E9, player); } // 0xafaf86043e5874e90xe13a71c7B323 - inline BOOL ArePlayerStarsGreyedOut(Player player) { return _i(0x0A6EB355EE14A2DB, player); } // 0x0a6eb355ee14a2db0x5e72ab72B323 - inline BOOL IsWantedAndHasBeenSeenByCops(Player player) { return _i(0x7E07C78925D5FD96, player); } // 0x7e07c78925d5fd96B372 - inline Void SetDispatchCopsForPlayer(Player player, BOOL toggle) { return _i(0xDB172424876553F4, player, toggle); } // 0xdb172424876553f40x48a18913B323 - inline BOOL IsPlayerWantedLevelGreater(Player player, int wantedLevel) { return _i(0x238DB2A2C23EE9EF, player, wantedLevel); } // 0x238db2a2c23ee9ef0x589a2661B323 - // This executes at the same as speed as PLAYER::SetPlayerWantedLevel(player, 0, false); - // - // PLAYER::GetPlayerWantedLevel(player); executes in less than half the time. Which means that it's worth first checking if the wanted level needs to be cleared before clearing. However, this is mostly about good code practice and can important in other situations. The difference in time in this example is negligible. - inline Void ClearPlayerWantedLevel(Player player) { return _i(0xB302540597885499, player); } // 0xb3025405978854990x54ea5bccB323 - inline BOOL IsPlayerDead(Player player) { return _i(0x424D4687FA1E5652, player); } // 0x424d4687fa1e56520x140ca5a8B323 - inline BOOL IsPlayerPressingHorn(Player player) { return _i(0xFA1E2BF8B10598F9, player); } // 0xfa1e2bf8b10598f90xed1d1662B323 - // Flags: - // SPC_AMBIENT_SCRIPT = (1 << 1), - // SPC_CLEAR_TASKS = (1 << 2), - // SPC_REMOVE_FIRES = (1 << 3), - // SPC_REMOVE_EXPLOSIONS = (1 << 4), - // SPC_REMOVE_PROJECTILES = (1 << 5), - // SPC_DEACTIVATE_GADGETS = (1 << 6), - // SPC_REENABLE_CONTROL_ON_DEATH = (1 << 7), - // SPC_LEAVE_CAMERA_CONTROL_ON = (1 << 8), - // SPC_ALLOW_PLAYER_DAMAGE = (1 << 9), - // SPC_DONT_STOP_OTHER_CARS_AROUND_PLAYER = (1 << 10), - // SPC_PREVENT_EVERYBODY_BACKOFF = (1 << 11), - // SPC_ALLOW_PAD_SHAKE = (1 << 12) - // - // See: https://alloc8or.re/gta5/doc/enums/eSetPlayerControlFlag.txt - inline Void SetPlayerControl(Player player, BOOL bHasControl, int flags) { return _i(0x8D32347D6D4C40A2, player, bHasControl, flags); } // 0x8d32347d6d4c40a20xd17afcd8B323 - inline int GetPlayerWantedLevel(Player player) { return _i(0xE28E54788CE8F12D, player); } // 0xe28e54788ce8f12d0xbdcdd163B323 - inline Void SetMaxWantedLevel(int maxWantedLevel) { return _i(0xAA5F02DB48D704B9, maxWantedLevel); } // 0xaa5f02db48d704b90x665a06f5B323 - // If toggle is set to false: - // The police won't be shown on the (mini)map - // - // If toggle is set to true: - // The police will be shown on the (mini)map - inline Void SetPoliceRadarBlips(BOOL toggle) { return _i(0x43286D561B72B8BF, toggle); } // 0x43286d561b72b8bf0x8e114b10B323 - // The player will be ignored by the police if toggle is set to true - inline Void SetPoliceIgnorePlayer(Player player, BOOL toggle) { return _i(0x32C62AA929C2DA6A, player, toggle); } // 0x32c62aa929c2da6a0xe6de71b7B323 - // Checks whether the specified player has a Ped, the Ped is not dead, is not injured and is not arrested. - inline BOOL IsPlayerPlaying(Player player) { return _i(0x5E9564D8246B909A, player); } // 0x5e9564d8246b909a0xe15d777fB323 - inline Void SetEveryoneIgnorePlayer(Player player, BOOL toggle) { return _i(0x8EEDA153AD141BA4, player, toggle); } // 0x8eeda153ad141ba40xc915285eB323 - inline Void SetAllRandomPedsFlee(Player player, BOOL toggle) { return _i(0x056E0FE8534C2949, player, toggle); } // 0x056e0fe8534c29490x49eae968B323 - inline Void SetAllRandomPedsFleeThisFrame(Player player) { return _i(0x471D2FF42A94B4F2, player); } // 0x471d2ff42a94b4f20xbf974891B323 - inline Void SetAllNeutralRandomPedsFlee(Player player, BOOL toggle) { return _i(0xDE45D1A1EF45EE61, player, toggle); } // 0xde45d1a1ef45ee610x274631feB323 - // - This is called after SetAllRandomPedsFleeThisFrame - // - inline Void SetAllNeutralRandomPedsFleeThisFrame(Player player) { return _i(0xC3376F42B1FACCC6, player); } // 0xc3376f42b1faccc60x02df7af4B323 - inline Void SetLawPedsCanAttackNonWantedPlayerThisFrame(Player player) { return _i(0xFAC75988A7D078D3, player); } // 0xfac75988a7d078d3B463 - inline Void SetIgnoreLowPriorityShockingEvents(Player player, BOOL toggle) { return _i(0x596976B02B6B5700, player, toggle); } // 0x596976b02b6b57000xa3d675edB323 - inline Void SetWantedLevelMultiplier(float multiplier) { return _i(0x020E5F00CDA207BA, multiplier); } // 0x020e5f00cda207ba0x1359292fB323 - // Max value is 1.0 - inline Void SetWantedLevelDifficulty(Player player, float difficulty) { return _i(0x9B0BB33B04405E7A, player, difficulty); } // 0x9b0bb33b04405e7a0xb552626cB323 - inline Void ResetWantedLevelDifficulty(Player player) { return _i(0xB9D0DD990DC141DD, player); } // 0xb9d0dd990dc141dd0xa64c378dB323 - inline int GetWantedLevelTimeToEscape() { return _i(0xA72200F51875FEA4); } // 0xa72200f51875fea4B2372 - inline Void SetWantedLevelHiddenEscapeTime(Player player, int wantedLevel, int lossTime) { return _i(0x49B856B1360C47C7, player, wantedLevel, lossTime); } // 0x49b856b1360c47c7B2060 - inline Void ResetWantedLevelHiddenEscapeTime(Player player) { return _i(0x823EC8E82BA45986, player); } // 0x823ec8e82ba45986B2060 - inline Void StartFiringAmnesty(int duration) { return _i(0xBF9BD71691857E48, duration); } // 0xbf9bd71691857e480x5f8a22a6B323 - // PLAYER::ReportCrime(PLAYER::PlayerId(), 37, PLAYER::GetWantedLevelThreshold(1)); - // - // From am_armybase.ysc.c4: - // - // PLAYER::ReportCrime(PLAYER::PlayerId(4), 36, PLAYER::GetWantedLevelThreshold(4)); - // - // ----- - // - // This was taken from the GTAV.exe v1.334. The function is called sub_140592CE8. For a full decompilation of the function, see here: https://pastebin.com/09qSMsN7 - // - // ----- - // crimeType: - // 1: Firearms possession - // 2: Person running a red light ("5-0-5") - // 3: Reckless driver - // 4: Speeding vehicle (a "5-10") - // 5: Traffic violation (a "5-0-5") - // 6: Motorcycle rider without a helmet - // 7: Vehicle theft (a "5-0-3") - // 8: Grand Theft Auto - // 9: ??? - // 10: ??? - // 11: Assault on a civilian (a "2-40") - // 12: Assault on an officer - // 13: Assault with a deadly weapon (a "2-45") - // 14: Officer shot (a "2-45") - // 15: Pedestrian struck by a vehicle - // 16: Officer struck by a vehicle - // 17: Helicopter down (an "AC"?) - // 18: Civilian on fire (a "2-40") - // 19: Officer set on fire (a "10-99") - // 20: Car on fire - // 21: Air unit down (an "AC"?) - // 22: An explosion (a "9-96") - // 23: A stabbing (a "2-45") (also something else I couldn't understand) - // 24: Officer stabbed (also something else I couldn't understand) - // 25: Attack on a vehicle ("MDV"?) - // 26: Damage to property - // 27: Suspect threatening officer with a firearm - // 28: Shots fired - // 29: ??? - // 30: ??? - // 31: ??? - // 32: ??? - // 33: ??? - // 34: A "2-45" - // 35: ??? - // 36: A "9-25" - // 37: ??? - // 38: ??? - // 39: ??? - // 40: ??? - // 41: ??? - // 42: ??? - // 43: Possible disturbance - // 44: Civilian in need of assistance - // 45: ??? - // 46: ??? - inline Void ReportCrime(Player player, int crimeType, int wantedLvlThresh) { return _i(0xE9B09589827545E7, player, crimeType, wantedLvlThresh); } // 0xe9b09589827545e70xd8eb3a44B323 - // crimeType: see ReportCrime - inline Void SuppressCrimeThisFrame(Player player, int crimeType) { return _i(0x9A987297ED8BD838, player, crimeType); } // 0x9a987297ed8bd8380x59b5c2a2B323 - // This native is used in both singleplayer and multiplayer scripts. - // - // Always used like this in scripts - // PLAYER::UpdateWantedPositionThisFrame(PLAYER::PlayerId()); - inline Void UpdateWantedPositionThisFrame(Player player) { return _i(0xBC9490CA15AEA8FB, player); } // 0xbc9490ca15aea8fb0x6b34a160B323 - // This has been found in use in the decompiled files. - inline Void SuppressLosingWantedLevelIfHiddenThisFrame(Player player) { return _i(0x4669B3ED80F24B4E, player); } // 0x4669b3ed80f24b4e0xb9fb142fB323 - inline Void AllowEvasionHudIfDisablingHiddenEvasionThisFrame(Player player, Any p1) { return _i(0x2F41A3BAE005E5FA, player, p1); } // 0x2f41a3bae005e5faB372 - // This has been found in use in the decompiled files. - inline Void ForceStartHiddenEvasion(Player player) { return _i(0xAD73CE5A09E42D12, player); } // 0xad73ce5a09e42d120x85725848B323 - inline Void SuppressWitnessesCallingPoliceThisFrame(Player player) { return _i(0x36F1B38855F2A8DF, player); } // 0x36f1b38855f2a8df0x3a7e5fb6B323 - inline Void ReportPoliceSpottedPlayer(Player player) { return _i(0xDC64D2C53493ED12, player); } // 0xdc64d2c53493ed120xd15c4b1cB323 - // PLAYER::SetLawResponseDelayOverride(rPtr((&l_122) + 71)); // Found in decompilation - // - // *** - // - // In "am_hold_up.ysc" used once: - // - // l_8d._f47 = MISC::GetRandomFloatInRange(18.0, 28.0); - // PLAYER::SetLawResponseDelayOverride((l_8d._f47)); - inline Void SetLawResponseDelayOverride(float p0) { return _i(0xB45EFF719D8427A6, p0); } // 0xb45eff719d8427a60xbf6993c7B323 - // 2 matches in 1 script - am_hold_up - // - // Used in multiplayer scripts? - inline Void ResetLawResponseDelayOverride() { return _i(0x0032A6DBA562C518); } // 0x0032a6dba562c5180x47cab814B323 - inline BOOL CanPlayerStartMission(Player player) { return _i(0xDE7465A27D403C06, player); } // 0xde7465a27d403c060x39e3cb3fB323 - inline BOOL IsPlayerReadyForCutscene(Player player) { return _i(0x908CBECC2CAA3690, player); } // 0x908cbecc2caa36900xbb77e9cdB323 - inline BOOL IsPlayerTargettingEntity(Player player, Entity entity) { return _i(0x7912F7FC4F6264B6, player, entity); } // 0x7912f7fc4f6264b60xf3240b77B323 - // Assigns the handle of locked-on melee target to *entity that you pass it. - // Returns false if no entity found. - inline BOOL GetPlayerTargetEntity(Player player, Entity* entity) { return _i(0x13EDE1A5DBF797C9, player, entity); } // 0x13ede1a5dbf797c90xf6aaa2d7B323 - // Gets a value indicating whether the specified player is currently aiming freely. - inline BOOL IsPlayerFreeAiming(Player player) { return _i(0x2E397FD2ECD37C87, player); } // 0x2e397fd2ecd37c870x1dec67b7B323 - // Gets a value indicating whether the specified player is currently aiming freely at the specified entity. - inline BOOL IsPlayerFreeAimingAtEntity(Player player, Entity entity) { return _i(0x3C06B5C839B38F7B, player, entity); } // 0x3c06b5c839b38f7b0x7d80eeaaB323 - // Returns TRUE if it found an entity in your crosshair within range of your weapon. Assigns the handle of the target to the *entity that you pass it. - // Returns false if no entity found. - inline BOOL GetEntityPlayerIsFreeAimingAt(Player player, Entity* entity) { return _i(0x2975C866E6713290, player, entity); } // 0x2975c866e67132900x8866d9d0B323 - // Affects the range of auto aim target. - inline Void SetPlayerLockonRangeOverride(Player player, float range) { return _i(0x29961D490E5814FD, player, range); } // 0x29961d490e5814fd0x74d42c03B323 - // Set whether this player should be able to do drive-bys. - // - // "A drive-by is when a ped is aiming/shooting from vehicle. This includes middle finger taunts. By setting this value to false I confirm the player is unable to do all that. Tested on tick." - // - inline Void SetPlayerCanDoDriveBy(Player player, BOOL toggle) { return _i(0x6E8834B52EC20C77, player, toggle); } // 0x6e8834b52ec20c770xf4d99685B323 - // Sets whether this player can be hassled by gangs. - inline Void SetPlayerCanBeHassledByGangs(Player player, BOOL toggle) { return _i(0xD5E460AD7020A246, player, toggle); } // 0xd5e460ad7020a2460x71b305bbB323 - // Sets whether this player can take cover. - inline Void SetPlayerCanUseCover(Player player, BOOL toggle) { return _i(0xD465A8599DFF6814, player, toggle); } // 0xd465a8599dff68140x13cafafaB323 - // Gets the maximum wanted level the player can get. - // Ranges from 0 to 5. - inline int GetMaxWantedLevel() { return _i(0x462E0DB9B137DC5F); } // 0x462e0db9b137dc5f0x457f1e44B323 - inline BOOL IsPlayerTargettingAnything(Player player) { return _i(0x78CFE51896B6B8A4, player); } // 0x78cfe51896b6b8a40x456db50dB323 - inline Void SetPlayerSprint(Player player, BOOL toggle) { return _i(0xA01B8075D8B92DF4, player, toggle); } // 0xa01b8075d8b92df40x7dd7900cB323 - inline Void ResetPlayerStamina(Player player) { return _i(0xA6F312FCCE9C1DFE, player); } // 0xa6f312fcce9c1dfe0xc0445a9cB323 - inline Void RestorePlayerStamina(Player player, float p1) { return _i(0xA352C1B864CAFD33, player, p1); } // 0xa352c1b864cafd330x62a93608B323 - inline float GetPlayerSprintStaminaRemaining(Player player) { return _i(0x3F9F16F8E65A7ED7, player); } // 0x3f9f16f8e65a7ed70x47017c90B323 - inline float GetPlayerSprintTimeRemaining(Player player) { return _i(0x1885BC9B108B4C99, player); } // 0x1885bc9b108b4c990x40e80543B323 - inline float GetPlayerUnderwaterTimeRemaining(Player player) { return _i(0xA1FCF8E6AF40B731, player); } // 0xa1fcf8e6af40b7310x1317125aB323 - inline float SetPlayerUnderwaterBreathPercentRemaining(Player player, float time) { return _i(0xA0D3E4F7AAFB7E78, player, time); } // 0xa0d3e4f7aafb7e78B757 - // Returns the group ID the player is member of. - inline int GetPlayerGroup(Player player) { return _i(0x0D127585F77030AF, player); } // 0x0d127585f77030af0xa5edcde8B323 - inline int GetPlayerMaxArmour(Player player) { return _i(0x92659B4CE1863CB3, player); } // 0x92659b4ce1863cb30x02a50657B323 - // Can the player control himself, used to disable controls for player for things like a cutscene. - // - // --- - // - // You can't disable controls with this, use SetPlayerControl(...) for this. - inline BOOL IsPlayerControlOn(Player player) { return _i(0x49C32D60007AFA47, player); } // 0x49c32d60007afa470x618857f2B323 - // Returns true when the player is not able to control the cam i.e. when running a benchmark test, switching the player or viewing a cutscene. - // - // Note: I am not 100% sure if the native actually checks if the cam control is disabled but it seems promising. - inline BOOL GetAreCameraControlsDisabled() { return _i(0x7C814D2FB49F40C0); } // 0x7c814d2fb49f40c0B323 - inline BOOL IsPlayerScriptControlOn(Player player) { return _i(0x8A876A65283DD7D7, player); } // 0x8a876a65283dd7d70x61b00a84B323 - // Returns TRUE if the player ('s ped) is climbing at the moment. - inline BOOL IsPlayerClimbing(Player player) { return _i(0x95E8F73DC65EFB9C, player); } // 0x95e8f73dc65efb9c0x4a9e9ae0B323 - // Return true while player is being arrested / busted. - // - // If atArresting is set to 1, this function will return 1 when player is being arrested (while player is putting his hand up, but still have control) - // - // If atArresting is set to 0, this function will return 1 only when the busted screen is shown. - inline BOOL IsPlayerBeingArrested(Player player, BOOL atArresting) { return _i(0x388A47C51ABDAC8E, player, atArresting); } // 0x388a47c51abdac8e0x7f6a60d3B323 - inline Void ResetPlayerArrestState(Player player) { return _i(0x2D03E13C460760D6, player); } // 0x2d03e13c460760d60x453c7cabB323 - // Alternative: GetVehiclePedIsIn(PlayerPedId(), 1); - inline Vehicle GetPlayersLastVehicle() { return _i(0xB6997A7EB3F5C8C0); } // 0xb6997a7eb3f5c8c00xe2757ac1B323 - // Returns the same as PlayerId and NetworkPlayerIdToInt - inline Player GetPlayerIndex() { return _i(0xA5EDC40EF369B48D); } // 0xa5edc40ef369b48d0x309bbdc1B323 - // Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - inline Player IntToPlayerindex(int value) { return _i(0x41BD2A6B006AF756, value); } // 0x41bd2a6b006af7560x98dd98f1B323 - // Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - // -------------------------------------------------------- - // if (NETWORK::NetworkIsParticipantActive(PLAYER::IntToParticipantindex(i))) - // - inline int IntToParticipantindex(int value) { return _i(0x9EC6603812C24710, value); } // 0x9ec6603812c247100x98f3b274B323 - inline int GetTimeSincePlayerHitVehicle(Player player) { return _i(0x5D35ECF3A81A0EE0, player); } // 0x5d35ecf3a81a0ee00x6e9b8b9eB323 - inline int GetTimeSincePlayerHitPed(Player player) { return _i(0xE36A25322DC35F42, player); } // 0xe36a25322dc35f420xb6209195B323 - inline int GetTimeSincePlayerDroveOnPavement(Player player) { return _i(0xD559D2BE9E37853B, player); } // 0xd559d2be9e37853b0x8836e732B323 - inline int GetTimeSincePlayerDroveAgainstTraffic(Player player) { return _i(0xDB89591E290D9182, player); } // 0xdb89591e290d91820x9f27d00eB323 - inline BOOL IsPlayerFreeForAmbientTask(Player player) { return _i(0xDCCFD3F106C36AB4, player); } // 0xdccfd3f106c36ab40x85c7e232B323 - // This returns YOUR 'identity' as a Player type. - // - // Always returns 0 in story mode. - inline Player PlayerId() { return _i(0x4F8644AF03D0E0D6); } // 0x4f8644af03d0e0d60x8aea886cB323 - // Returns current player ped - inline Ped PlayerPedId() { return _i(0xD80958FC74E988A6); } // 0xd80958fc74e988a60xfa92e226B323 - // Does exactly the same thing as PlayerId() - inline int NetworkPlayerIdToInt() { return _i(0xEE68096F9F37341E); } // 0xee68096f9f37341e0x8dd5b838B323 - inline BOOL HasForceCleanupOccurred(int cleanupFlags) { return _i(0xC968670BFACE42D9, cleanupFlags); } // 0xc968670bface42d90x4b37333cB323 - // used with 1,2,8,64,128 in the scripts - inline Void ForceCleanup(int cleanupFlags) { return _i(0xBC8983F38F78ED51, cleanupFlags); } // 0xbc8983f38f78ed510xfdaaea2bB323 - // PLAYER::ForceCleanupForAllThreadsWithThisName("pb_prostitute", 1); // Found in decompilation - inline Void ForceCleanupForAllThreadsWithThisName(String name, int cleanupFlags) { return _i(0x4C68DDDDF0097317, name, cleanupFlags); } // 0x4c68ddddf00973170x04256c73B323 - inline Void ForceCleanupForThreadWithThisId(int id, int cleanupFlags) { return _i(0xF745B37630DF176B, id, cleanupFlags); } // 0xf745b37630df176b0x882d3eb3B323 - inline int GetCauseOfMostRecentForceCleanup() { return _i(0x9A41CF4674A12272); } // 0x9a41cf4674a122720x39aa9fc8B323 - inline Void SetPlayerMayOnlyEnterThisVehicle(Player player, Vehicle vehicle) { return _i(0x8026FF78F208978A, player, vehicle); } // 0x8026ff78f208978a0xa454dd29B323 - inline Void SetPlayerMayNotEnterAnyVehicle(Player player) { return _i(0x1DE37BBF9E9CC14A, player); } // 0x1de37bbf9e9cc14a0xaf7afcc4B323 - // 1 - Welcome to Los Santos - // 2 - A Friendship Resurrected - // 3 - A Fair Day's Pay - // 4 - The Moment of Truth - // 5 - To Live or Die in Los Santos - // 6 - Diamond Hard - // 7 - Subversive - // 8 - Blitzed - // 9 - Small Town, Big Job - // 10 - The Government Gimps - // 11 - The Big One! - // 12 - Solid Gold, Baby! - // 13 - Career Criminal - // 14 - San Andreas Sightseer - // 15 - All's Fare in Love and War - // 16 - TP Industries Arms Race - // 17 - Multi-Disciplined - // 18 - From Beyond the Stars - // 19 - A Mystery, Solved - // 20 - Waste Management - // 21 - Red Mist - // 22 - Show Off - // 23 - Kifflom! - // 24 - Three Man Army - // 25 - Out of Your Depth - // 26 - Altruist Acolyte - // 27 - A Lot of Cheddar - // 28 - Trading Pure Alpha - // 29 - Pimp My Sidearm - // 30 - Wanted: Alive Or Alive - // 31 - Los Santos Customs - // 32 - Close Shave - // 33 - Off the Plane - // 34 - Three-Bit Gangster - // 35 - Making Moves - // 36 - Above the Law - // 37 - Numero Uno - // 38 - The Midnight Club - // 39 - Unnatural Selection - // 40 - Backseat Driver - // 41 - Run Like The Wind - // 42 - Clean Sweep - // 43 - Decorated - // 44 - Stick Up Kid - // 45 - Enjoy Your Stay - // 46 - Crew Cut - // 47 - Full Refund - // 48 - Dialling Digits - // 49 - American Dream - // 50 - A New Perspective - // 51 - Be Prepared - // 52 - In the Name of Science - // 53 - Dead Presidents - // 54 - Parole Day - // 55 - Shot Caller - // 56 - Four Way - // 57 - Live a Little - // 58 - Can't Touch This - // 59 - Mastermind - // 60 - Vinewood Visionary - // 61 - Majestic - // 62 - Humans of Los Santos - // 63 - First Time Director - // 64 - Animal Lover - // 65 - Ensemble Piece - // 66 - Cult Movie - // 67 - Location Scout - // 68 - Method Actor - // 69 - Cryptozoologist - // 70 - Getting Started - // 71 - The Data Breaches - // 72 - The Bogdan Problem - // 73 - The Doomsday Scenario - // 74 - A World Worth Saving - // 75 - Orbital Obliteration - // 76 - Elitist - // 77 - Masterminds - inline BOOL GiveAchievementToPlayer(int achievementId) { return _i(0xBEC7076D64130195, achievementId); } // 0xbec7076d641301950x822bc992B323 - // For Steam. - // Does nothing and always returns false in the retail version of the game. - inline BOOL SetAchievementProgress(int achievementId, int progress) { return _i(0xC2AFFFDABBDC2C5C, achievementId, progress); } // 0xc2afffdabbdc2c5cB323 - // For Steam. - // Always returns 0 in retail version of the game. - inline int GetAchievementProgress(int achievementId) { return _i(0x1C186837D0619335, achievementId); } // 0x1c186837d0619335B323 - // See GiveAchievementToPlayer - inline BOOL HasAchievementBeenPassed(int achievementId) { return _i(0x867365E111A3B6EB, achievementId); } // 0x867365e111a3b6eb0x136a5be9B323 - // Returns TRUE if the game is in online mode and FALSE if in offline mode. - // - // This is an alias for NetworkIsSignedOnline. - inline BOOL IsPlayerOnline() { return _i(0xF25D331DC2627BBC); } // 0xf25d331dc2627bbc0x9fab6729B323 - // this function is hard-coded to always return 0. - inline BOOL IsPlayerLoggingInNp() { return _i(0x74556E1420867ECA); } // 0x74556e1420867eca0x8f72fad0B323 - // Purpose of the BOOL currently unknown. - // Both, true and false, work - inline Void DisplaySystemSigninUi(BOOL p0) { return _i(0x94DD7888C10A979E, p0); } // 0x94dd7888c10a979e0x4264ced2B323 - inline BOOL IsSystemUiBeingDisplayed() { return _i(0x5D511E3867C87139); } // 0x5d511e3867c871390xe495b6daB323 - // Simply sets you as invincible (Health will not deplete). - // - // Use 0x733A643B5B0C53C1 instead if you want Ragdoll enabled, which is equal to: - // *(DWORD *)(playerPedAddress + 0x188) |= (1 << 9); - inline Void SetPlayerInvincible(Player player, BOOL toggle) { return _i(0x239528EACDC3E7DE, player, toggle); } // 0x239528eacdc3e7de0xdfb9a2a2B323 - // Returns the Player's Invincible status. - // - // This function will always return false if 0x733A643B5B0C53C1 is used to set the invincibility status. To always get the correct result, use this: - // - // bool IsPlayerInvincible(Player player) - // { - // auto addr = getScriptHandleBaseAddress(GetPlayerPed(player)); - // - // if (addr) - // { - // DWORD flag = *(DWORD *)(addr + 0x188); - // return ((flag & (1 << 8)) != 0) || ((flag & (1 << 9)) != 0); - // } - // - // return false; - // } - // - // - inline BOOL GetPlayerInvincible(Player player) { return _i(0xB721981B2B939E07, player); } // 0xb721981b2b939e070x680c90eeB323 - // Always returns false. - inline BOOL GetPlayerDebugInvincible(Player player) { return _i(0xDCC07526B8EC45AF, player); } // 0xdcc07526b8ec45afB1868 - inline Void SetPlayerInvincibleButHasReactions(Player player, BOOL toggle) { return _i(0x6BC97F4F4BB3C04B, player, toggle); } // 0x6bc97f4f4bb3c04bB463 - inline Void SetPlayerCanCollectDroppedMoney(Player player, BOOL p1) { return _i(0xCAC57395B151135F, player, p1); } // 0xcac57395b151135f0x00563e0dB323 - inline Void RemovePlayerHelmet(Player player, BOOL p2) { return _i(0xF3AC26D3CC576528, player, p2); } // 0xf3ac26d3cc5765280x6255f3b4B323 - inline Void GivePlayerRagdollControl(Player player, BOOL toggle) { return _i(0x3C49C870E66F0A28, player, toggle); } // 0x3c49c870e66f0a280xc7b4d7acB323 - // Example from fm_mission_controler.ysc.c4: - // - // PLAYER::SetPlayerLockon(PLAYER::PlayerId(), 1); - // - // All other decompiled scripts using this seem to be using the player id as the first parameter, so I feel the need to confirm it as so. - // - // No need to confirm it says PlayerId() so it uses PlayerId() lol. - inline Void SetPlayerLockon(Player player, BOOL toggle) { return _i(0x5C8B2F450EE4328E, player, toggle); } // 0x5c8b2f450ee4328e0x0b270e0fB323 - // Sets your targeting mode. - // 0 = Assisted Aim - Full - // 1 = Assisted Aim - Partial - // 2 = Free Aim - Assisted - // 3 = Free Aim - inline Void SetPlayerTargetingMode(int targetMode) { return _i(0xB1906895227793F3, targetMode); } // 0xb1906895227793f30x61cae253B323 - inline Void SetPlayerTargetLevel(int targetLevel) { return _i(0x5702B917B99DB1CD, targetLevel); } // 0x5702b917b99db1cd0x772da539B323 - // Returns profile setting 237. - inline BOOL GetIsUsingFpsThirdPersonCover() { return _i(0xB9CF1F793A9F1BF1); } // 0xb9cf1f793a9f1bf1B323 - // Returns profile setting 243. - inline BOOL GetIsUsingHoodCamera() { return _i(0xCB645E85E97EA48B); } // 0xcb645e85e97ea48bB372 - inline Void ClearPlayerHasDamagedAtLeastOnePed(Player player) { return _i(0xF0B67A4DE6AB5F98, player); } // 0xf0b67a4de6ab5f980x1d31cbbdB323 - inline BOOL HasPlayerDamagedAtLeastOnePed(Player player) { return _i(0x20CE80B0C2BF4ACC, player); } // 0x20ce80b0c2bf4acc0x14f52453B323 - inline Void ClearPlayerHasDamagedAtLeastOneNonAnimalPed(Player player) { return _i(0x4AACB96203D11A31, player); } // 0x4aacb96203d11a310x7e3bfbc5B323 - inline BOOL HasPlayerDamagedAtLeastOneNonAnimalPed(Player player) { return _i(0xE4B90F367BD81752, player); } // 0xe4b90f367bd817520xa3707dfcB323 - // This can be between 1.0f - 14.9f - // - // You can change the max in IDA from 15.0. I say 15.0 as the function blrs if what you input is greater than or equal to 15.0 hence why it's 14.9 max default. - // - // - inline Void SetAirDragMultiplierForPlayersVehicle(Player player, float multiplier) { return _i(0xCA7DC8329F0A1E9E, player, multiplier); } // 0xca7dc8329f0a1e9e0xf20f72e5B323 - // Swim speed multiplier. - // Multiplier goes up to 1.49 - // - // Just call it one time, it is not required to be called once every tick. - Note copied from below native. - // - // Note: At least the IDA method if you change the max float multiplier from 1.5 it will change it for both this and RUN_SPRINT below. I say 1.5 as the function blrs if what you input is greater than or equal to 1.5 hence why it's 1.49 max default. - inline Void SetSwimMultiplierForPlayer(Player player, float multiplier) { return _i(0xA91C6F0FF7D16A13, player, multiplier); } // 0xa91c6f0ff7d16a130xb986ff47B323 - // Multiplier goes up to 1.49 any value above will be completely overruled by the game and the multiplier will not take effect, this can be edited in memory however. - // - // Just call it one time, it is not required to be called once every tick. - // - // Note: At least the IDA method if you change the max float multiplier from 1.5 it will change it for both this and SWIM above. I say 1.5 as the function blrs if what you input is greater than or equal to 1.5 hence why it's 1.49 max default. - inline Void SetRunSprintMultiplierForPlayer(Player player, float multiplier) { return _i(0x6DB47AA77FD94E09, player, multiplier); } // 0x6db47aa77fd94e090x825423c2B323 - // Returns the time since the character was arrested in (ms) milliseconds. - // - // example - // - // var time = Function.call(Hash.GetTimeSinceLastArrest(); - // - // UI.DrawSubtitle(time.ToString()); - // - // if player has not been arrested, the int returned will be -1. - inline int GetTimeSinceLastArrest() { return _i(0x5063F92F07C2A316); } // 0x5063f92f07c2a3160x62824ef4B323 - // Returns the time since the character died in (ms) milliseconds. - // - // example - // - // var time = Function.call(Hash.GetTimeSinceLastDeath(); - // - // UI.DrawSubtitle(time.ToString()); - // - // if player has not died, the int returned will be -1. - inline int GetTimeSinceLastDeath() { return _i(0xC7034807558DDFCA); } // 0xc7034807558ddfca0x24bc5ac0B323 - inline Void AssistedMovementCloseRoute() { return _i(0xAEBF081FFC0A0E5E); } // 0xaebf081ffc0a0e5e0xf23277f3B323 - inline Void AssistedMovementFlushRoute() { return _i(0x8621390F0CDCFE1F); } // 0x8621390f0cdcfe1f0xd04568b9B323 - inline Void SetPlayerForcedAim(Player player, BOOL toggle) { return _i(0x0FEE4F80AC44A726, player, toggle); } // 0x0fee4f80ac44a7260x94e42e2eB323 - inline Void SetPlayerForcedZoom(Player player, BOOL toggle) { return _i(0x75E7D505F2B15902, player, toggle); } // 0x75e7d505f2b159020xb0c576cbB323 - inline Void SetPlayerForceSkipAimIntro(Player player, BOOL toggle) { return _i(0x7651BC64AE59E128, player, toggle); } // 0x7651bc64ae59e1280x374f42f0B323 - // Inhibits the player from using any method of combat including melee and firearms. - // - // NOTE: Only disables the firing for one frame - inline Void DisablePlayerFiring(Player player, BOOL toggle) { return _i(0x5E6CC07646BBEAB8, player, toggle); } // 0x5e6cc07646bbeab80x30cb28cbB323 - // Used only once in R* scripts (freemode.ysc). - inline Void DisablePlayerThrowGrenadeWhileUsingGun() { return _i(0xB885852C39CC265D); } // 0xb885852c39cc265dB323 - inline Void SetDisableAmbientMeleeMove(Player player, BOOL toggle) { return _i(0x2E8AABFA40A84F8C, player, toggle); } // 0x2e8aabfa40a84f8c0xccd937e7B323 - // Default is 100. Use player id and not ped id. For instance: PLAYER::SetPlayerMaxArmour(PLAYER::PlayerId(), 100); // main_persistent.ct4 - inline Void SetPlayerMaxArmour(Player player, int value) { return _i(0x77DFCCF5948B8C71, player, value); } // 0x77dfccf5948b8c710xc6c3c53bB323 - // p1 is always 0 in the scripts - inline Void SpecialAbilityActivate(Player player, int p1) { return _i(0x821FDC827D6F4090, player, p1); } // 0x821fdc827d6f4090B678 - inline Void SetSpecialAbilityMp(Player player, int p1, Any p2) { return _i(0xB214D570EAD7F81A, player, p1, p2); } // 0xb214d570ead7f81aB678 - // p1 is always 0 in the scripts - inline Void SpecialAbilityDeactivateMp(Player player, int p1) { return _i(0x17F7471EACA78290, player, p1); } // 0x17f7471eaca78290B678 - inline Void SpecialAbilityDeactivate(Player player, Any p1) { return _i(0xD6A953C6D1492057, player, p1); } // 0xd6a953c6d14920570x80c2ab09B323 - inline Void SpecialAbilityDeactivateFast(Player player, Any p1) { return _i(0x9CB5CE07A3968D5A, player, p1); } // 0x9cb5ce07a3968d5a0x0751908aB323 - inline Void SpecialAbilityReset(Player player, Any p1) { return _i(0x375F0E738F861A94, player, p1); } // 0x375f0e738f861a940xa7d8bcd3B323 - inline Void SpecialAbilityChargeOnMissionFailed(Player player, Any p1) { return _i(0xC9A763D8FE87436A, player, p1); } // 0xc9a763d8fe87436a0x4136829aB323 - // Every occurrence of p1 & p2 were both true. - inline Void SpecialAbilityChargeSmall(Player player, BOOL p1, BOOL p2, Any p3) { return _i(0x2E7B9B683481687D, player, p1, p2, p3); } // 0x2e7b9b683481687d0x6f463f56B323 - // Only 1 match. Both p1 & p2 were true. - inline Void SpecialAbilityChargeMedium(Player player, BOOL p1, BOOL p2, Any p3) { return _i(0xF113E3AA9BC54613, player, p1, p2, p3); } // 0xf113e3aa9bc546130xab55d8f3B323 - // 2 matches. p1 was always true. - inline Void SpecialAbilityChargeLarge(Player player, BOOL p1, BOOL p2, Any p3) { return _i(0xF733F45FA4497D93, player, p1, p2, p3); } // 0xf733f45fa4497d930xf440c04dB323 - // p1 appears to always be 1 (only comes up twice) - inline Void SpecialAbilityChargeContinuous(Player player, Ped p1, Any p2) { return _i(0xED481732DFF7E997, player, p1, p2); } // 0xed481732dff7e9970x5fee98a2B323 - // p1 appears as 5, 10, 15, 25, or 30. p2 is always true. - inline Void SpecialAbilityChargeAbsolute(Player player, int p1, BOOL p2, Any p3) { return _i(0xB7B0870EB531D08D, player, p1, p2, p3); } // 0xb7b0870eb531d08d0x72429998B323 - // - // normalizedValue is from 0.0 - 1.0 - // p2 is always 1 - inline Void SpecialAbilityChargeNormalized(Player player, float normalizedValue, BOOL p2, Any p3) { return _i(0xA0696A65F009EE18, player, normalizedValue, p2, p3); } // 0xa0696a65f009ee180x8c7e68c1B323 - // Also known as _RECHARGE_SPECIAL_ABILITY - inline Void SpecialAbilityFillMeter(Player player, BOOL p1, Any p2) { return _i(0x3DACA8DDC6FD4980, player, p1, p2); } // 0x3daca8ddc6fd49800xb71589daB323 - // p1 was always true. - inline Void SpecialAbilityDepleteMeter(Player player, BOOL p1, Any p2) { return _i(0x1D506DBBBC51E64B, player, p1, p2); } // 0x1d506dbbbc51e64b0x9f80f6dfB323 - inline Void SpecialAbilityLock(Hash playerModel, Any p1) { return _i(0x6A09D0D590A47D13, playerModel, p1); } // 0x6a09d0d590a47d130x1b7bb388B323 - inline Void SpecialAbilityUnlock(Hash playerModel, Any p1) { return _i(0xF145F3BE2EFA9A3B, playerModel, p1); } // 0xf145f3be2efa9a3b0x1fdb2919B323 - inline BOOL IsSpecialAbilityUnlocked(Hash playerModel) { return _i(0xC6017F6A6CDFA694, playerModel); } // 0xc6017f6a6cdfa6940xc9c75e82B323 - inline BOOL IsSpecialAbilityActive(Player player, Any p1) { return _i(0x3E5F7FC85D854E15, player, p1); } // 0x3e5f7fc85d854e150x1b17e334B323 - inline BOOL IsSpecialAbilityMeterFull(Player player, Any p1) { return _i(0x05A1FE504B7F2587, player, p1); } // 0x05a1fe504b7f25870x2e19d7f6B323 - inline Void EnableSpecialAbility(Player player, BOOL toggle, Any p2) { return _i(0x181EC197DAEFE121, player, toggle, p2); } // 0x181ec197daefe1210xc86c1b4eB323 - inline BOOL IsSpecialAbilityEnabled(Player player, Any p1) { return _i(0xB1D200FE26AEF3CB, player, p1); } // 0xb1d200fe26aef3cb0xc01238ccB323 - inline Void SetSpecialAbilityMultiplier(float multiplier) { return _i(0xA49C426ED0CA4AB7, multiplier); } // 0xa49c426ed0ca4ab70xff1bc556B323 - inline Void UpdateSpecialAbilityFromStat(Player player, Any p1) { return _i(0xFFEE8FA29AB9A18E, player, p1); } // 0xffee8fa29ab9a18e0x5d0fe25bB323 - // Appears once in "re_dealgonewrong" - inline BOOL GetIsPlayerDrivingOnHighway(Player player) { return _i(0x5FC472C501CCADB3, player); } // 0x5fc472c501ccadb30x46e7e31dB323 - // Only 1 occurrence. p1 was 2. - inline BOOL GetIsPlayerDrivingWreckless(Player player, int p1) { return _i(0xF10B44FD479D69F3, player, p1); } // 0xf10b44fd479d69f30x1e359cc8B323 - // 2 occurrences in agency_heist3a. p1 was 0.7f then 0.4f. - inline BOOL GetIsMoppingAreaFreeInFrontOfPlayer(Player player, float p1) { return _i(0xDD2620B7B9D16FF1, player, p1); } // 0xdd2620b7b9d16ff10x8cb53c9fB323 - // `findCollisionLand`: This teleports the player to land when set to true and will not consider the Z coordinate parameter provided by you. It will automatically put the Z coordinate so that you don't fall from sky. - inline Void StartPlayerTeleport(Player player, float x, float y, float z, float heading, BOOL p5, BOOL findCollisionLand, BOOL p7) { return _i(0xAD15F075A4DA0FDE, player, x, y, z, heading, p5, findCollisionLand, p7); } // 0xad15f075a4da0fde0xc552e06cB323 - inline BOOL UpdatePlayerTeleport(Player player) { return _i(0xE23D5873C2394C61, player); } // 0xe23d5873c2394c61B323 - // Disables the player's teleportation - inline Void StopPlayerTeleport() { return _i(0xC449EDED9D73009C); } // 0xc449eded9d73009c0x86ab8dbbB323 - inline BOOL IsPlayerTeleportActive() { return _i(0x02B15662D7F8886F); } // 0x02b15662d7f8886f0x3a11d118B323 - inline float GetPlayerCurrentStealthNoise(Player player) { return _i(0x2F395D61F3A1F877, player); } // 0x2f395d61f3a1f8770xc3b02362B323 - // `regenRate`: The recharge multiplier, a value between 0.0 and 1.0. - // Use 1.0 to reset it back to normal - inline Void SetPlayerHealthRechargeMultiplier(Player player, float regenRate) { return _i(0x5DB660B38DD98A31, player, regenRate); } // 0x5db660b38dd98a310x45514731B323 - inline float GetPlayerHealthRechargeMaxPercent(Player player) { return _i(0x8BC515BAE4AAF8FF, player); } // 0x8bc515bae4aaf8ffB617 - inline Void SetPlayerHealthRechargeMaxPercent(Player player, float limit) { return _i(0xC388A0F065F5BC34, player, limit); } // 0xc388a0f065f5bc34B573 - // Needs to be called every frame. - inline Void DisablePlayerHealthRecharge(Player player) { return _i(0xBCB06442F7E52666, player); } // 0xbcb06442f7e52666B2802 - inline Void SetPlayerFallDistanceToTriggerRagdollOverride(Player player, float p1) { return _i(0xEFD79FA81DFBA9CB, player, p1); } // 0xefd79fa81dfba9cbB573 - // This modifies the damage value of your weapon. Whether it is a multiplier or base damage is unknown. - // - // Based on tests, it is unlikely to be a multiplier. - // - // modifier's min value is 0.1 - inline Void SetPlayerWeaponDamageModifier(Player player, float modifier) { return _i(0xCE07B9F7817AADA3, player, modifier); } // 0xce07b9f7817aada30xb02c2f39B323 - // modifier's min value is 0.1 - inline Void SetPlayerWeaponDefenseModifier(Player player, float modifier) { return _i(0x2D83BC011CA14A3C, player, modifier); } // 0x2d83bc011ca14a3c0xae446344B323 - // modifier's min value is 0.1 - inline Void SetPlayerWeaponMinigunDefenseModifier(Player player, float modifier) { return _i(0xBCFDE9EDE4CF27DC, player, modifier); } // 0xbcfde9ede4cf27dcB944 - // modifier's min value is 0.1 - inline Void SetPlayerMeleeWeaponDamageModifier(Player player, float modifier, BOOL p2) { return _i(0x4A3DC7ECCC321032, player, modifier, p2); } // 0x4a3dc7eccc3210320x362e69adB323 - // modifier's min value is 0.1 - inline Void SetPlayerMeleeWeaponDefenseModifier(Player player, float modifier) { return _i(0xAE540335B4ABC4E2, player, modifier); } // 0xae540335b4abc4e20x9f3d577fB323 - // modifier's min value is 0.1 - inline Void SetPlayerVehicleDamageModifier(Player player, float modifier) { return _i(0xA50E117CDDF82F0C, player, modifier); } // 0xa50e117cddf82f0c0x823eca63B323 - // modifier's min value is 0.1 - inline Void SetPlayerVehicleDefenseModifier(Player player, float modifier) { return _i(0x4C60E6EFDAFF2462, player, modifier); } // 0x4c60e6efdaff24620xa16626c7B323 - inline Void SetPlayerMaxExplosiveDamage(Player player, float p1) { return _i(0x8D768602ADEF2245, player, p1); } // 0x8d768602adef2245B463 - inline Void SetPlayerExplosiveDamageModifier(Player player, Any p1) { return _i(0xD821056B9ACF8052, player, p1); } // 0xd821056b9acf8052B1011 - inline Void SetPlayerWeaponTakedownDefenseModifier(Player player, float p1) { return _i(0x31E90B8873A4CD3B, player, p1); } // 0x31e90b8873a4cd3bB617 - // Tints: - // None = -1, - // Rainbow = 0, - // Red = 1, - // SeasideStripes = 2, - // WidowMaker = 3, - // Patriot = 4, - // Blue = 5, - // Black = 6, - // Hornet = 7, - // AirFocce = 8, - // Desert = 9, - // Shadow = 10, - // HighAltitude = 11, - // Airbone = 12, - // Sunrise = 13, - // - inline Void SetPlayerParachuteTintIndex(Player player, int tintIndex) { return _i(0xA3D0E54541D9A5E5, player, tintIndex); } // 0xa3d0e54541d9a5e50x8ea12edbB323 - // Tints: - // None = -1, - // Rainbow = 0, - // Red = 1, - // SeasideStripes = 2, - // WidowMaker = 3, - // Patriot = 4, - // Blue = 5, - // Black = 6, - // Hornet = 7, - // AirFocce = 8, - // Desert = 9, - // Shadow = 10, - // HighAltitude = 11, - // Airbone = 12, - // Sunrise = 13, - inline Void GetPlayerParachuteTintIndex(Player player, int* tintIndex) { return _i(0x75D3F7A1B0D9B145, player, tintIndex); } // 0x75d3f7a1b0d9b1450x432b0509B323 - // Tints: - // None = -1, - // Rainbow = 0, - // Red = 1, - // SeasideStripes = 2, - // WidowMaker = 3, - // Patriot = 4, - // Blue = 5, - // Black = 6, - // Hornet = 7, - // AirFocce = 8, - // Desert = 9, - // Shadow = 10, - // HighAltitude = 11, - // Airbone = 12, - // Sunrise = 13, - inline Void SetPlayerReserveParachuteTintIndex(Player player, int index) { return _i(0xAF04C87F5DC1DF38, player, index); } // 0xaf04c87f5dc1df380x70689638B323 - // Tints: - // None = -1, - // Rainbow = 0, - // Red = 1, - // SeasideStripes = 2, - // WidowMaker = 3, - // Patriot = 4, - // Blue = 5, - // Black = 6, - // Hornet = 7, - // AirFocce = 8, - // Desert = 9, - // Shadow = 10, - // HighAltitude = 11, - // Airbone = 12, - // Sunrise = 13, - inline Void GetPlayerReserveParachuteTintIndex(Player player, int* index) { return _i(0xD5A016BC3C09CF40, player, index); } // 0xd5a016bc3c09cf400x77b8ef01B323 - // tints 0- 13 - // 0 - unkown - // 1 - unkown - // 2 - unkown - // 3 - unkown - // 4 - unkown - inline Void SetPlayerParachutePackTintIndex(Player player, int tintIndex) { return _i(0x93B0FB27C9A04060, player, tintIndex); } // 0x93b0fb27c9a040600xd79d5d1bB323 - inline Void GetPlayerParachutePackTintIndex(Player player, int* tintIndex) { return _i(0x6E9C742F340CE5A2, player, tintIndex); } // 0x6e9c742f340ce5a20x4e418e13B323 - inline Void SetPlayerHasReserveParachute(Player player) { return _i(0x7DDAB28D31FAC363, player); } // 0x7ddab28d31fac3630xa3e4798eB323 - inline BOOL GetPlayerHasReserveParachute(Player player) { return _i(0x5DDFE2FF727F3CA3, player); } // 0x5ddfe2ff727f3ca30x30da1da1B323 - inline Void SetPlayerCanLeaveParachuteSmokeTrail(Player player, BOOL enabled) { return _i(0xF401B182DBA8AF53, player, enabled); } // 0xf401b182dba8af530x832deb7aB323 - inline Void SetPlayerParachuteSmokeTrailColor(Player player, int r, int g, int b) { return _i(0x8217FD371A4625CF, player, r, g, b); } // 0x8217fd371a4625cf0x14fe9264B323 - inline Void GetPlayerParachuteSmokeTrailColor(Player player, int* r, int* g, int* b) { return _i(0xEF56DBABD3CD4887, player, r, g, b); } // 0xef56dbabd3cd48870xf66e5cddB323 - // example: - // - // flags: 0-6 - // - // PLAYER::SET_PLAYER_RESET_FLAG_PREFER_REAR_SEATS(PLAYER::PlayerId(), 6); - // - // wouldnt the flag be the seatIndex? - inline Void SetPlayerPhonePaletteIdx(Player player, int flags) { return _i(0x11D5F725F0E780E0, player, flags); } // 0x11d5f725f0e780e0B323 - inline Void SetPlayerNoiseMultiplier(Player player, float multiplier) { return _i(0xDB89EF50FF25FCE9, player, multiplier); } // 0xdb89ef50ff25fce90x15786dd1B323 - // Values around 1.0f to 2.0f used in game scripts. - inline Void SetPlayerSneakingNoiseMultiplier(Player player, float multiplier) { return _i(0xB2C1A29588A9F47C, player, multiplier); } // 0xb2c1a29588a9f47c0x8d2d89c4B323 - inline BOOL CanPedHearPlayer(Player player, Ped ped) { return _i(0xF297383AA91DCA29, player, ped); } // 0xf297383aa91dca290x1c70b2ebB323 - // This is to make the player walk without accepting input from INPUT. - // - // gaitType is in increments of 100s. 2000, 500, 300, 200, etc. - // - // p4 is always 1 and p5 is always 0. - // - // C# Example : - // - // Function.Call(Hash.SimulatePlayerInputGait, Game.Player, 1.0f, 100, 1.0f, 1, 0); //Player will go forward for 100ms - inline Void SimulatePlayerInputGait(Player player, float amount, int gaitType, float speed, BOOL p4, BOOL p5, Any p6) { return _i(0x477D5D63E63ECA5D, player, amount, gaitType, speed, p4, p5, p6); } // 0x477d5d63e63eca5d0x0d77cc34B323 - inline Void ResetPlayerInputGait(Player player) { return _i(0x19531C47A2ABD691, player); } // 0x19531c47a2abd6910x4a701ee1B323 - inline Void SetAutoGiveParachuteWhenEnterPlane(Player player, BOOL toggle) { return _i(0x9F343285A00B4BB6, player, toggle); } // 0x9f343285a00b4bb60xa97c2059B323 - inline Void SetAutoGiveScubaGearWhenExitVehicle(Player player, BOOL toggle) { return _i(0xD2B315B6689D537D, player, toggle); } // 0xd2b315b6689d537d0xa25d767eB323 - inline Void SetPlayerStealthPerceptionModifier(Player player, float value) { return _i(0x4E9021C1FCDD507A, player, value); } // 0x4e9021c1fcdd507a0x3d26105fB323 - inline BOOL IsRemotePlayerInNonClonedVehicle(Player player) { return _i(0x690A61A6D13583F6, player); } // 0x690a61a6d13583f60x1d371529B323 - inline Void IncreasePlayerJumpSuppressionRange(Player player) { return _i(0x9EDD76E87D5D51BA, player); } // 0x9edd76e87d5d51ba0xe30a64dcB323 - inline Void SetPlayerSimulateAiming(Player player, BOOL toggle) { return _i(0xC54C95DA968EC5B5, player, toggle); } // 0xc54c95da968ec5b50xf1e0cafcB323 - inline Void SetPlayerClothPinFrames(Player player, int p1) { return _i(0x749FADDF97DFE930, player, p1); } // 0x749faddf97dfe9300xf7a0f00fB323 - // Every occurrence was either 0 or 2. - inline Void SetPlayerClothPackageIndex(int index) { return _i(0x9F7BBA2EA6372500, index); } // 0x9f7bba2ea63725000xb8209f16B323 - // 6 matches across 4 scripts. 5 occurrences were 240. The other was 255. - inline Void SetPlayerClothLockCounter(int value) { return _i(0x14D913B777DFF5DA, value); } // 0x14d913b777dff5da0x8d9fd4d1B323 - // Only 1 match. ob_sofa_michael. - // - // PLAYER::PlayerAttachVirtualBound(-804.5928f, 173.1801f, 71.68436f, 0f, 0f, 0.590625f, 1f, 0.7f);1.0.335.2, 1.0.350.1/2, 1.0.372.2, 1.0.393.2, 1.0.393.4, 1.0.463.1; - inline Void PlayerAttachVirtualBound(float p0, float p1, float p2, float p3, float p4, float p5, float p6, float p7) { return _i(0xED51733DC73AED51, p0, p1, p2, p3, p4, p5, p6, p7); } // 0xed51733dc73aed510xecd12e60B323 - // 1.0.335.2, 1.0.350.1/2, 1.0.372.2, 1.0.393.2, 1.0.393.4, 1.0.463.1; - inline Void PlayerDetachVirtualBound() { return _i(0x1DD5897E2FA6E7C9); } // 0x1dd5897e2fa6e7c90x96100ea4B323 - inline BOOL HasPlayerBeenSpottedInStolenVehicle(Player player) { return _i(0xD705740BB0A1CF4C, player); } // 0xd705740bb0a1cf4c0x4a01b76aB323 - // Returns true if an unk value is greater than 0.0f - inline BOOL IsPlayerBattleAware(Player player) { return _i(0x38D28DA81E4E9BF9, player); } // 0x38d28da81e4e9bf90x013b4f72B323 - inline BOOL GetPlayerReceivedBattleEventRecently(Player player, int p1, BOOL p2) { return _i(0xBC0753C9CA14B506, player, p1, p2); } // 0xbc0753c9ca14b5060x9df75b2aB323 - // Appears only 3 times in the scripts, more specifically in michael1.ysc - // - // - - // This can be used to prevent dying if you are "out of the world" - inline Void ExtendWorldBoundaryForPlayer(float x, float y, float z) { return _i(0x5006D96C995A5827, x, y, z); } // 0x5006d96c995a58270x64ddb07dB323 - inline Void ResetWorldBoundaryForPlayer() { return _i(0xDA1DF03D5A315F4E); } // 0xda1df03d5a315f4e0xa97c2f6cB323 - // Returns true if the player is riding a train. - inline BOOL IsPlayerRidingTrain(Player player) { return _i(0x4EC12697209F2196, player); } // 0x4ec12697209f21960x9765e71dB323 - inline BOOL HasPlayerLeftTheWorld(Player player) { return _i(0xD55DDFB47991A294, player); } // 0xd55ddfb47991a2940xfea40b6cB323 - inline Void SetPlayerLeavePedBehind(Player player, BOOL toggle) { return _i(0xFF300C7649724A0B, player, toggle); } // 0xff300c7649724a0b0xad8383faB323 - // p1 was always 5. - // p4 was always false. - inline Void SetPlayerParachuteVariationOverride(Player player, int p1, Any p2, Any p3, BOOL p4) { return _i(0xD9284A8C0D48352C, player, p1, p2, p3, p4); } // 0xd9284a8c0d48352c0x9254249dB323 - inline Void ClearPlayerParachuteVariationOverride(Player player) { return _i(0x0F4CC924CF8C7B21, player); } // 0x0f4cc924cf8c7b210xfd60f5abB323 - inline Void SetPlayerParachuteModelOverride(Player player, Hash model) { return _i(0x977DB4641F6FC3DB, player, model); } // 0x977db4641f6fc3db0x5d382498B323 - inline Void SetPlayerReserveParachuteModelOverride(Player player, Hash model) { return _i(0x0764486AEDE748DB, player, model); } // 0x0764486aede748dbB2372 - inline Hash GetPlayerParachuteModelOverride(Player player) { return _i(0xC219887CA3E65C41, player); } // 0xc219887ca3e65c41B2372 - inline Hash GetPlayerReserveParachuteModelOverride(Player player) { return _i(0x37FAAA68DCA9D08D, player); } // 0x37faaa68dca9d08dB2372 - inline Void ClearPlayerParachuteModelOverride(Player player) { return _i(0x8753997EB5F6EE3F, player); } // 0x8753997eb5f6ee3f0x6ff034bbB323 - inline Void ClearPlayerReserveParachuteModelOverride(Player player) { return _i(0x290D248E25815AE8, player); } // 0x290d248e25815ae8B2372 - inline Void SetPlayerParachutePackModelOverride(Player player, Hash model) { return _i(0xDC80A4C2F18A2B64, player, model); } // 0xdc80a4c2f18a2b640xa877ff5eB323 - inline Void ClearPlayerParachutePackModelOverride(Player player) { return _i(0x10C54E4389C12B42, player); } // 0x10c54e4389c12b420xbb62aac5B323 - inline Void DisablePlayerVehicleRewards(Player player) { return _i(0xC142BE3BB9CE125F, player); } // 0xc142be3bb9ce125f0x8c6e611dB323 - inline Void SetPlayerSpectatedVehicleRadioOverride(BOOL p0) { return _i(0x2F7CEB6520288061, p0); } // 0x2f7ceb65202880610x2849d4b2B323 - inline Void SetPlayerBluetoothState(Player player, BOOL state) { return _i(0x5DC40A8869C22141, player, state); } // 0x5dc40a8869c221410x7a6b0ef8B323 - inline BOOL IsPlayerBluetoothEnable(Player player) { return _i(0x65FAEE425DE637B0, player); } // 0x65faee425de637b00xea01bd4aB323 - inline Void DisableCameraViewModeCycle(Player player) { return _i(0x5501B7A5CDB79D37, player); } // 0x5501b7a5cdb79d37B323 - inline int GetPlayerFakeWantedLevel(Player player) { return _i(0x56105E599CAB0EFA, player); } // 0x56105e599cab0efa0x0098d244B323 - inline Void SetPlayerCanDamagePlayer(Player player1, Player player2, BOOL toggle) { return _i(0x55FCC0C390620314, player1, player2, toggle); } // 0x55fcc0c390620314B573 - inline Void SetApplyWaypointOfPlayer(Player player, int hudColor) { return _i(0x2382AB11450AE7BA, player, hudColor); } // 0x2382ab11450ae7baB877 - inline BOOL IsPlayerVehicleWeaponToggledToNonHoming(Any p0) { return _i(0x6E4361FF3E8CD7CA, p0); } // 0x6e4361ff3e8cd7caB1011 - // Unsets playerPed+330 if the current weapon has certain flags. - inline Void SetPlayerVehicleWeaponToNonHoming(Any p0) { return _i(0x237440E46D918649, p0); } // 0x237440e46d918649B1290 - inline Void SetPlayerHomingDisabledForAllVehicleWeapons(Any p0, Any p1) { return _i(0xEE4EBDD2593BA844, p0, p1); } // 0xee4ebdd2593ba844B1180 - inline Void AddPlayerTargetableEntity(Player player, Entity entity) { return _i(0x9097EB6D4BB9A12A, player, entity); } // 0x9097eb6d4bb9a12aB1868 - inline Void RemovePlayerTargetableEntity(Player player, Entity entity) { return _i(0x9F260BFB59ADBCA3, player, entity); } // 0x9f260bfb59adbca3B1868 - inline Void SetPlayerPreviousVariationData(Player player, int p1, int p2, Any p3, Any p4, Any p5) { return _i(0x7BAE68775557AE0B, player, p1, p2, p3, p4, p5); } // 0x7bae68775557ae0bB1290 - // Resets values set by SetScriptFirePosition - inline Void RemoveScriptFirePosition() { return _i(0x7148E0F43D11F0D9); } // 0x7148e0f43d11f0d9B1604 - inline Void SetScriptFirePosition(float coordX, float coordY, float coordZ) { return _i(0x70A382ADEC069DD3, coordX, coordY, coordZ); } // 0x70a382adec069dd3B1604 + // Gets the ped for a specified player index. + inline Ped GetPlayerPed(Player player) { return _i(0x43A66C31C68491C0, player); } // 0x43a66c31c68491c00x6e31e993B323 + // Does the same like PLAYER::GetPlayerPed + inline Ped GetPlayerPedScriptIndex(Player player) { return _i(0x50FAC3A3E030A6E1, player); } // 0x50fac3a3e030a6e10x6ac64990B323 + // Set the model for a specific Player. Be aware that this will destroy the current Ped for the Player and create a new one, any reference to the old ped should be reset + // Make sure to request the model first and wait until it has loaded. + inline Void SetPlayerModel(Player player, Hash model) { return _i(0x00A1CADD00108836, player, model); } // 0x00a1cadd001088360x774a4c54B323 + inline Void ChangePlayerPed(Player player, Ped ped, BOOL p2, BOOL resetDamage) { return _i(0x048189FAC643DEEE, player, ped, p2, resetDamage); } // 0x048189fac643deee0xbe515485B323 + inline Void GetPlayerRgbColour(Player player, int* r, int* g, int* b) { return _i(0xE902EF951DCE178F, player, r, g, b); } // 0xe902ef951dce178f0x6ef43bbbB323 + // Gets the number of players in the current session. + // If not multiplayer, always returns 1. + inline int GetNumberOfPlayers() { return _i(0x407C7F91DDB46C16); } // 0x407c7f91ddb46c160x4c1b8867B323 + // Gets the player's team. + // Does nothing in singleplayer. + inline int GetPlayerTeam(Player player) { return _i(0x37039302F4E0A008, player); } // 0x37039302f4e0a0080x9873e404B323 + // Set player team on deathmatch and last team standing.. + inline Void SetPlayerTeam(Player player, int team) { return _i(0x0299FA38396A4940, player, team); } // 0x0299fa38396a49400x725adcf2B323 + inline int GetNumberOfPlayersInTeam(int team) { return _i(0x1FC200409F10E6F1, team); } // 0x1fc200409f10e6f1B1180 + inline String GetPlayerName(Player player) { return _i(0x6D0DE6A7B5DA71F8, player); } // 0x6d0de6a7b5da71f80x406b4b20B323 + // Remnant from GTA IV. Does nothing in GTA V. + inline float GetWantedLevelRadius(Player player) { return _i(0x085DEB493BE80812, player); } // 0x085deb493be808120x1cf7d7daB323 + inline Vector3 GetPlayerWantedCentrePosition(Player player) { return _i(0x0C92BA89F1AF26F8, player); } // 0x0c92ba89f1af26f80x821f2d2cB323 + // # Predominant call signatures + // PLAYER::SetPlayerWantedCentrePosition(PLAYER::PlayerId(), ENTITY::GetEntityCoords(PLAYER::PlayerPedId(), 1)); + // + // # Parameter value ranges + // P0: PLAYER::PlayerId() + // P1: ENTITY::GetEntityCoords(PLAYER::PlayerPedId(), 1) + // P2: Not set by any call + inline Void SetPlayerWantedCentrePosition(Player player, Vector3* position, BOOL p2, BOOL p3) { return _i(0x520E541A97A13354, player, position, p2, p3); } // 0x520e541a97a133540xf261633aB323 + // Drft + inline int GetWantedLevelThreshold(int wantedLevel) { return _i(0xFDD179EAF45B556C, wantedLevel); } // 0xfdd179eaf45b556c0xd9783f6bB323 + // Call SetPlayerWantedLevelNow for immediate effect + // + // wantedLevel is an integer value representing 0 to 5 stars even though the game supports the 6th wanted level but no police will appear since no definitions are present for it in the game files + // + // disableNoMission- Disables When Off Mission- appears to always be false + // + inline Void SetPlayerWantedLevel(Player player, int wantedLevel, BOOL disableNoMission) { return _i(0x39FF19C64EF7DA5B, player, wantedLevel, disableNoMission); } // 0x39ff19c64ef7da5b0xb7a0914bB323 + // p2 is always false in R* scripts + inline Void SetPlayerWantedLevelNoDrop(Player player, int wantedLevel, BOOL p2) { return _i(0x340E61DE7F471565, player, wantedLevel, p2); } // 0x340e61de7f4715650xed6f44f5B323 + // Forces any pending wanted level to be applied to the specified player immediately. + // + // Call SetPlayerWantedLevel with the desired wanted level, followed by SetPlayerWantedLevelNow. + // + // Second parameter is unknown (always false). + inline Void SetPlayerWantedLevelNow(Player player, BOOL p1) { return _i(0xE0A7D1E497FFCD6F, player, p1); } // 0xe0a7d1e497ffcd6f0xaf3afd83B323 + inline BOOL ArePlayerFlashingStarsAboutToDrop(Player player) { return _i(0xAFAF86043E5874E9, player); } // 0xafaf86043e5874e90xe13a71c7B323 + inline BOOL ArePlayerStarsGreyedOut(Player player) { return _i(0x0A6EB355EE14A2DB, player); } // 0x0a6eb355ee14a2db0x5e72ab72B323 + inline BOOL IsWantedAndHasBeenSeenByCops(Player player) { return _i(0x7E07C78925D5FD96, player); } // 0x7e07c78925d5fd96B372 + inline Void SetDispatchCopsForPlayer(Player player, BOOL toggle) { return _i(0xDB172424876553F4, player, toggle); } // 0xdb172424876553f40x48a18913B323 + inline BOOL IsPlayerWantedLevelGreater(Player player, int wantedLevel) { return _i(0x238DB2A2C23EE9EF, player, wantedLevel); } // 0x238db2a2c23ee9ef0x589a2661B323 + // This executes at the same as speed as PLAYER::SetPlayerWantedLevel(player, 0, false); + // + // PLAYER::GetPlayerWantedLevel(player); executes in less than half the time. Which means that it's worth first checking if the wanted level needs to be cleared before clearing. However, this is mostly about good code practice and can important in other situations. The difference in time in this example is negligible. + inline Void ClearPlayerWantedLevel(Player player) { return _i(0xB302540597885499, player); } // 0xb3025405978854990x54ea5bccB323 + inline BOOL IsPlayerDead(Player player) { return _i(0x424D4687FA1E5652, player); } // 0x424d4687fa1e56520x140ca5a8B323 + inline BOOL IsPlayerPressingHorn(Player player) { return _i(0xFA1E2BF8B10598F9, player); } // 0xfa1e2bf8b10598f90xed1d1662B323 + // Flags: + // SPC_AMBIENT_SCRIPT = (1 << 1), + // SPC_CLEAR_TASKS = (1 << 2), + // SPC_REMOVE_FIRES = (1 << 3), + // SPC_REMOVE_EXPLOSIONS = (1 << 4), + // SPC_REMOVE_PROJECTILES = (1 << 5), + // SPC_DEACTIVATE_GADGETS = (1 << 6), + // SPC_REENABLE_CONTROL_ON_DEATH = (1 << 7), + // SPC_LEAVE_CAMERA_CONTROL_ON = (1 << 8), + // SPC_ALLOW_PLAYER_DAMAGE = (1 << 9), + // SPC_DONT_STOP_OTHER_CARS_AROUND_PLAYER = (1 << 10), + // SPC_PREVENT_EVERYBODY_BACKOFF = (1 << 11), + // SPC_ALLOW_PAD_SHAKE = (1 << 12) + // + // See: https://alloc8or.re/gta5/doc/enums/eSetPlayerControlFlag.txt + inline Void SetPlayerControl(Player player, BOOL bHasControl, int flags) { return _i(0x8D32347D6D4C40A2, player, bHasControl, flags); } // 0x8d32347d6d4c40a20xd17afcd8B323 + inline int GetPlayerWantedLevel(Player player) { return _i(0xE28E54788CE8F12D, player); } // 0xe28e54788ce8f12d0xbdcdd163B323 + inline Void SetMaxWantedLevel(int maxWantedLevel) { return _i(0xAA5F02DB48D704B9, maxWantedLevel); } // 0xaa5f02db48d704b90x665a06f5B323 + // If toggle is set to false: + // The police won't be shown on the (mini)map + // + // If toggle is set to true: + // The police will be shown on the (mini)map + inline Void SetPoliceRadarBlips(BOOL toggle) { return _i(0x43286D561B72B8BF, toggle); } // 0x43286d561b72b8bf0x8e114b10B323 + // The player will be ignored by the police if toggle is set to true + inline Void SetPoliceIgnorePlayer(Player player, BOOL toggle) { return _i(0x32C62AA929C2DA6A, player, toggle); } // 0x32c62aa929c2da6a0xe6de71b7B323 + // Checks whether the specified player has a Ped, the Ped is not dead, is not injured and is not arrested. + inline BOOL IsPlayerPlaying(Player player) { return _i(0x5E9564D8246B909A, player); } // 0x5e9564d8246b909a0xe15d777fB323 + inline Void SetEveryoneIgnorePlayer(Player player, BOOL toggle) { return _i(0x8EEDA153AD141BA4, player, toggle); } // 0x8eeda153ad141ba40xc915285eB323 + inline Void SetAllRandomPedsFlee(Player player, BOOL toggle) { return _i(0x056E0FE8534C2949, player, toggle); } // 0x056e0fe8534c29490x49eae968B323 + inline Void SetAllRandomPedsFleeThisFrame(Player player) { return _i(0x471D2FF42A94B4F2, player); } // 0x471d2ff42a94b4f20xbf974891B323 + inline Void SetAllNeutralRandomPedsFlee(Player player, BOOL toggle) { return _i(0xDE45D1A1EF45EE61, player, toggle); } // 0xde45d1a1ef45ee610x274631feB323 + // - This is called after SetAllRandomPedsFleeThisFrame + // + inline Void SetAllNeutralRandomPedsFleeThisFrame(Player player) { return _i(0xC3376F42B1FACCC6, player); } // 0xc3376f42b1faccc60x02df7af4B323 + inline Void SetLawPedsCanAttackNonWantedPlayerThisFrame(Player player) { return _i(0xFAC75988A7D078D3, player); } // 0xfac75988a7d078d3B463 + inline Void SetIgnoreLowPriorityShockingEvents(Player player, BOOL toggle) { return _i(0x596976B02B6B5700, player, toggle); } // 0x596976b02b6b57000xa3d675edB323 + inline Void SetWantedLevelMultiplier(float multiplier) { return _i(0x020E5F00CDA207BA, multiplier); } // 0x020e5f00cda207ba0x1359292fB323 + // Max value is 1.0 + inline Void SetWantedLevelDifficulty(Player player, float difficulty) { return _i(0x9B0BB33B04405E7A, player, difficulty); } // 0x9b0bb33b04405e7a0xb552626cB323 + inline Void ResetWantedLevelDifficulty(Player player) { return _i(0xB9D0DD990DC141DD, player); } // 0xb9d0dd990dc141dd0xa64c378dB323 + inline int GetWantedLevelTimeToEscape() { return _i(0xA72200F51875FEA4); } // 0xa72200f51875fea4B2372 + inline Void SetWantedLevelHiddenEscapeTime(Player player, int wantedLevel, int lossTime) { return _i(0x49B856B1360C47C7, player, wantedLevel, lossTime); } // 0x49b856b1360c47c7B2060 + inline Void ResetWantedLevelHiddenEscapeTime(Player player) { return _i(0x823EC8E82BA45986, player); } // 0x823ec8e82ba45986B2060 + inline Void StartFiringAmnesty(int duration) { return _i(0xBF9BD71691857E48, duration); } // 0xbf9bd71691857e480x5f8a22a6B323 + // PLAYER::ReportCrime(PLAYER::PlayerId(), 37, PLAYER::GetWantedLevelThreshold(1)); + // + // From am_armybase.ysc.c4: + // + // PLAYER::ReportCrime(PLAYER::PlayerId(4), 36, PLAYER::GetWantedLevelThreshold(4)); + // + // ----- + // + // This was taken from the GTAV.exe v1.334. The function is called sub_140592CE8. For a full decompilation of the function, see here: https://pastebin.com/09qSMsN7 + // + // ----- + // crimeType: + // 1: Firearms possession + // 2: Person running a red light ("5-0-5") + // 3: Reckless driver + // 4: Speeding vehicle (a "5-10") + // 5: Traffic violation (a "5-0-5") + // 6: Motorcycle rider without a helmet + // 7: Vehicle theft (a "5-0-3") + // 8: Grand Theft Auto + // 9: ??? + // 10: ??? + // 11: Assault on a civilian (a "2-40") + // 12: Assault on an officer + // 13: Assault with a deadly weapon (a "2-45") + // 14: Officer shot (a "2-45") + // 15: Pedestrian struck by a vehicle + // 16: Officer struck by a vehicle + // 17: Helicopter down (an "AC"?) + // 18: Civilian on fire (a "2-40") + // 19: Officer set on fire (a "10-99") + // 20: Car on fire + // 21: Air unit down (an "AC"?) + // 22: An explosion (a "9-96") + // 23: A stabbing (a "2-45") (also something else I couldn't understand) + // 24: Officer stabbed (also something else I couldn't understand) + // 25: Attack on a vehicle ("MDV"?) + // 26: Damage to property + // 27: Suspect threatening officer with a firearm + // 28: Shots fired + // 29: ??? + // 30: ??? + // 31: ??? + // 32: ??? + // 33: ??? + // 34: A "2-45" + // 35: ??? + // 36: A "9-25" + // 37: ??? + // 38: ??? + // 39: ??? + // 40: ??? + // 41: ??? + // 42: ??? + // 43: Possible disturbance + // 44: Civilian in need of assistance + // 45: ??? + // 46: ??? + inline Void ReportCrime(Player player, int crimeType, int wantedLvlThresh) { return _i(0xE9B09589827545E7, player, crimeType, wantedLvlThresh); } // 0xe9b09589827545e70xd8eb3a44B323 + // crimeType: see ReportCrime + inline Void SuppressCrimeThisFrame(Player player, int crimeType) { return _i(0x9A987297ED8BD838, player, crimeType); } // 0x9a987297ed8bd8380x59b5c2a2B323 + // This native is used in both singleplayer and multiplayer scripts. + // + // Always used like this in scripts + // PLAYER::UpdateWantedPositionThisFrame(PLAYER::PlayerId()); + inline Void UpdateWantedPositionThisFrame(Player player) { return _i(0xBC9490CA15AEA8FB, player); } // 0xbc9490ca15aea8fb0x6b34a160B323 + // This has been found in use in the decompiled files. + inline Void SuppressLosingWantedLevelIfHiddenThisFrame(Player player) { return _i(0x4669B3ED80F24B4E, player); } // 0x4669b3ed80f24b4e0xb9fb142fB323 + inline Void AllowEvasionHudIfDisablingHiddenEvasionThisFrame(Player player, Any p1) { return _i(0x2F41A3BAE005E5FA, player, p1); } // 0x2f41a3bae005e5faB372 + // This has been found in use in the decompiled files. + inline Void ForceStartHiddenEvasion(Player player) { return _i(0xAD73CE5A09E42D12, player); } // 0xad73ce5a09e42d120x85725848B323 + inline Void SuppressWitnessesCallingPoliceThisFrame(Player player) { return _i(0x36F1B38855F2A8DF, player); } // 0x36f1b38855f2a8df0x3a7e5fb6B323 + inline Void ReportPoliceSpottedPlayer(Player player) { return _i(0xDC64D2C53493ED12, player); } // 0xdc64d2c53493ed120xd15c4b1cB323 + // PLAYER::SetLawResponseDelayOverride(rPtr((&l_122) + 71)); // Found in decompilation + // + // *** + // + // In "am_hold_up.ysc" used once: + // + // l_8d._f47 = MISC::GetRandomFloatInRange(18.0, 28.0); + // PLAYER::SetLawResponseDelayOverride((l_8d._f47)); + inline Void SetLawResponseDelayOverride(float p0) { return _i(0xB45EFF719D8427A6, p0); } // 0xb45eff719d8427a60xbf6993c7B323 + // 2 matches in 1 script - am_hold_up + // + // Used in multiplayer scripts? + inline Void ResetLawResponseDelayOverride() { return _i(0x0032A6DBA562C518); } // 0x0032a6dba562c5180x47cab814B323 + inline BOOL CanPlayerStartMission(Player player) { return _i(0xDE7465A27D403C06, player); } // 0xde7465a27d403c060x39e3cb3fB323 + inline BOOL IsPlayerReadyForCutscene(Player player) { return _i(0x908CBECC2CAA3690, player); } // 0x908cbecc2caa36900xbb77e9cdB323 + inline BOOL IsPlayerTargettingEntity(Player player, Entity entity) { return _i(0x7912F7FC4F6264B6, player, entity); } // 0x7912f7fc4f6264b60xf3240b77B323 + // Assigns the handle of locked-on melee target to *entity that you pass it. + // Returns false if no entity found. + inline BOOL GetPlayerTargetEntity(Player player, Entity* entity) { return _i(0x13EDE1A5DBF797C9, player, entity); } // 0x13ede1a5dbf797c90xf6aaa2d7B323 + // Gets a value indicating whether the specified player is currently aiming freely. + inline BOOL IsPlayerFreeAiming(Player player) { return _i(0x2E397FD2ECD37C87, player); } // 0x2e397fd2ecd37c870x1dec67b7B323 + // Gets a value indicating whether the specified player is currently aiming freely at the specified entity. + inline BOOL IsPlayerFreeAimingAtEntity(Player player, Entity entity) { return _i(0x3C06B5C839B38F7B, player, entity); } // 0x3c06b5c839b38f7b0x7d80eeaaB323 + // Returns TRUE if it found an entity in your crosshair within range of your weapon. Assigns the handle of the target to the *entity that you pass it. + // Returns false if no entity found. + inline BOOL GetEntityPlayerIsFreeAimingAt(Player player, Entity* entity) { return _i(0x2975C866E6713290, player, entity); } // 0x2975c866e67132900x8866d9d0B323 + // Affects the range of auto aim target. + inline Void SetPlayerLockonRangeOverride(Player player, float range) { return _i(0x29961D490E5814FD, player, range); } // 0x29961d490e5814fd0x74d42c03B323 + // Set whether this player should be able to do drive-bys. + // + // "A drive-by is when a ped is aiming/shooting from vehicle. This includes middle finger taunts. By setting this value to false I confirm the player is unable to do all that. Tested on tick." + // + inline Void SetPlayerCanDoDriveBy(Player player, BOOL toggle) { return _i(0x6E8834B52EC20C77, player, toggle); } // 0x6e8834b52ec20c770xf4d99685B323 + // Sets whether this player can be hassled by gangs. + inline Void SetPlayerCanBeHassledByGangs(Player player, BOOL toggle) { return _i(0xD5E460AD7020A246, player, toggle); } // 0xd5e460ad7020a2460x71b305bbB323 + // Sets whether this player can take cover. + inline Void SetPlayerCanUseCover(Player player, BOOL toggle) { return _i(0xD465A8599DFF6814, player, toggle); } // 0xd465a8599dff68140x13cafafaB323 + // Gets the maximum wanted level the player can get. + // Ranges from 0 to 5. + inline int GetMaxWantedLevel() { return _i(0x462E0DB9B137DC5F); } // 0x462e0db9b137dc5f0x457f1e44B323 + inline BOOL IsPlayerTargettingAnything(Player player) { return _i(0x78CFE51896B6B8A4, player); } // 0x78cfe51896b6b8a40x456db50dB323 + inline Void SetPlayerSprint(Player player, BOOL toggle) { return _i(0xA01B8075D8B92DF4, player, toggle); } // 0xa01b8075d8b92df40x7dd7900cB323 + inline Void ResetPlayerStamina(Player player) { return _i(0xA6F312FCCE9C1DFE, player); } // 0xa6f312fcce9c1dfe0xc0445a9cB323 + inline Void RestorePlayerStamina(Player player, float p1) { return _i(0xA352C1B864CAFD33, player, p1); } // 0xa352c1b864cafd330x62a93608B323 + inline float GetPlayerSprintStaminaRemaining(Player player) { return _i(0x3F9F16F8E65A7ED7, player); } // 0x3f9f16f8e65a7ed70x47017c90B323 + inline float GetPlayerSprintTimeRemaining(Player player) { return _i(0x1885BC9B108B4C99, player); } // 0x1885bc9b108b4c990x40e80543B323 + inline float GetPlayerUnderwaterTimeRemaining(Player player) { return _i(0xA1FCF8E6AF40B731, player); } // 0xa1fcf8e6af40b7310x1317125aB323 + inline float SetPlayerUnderwaterBreathPercentRemaining(Player player, float time) { return _i(0xA0D3E4F7AAFB7E78, player, time); } // 0xa0d3e4f7aafb7e78B757 + // Returns the group ID the player is member of. + inline int GetPlayerGroup(Player player) { return _i(0x0D127585F77030AF, player); } // 0x0d127585f77030af0xa5edcde8B323 + inline int GetPlayerMaxArmour(Player player) { return _i(0x92659B4CE1863CB3, player); } // 0x92659b4ce1863cb30x02a50657B323 + // Can the player control himself, used to disable controls for player for things like a cutscene. + // + // --- + // + // You can't disable controls with this, use SetPlayerControl(...) for this. + inline BOOL IsPlayerControlOn(Player player) { return _i(0x49C32D60007AFA47, player); } // 0x49c32d60007afa470x618857f2B323 + // Returns true when the player is not able to control the cam i.e. when running a benchmark test, switching the player or viewing a cutscene. + // + // Note: I am not 100% sure if the native actually checks if the cam control is disabled but it seems promising. + inline BOOL GetAreCameraControlsDisabled() { return _i(0x7C814D2FB49F40C0); } // 0x7c814d2fb49f40c0B323 + inline BOOL IsPlayerScriptControlOn(Player player) { return _i(0x8A876A65283DD7D7, player); } // 0x8a876a65283dd7d70x61b00a84B323 + // Returns TRUE if the player ('s ped) is climbing at the moment. + inline BOOL IsPlayerClimbing(Player player) { return _i(0x95E8F73DC65EFB9C, player); } // 0x95e8f73dc65efb9c0x4a9e9ae0B323 + // Return true while player is being arrested / busted. + // + // If atArresting is set to 1, this function will return 1 when player is being arrested (while player is putting his hand up, but still have control) + // + // If atArresting is set to 0, this function will return 1 only when the busted screen is shown. + inline BOOL IsPlayerBeingArrested(Player player, BOOL atArresting) { return _i(0x388A47C51ABDAC8E, player, atArresting); } // 0x388a47c51abdac8e0x7f6a60d3B323 + inline Void ResetPlayerArrestState(Player player) { return _i(0x2D03E13C460760D6, player); } // 0x2d03e13c460760d60x453c7cabB323 + // Alternative: GetVehiclePedIsIn(PlayerPedId(), 1); + inline Vehicle GetPlayersLastVehicle() { return _i(0xB6997A7EB3F5C8C0); } // 0xb6997a7eb3f5c8c00xe2757ac1B323 + // Returns the same as PlayerId and NetworkPlayerIdToInt + inline Player GetPlayerIndex() { return _i(0xA5EDC40EF369B48D); } // 0xa5edc40ef369b48d0x309bbdc1B323 + // Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). + inline Player IntToPlayerindex(int value) { return _i(0x41BD2A6B006AF756, value); } // 0x41bd2a6b006af7560x98dd98f1B323 + // Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). + // -------------------------------------------------------- + // if (NETWORK::NetworkIsParticipantActive(PLAYER::IntToParticipantindex(i))) + // + inline int IntToParticipantindex(int value) { return _i(0x9EC6603812C24710, value); } // 0x9ec6603812c247100x98f3b274B323 + inline int GetTimeSincePlayerHitVehicle(Player player) { return _i(0x5D35ECF3A81A0EE0, player); } // 0x5d35ecf3a81a0ee00x6e9b8b9eB323 + inline int GetTimeSincePlayerHitPed(Player player) { return _i(0xE36A25322DC35F42, player); } // 0xe36a25322dc35f420xb6209195B323 + inline int GetTimeSincePlayerDroveOnPavement(Player player) { return _i(0xD559D2BE9E37853B, player); } // 0xd559d2be9e37853b0x8836e732B323 + inline int GetTimeSincePlayerDroveAgainstTraffic(Player player) { return _i(0xDB89591E290D9182, player); } // 0xdb89591e290d91820x9f27d00eB323 + inline BOOL IsPlayerFreeForAmbientTask(Player player) { return _i(0xDCCFD3F106C36AB4, player); } // 0xdccfd3f106c36ab40x85c7e232B323 + // This returns YOUR 'identity' as a Player type. + // + // Always returns 0 in story mode. + inline Player PlayerId() { return _i(0x4F8644AF03D0E0D6); } // 0x4f8644af03d0e0d60x8aea886cB323 + // Returns current player ped + inline Ped PlayerPedId() { return _i(0xD80958FC74E988A6); } // 0xd80958fc74e988a60xfa92e226B323 + // Does exactly the same thing as PlayerId() + inline int NetworkPlayerIdToInt() { return _i(0xEE68096F9F37341E); } // 0xee68096f9f37341e0x8dd5b838B323 + inline BOOL HasForceCleanupOccurred(int cleanupFlags) { return _i(0xC968670BFACE42D9, cleanupFlags); } // 0xc968670bface42d90x4b37333cB323 + // used with 1,2,8,64,128 in the scripts + inline Void ForceCleanup(int cleanupFlags) { return _i(0xBC8983F38F78ED51, cleanupFlags); } // 0xbc8983f38f78ed510xfdaaea2bB323 + // PLAYER::ForceCleanupForAllThreadsWithThisName("pb_prostitute", 1); // Found in decompilation + inline Void ForceCleanupForAllThreadsWithThisName(String name, int cleanupFlags) { return _i(0x4C68DDDDF0097317, name, cleanupFlags); } // 0x4c68ddddf00973170x04256c73B323 + inline Void ForceCleanupForThreadWithThisId(int id, int cleanupFlags) { return _i(0xF745B37630DF176B, id, cleanupFlags); } // 0xf745b37630df176b0x882d3eb3B323 + inline int GetCauseOfMostRecentForceCleanup() { return _i(0x9A41CF4674A12272); } // 0x9a41cf4674a122720x39aa9fc8B323 + inline Void SetPlayerMayOnlyEnterThisVehicle(Player player, Vehicle vehicle) { return _i(0x8026FF78F208978A, player, vehicle); } // 0x8026ff78f208978a0xa454dd29B323 + inline Void SetPlayerMayNotEnterAnyVehicle(Player player) { return _i(0x1DE37BBF9E9CC14A, player); } // 0x1de37bbf9e9cc14a0xaf7afcc4B323 + // 1 - Welcome to Los Santos + // 2 - A Friendship Resurrected + // 3 - A Fair Day's Pay + // 4 - The Moment of Truth + // 5 - To Live or Die in Los Santos + // 6 - Diamond Hard + // 7 - Subversive + // 8 - Blitzed + // 9 - Small Town, Big Job + // 10 - The Government Gimps + // 11 - The Big One! + // 12 - Solid Gold, Baby! + // 13 - Career Criminal + // 14 - San Andreas Sightseer + // 15 - All's Fare in Love and War + // 16 - TP Industries Arms Race + // 17 - Multi-Disciplined + // 18 - From Beyond the Stars + // 19 - A Mystery, Solved + // 20 - Waste Management + // 21 - Red Mist + // 22 - Show Off + // 23 - Kifflom! + // 24 - Three Man Army + // 25 - Out of Your Depth + // 26 - Altruist Acolyte + // 27 - A Lot of Cheddar + // 28 - Trading Pure Alpha + // 29 - Pimp My Sidearm + // 30 - Wanted: Alive Or Alive + // 31 - Los Santos Customs + // 32 - Close Shave + // 33 - Off the Plane + // 34 - Three-Bit Gangster + // 35 - Making Moves + // 36 - Above the Law + // 37 - Numero Uno + // 38 - The Midnight Club + // 39 - Unnatural Selection + // 40 - Backseat Driver + // 41 - Run Like The Wind + // 42 - Clean Sweep + // 43 - Decorated + // 44 - Stick Up Kid + // 45 - Enjoy Your Stay + // 46 - Crew Cut + // 47 - Full Refund + // 48 - Dialling Digits + // 49 - American Dream + // 50 - A New Perspective + // 51 - Be Prepared + // 52 - In the Name of Science + // 53 - Dead Presidents + // 54 - Parole Day + // 55 - Shot Caller + // 56 - Four Way + // 57 - Live a Little + // 58 - Can't Touch This + // 59 - Mastermind + // 60 - Vinewood Visionary + // 61 - Majestic + // 62 - Humans of Los Santos + // 63 - First Time Director + // 64 - Animal Lover + // 65 - Ensemble Piece + // 66 - Cult Movie + // 67 - Location Scout + // 68 - Method Actor + // 69 - Cryptozoologist + // 70 - Getting Started + // 71 - The Data Breaches + // 72 - The Bogdan Problem + // 73 - The Doomsday Scenario + // 74 - A World Worth Saving + // 75 - Orbital Obliteration + // 76 - Elitist + // 77 - Masterminds + inline BOOL GiveAchievementToPlayer(int achievementId) { return _i(0xBEC7076D64130195, achievementId); } // 0xbec7076d641301950x822bc992B323 + // For Steam. + // Does nothing and always returns false in the retail version of the game. + inline BOOL SetAchievementProgress(int achievementId, int progress) { return _i(0xC2AFFFDABBDC2C5C, achievementId, progress); } // 0xc2afffdabbdc2c5cB323 + // For Steam. + // Always returns 0 in retail version of the game. + inline int GetAchievementProgress(int achievementId) { return _i(0x1C186837D0619335, achievementId); } // 0x1c186837d0619335B323 + // See GiveAchievementToPlayer + inline BOOL HasAchievementBeenPassed(int achievementId) { return _i(0x867365E111A3B6EB, achievementId); } // 0x867365e111a3b6eb0x136a5be9B323 + // Returns TRUE if the game is in online mode and FALSE if in offline mode. + // + // This is an alias for NetworkIsSignedOnline. + inline BOOL IsPlayerOnline() { return _i(0xF25D331DC2627BBC); } // 0xf25d331dc2627bbc0x9fab6729B323 + // this function is hard-coded to always return 0. + inline BOOL IsPlayerLoggingInNp() { return _i(0x74556E1420867ECA); } // 0x74556e1420867eca0x8f72fad0B323 + // Purpose of the BOOL currently unknown. + // Both, true and false, work + inline Void DisplaySystemSigninUi(BOOL p0) { return _i(0x94DD7888C10A979E, p0); } // 0x94dd7888c10a979e0x4264ced2B323 + inline BOOL IsSystemUiBeingDisplayed() { return _i(0x5D511E3867C87139); } // 0x5d511e3867c871390xe495b6daB323 + // Simply sets you as invincible (Health will not deplete). + // + // Use 0x733A643B5B0C53C1 instead if you want Ragdoll enabled, which is equal to: + // *(DWORD *)(playerPedAddress + 0x188) |= (1 << 9); + inline Void SetPlayerInvincible(Player player, BOOL toggle) { return _i(0x239528EACDC3E7DE, player, toggle); } // 0x239528eacdc3e7de0xdfb9a2a2B323 + // Returns the Player's Invincible status. + // + // This function will always return false if 0x733A643B5B0C53C1 is used to set the invincibility status. To always get the correct result, use this: + // + // BOOL IsPlayerInvincible(Player player) + // { + // auto addr = getScriptHandleBaseAddress(GetPlayerPed(player)); + // + // if (addr) + // { + // DWORD flag = *(DWORD *)(addr + 0x188); + // return ((flag & (1 << 8)) != 0) || ((flag & (1 << 9)) != 0); + // } + // + // return false; + // } + // + // + inline BOOL GetPlayerInvincible(Player player) { return _i(0xB721981B2B939E07, player); } // 0xb721981b2b939e070x680c90eeB323 + // Always returns false. + inline BOOL GetPlayerDebugInvincible(Player player) { return _i(0xDCC07526B8EC45AF, player); } // 0xdcc07526b8ec45afB1868 + inline Void SetPlayerInvincibleButHasReactions(Player player, BOOL toggle) { return _i(0x6BC97F4F4BB3C04B, player, toggle); } // 0x6bc97f4f4bb3c04bB463 + inline Void SetPlayerCanCollectDroppedMoney(Player player, BOOL p1) { return _i(0xCAC57395B151135F, player, p1); } // 0xcac57395b151135f0x00563e0dB323 + inline Void RemovePlayerHelmet(Player player, BOOL p2) { return _i(0xF3AC26D3CC576528, player, p2); } // 0xf3ac26d3cc5765280x6255f3b4B323 + inline Void GivePlayerRagdollControl(Player player, BOOL toggle) { return _i(0x3C49C870E66F0A28, player, toggle); } // 0x3c49c870e66f0a280xc7b4d7acB323 + // Example from fm_mission_controler.ysc.c4: + // + // PLAYER::SetPlayerLockon(PLAYER::PlayerId(), 1); + // + // All other decompiled scripts using this seem to be using the player id as the first parameter, so I feel the need to confirm it as so. + // + // No need to confirm it says PlayerId() so it uses PlayerId() lol. + inline Void SetPlayerLockon(Player player, BOOL toggle) { return _i(0x5C8B2F450EE4328E, player, toggle); } // 0x5c8b2f450ee4328e0x0b270e0fB323 + // Sets your targeting mode. + // 0 = Assisted Aim - Full + // 1 = Assisted Aim - Partial + // 2 = Free Aim - Assisted + // 3 = Free Aim + inline Void SetPlayerTargetingMode(int targetMode) { return _i(0xB1906895227793F3, targetMode); } // 0xb1906895227793f30x61cae253B323 + // Returns targeting mode. See SetPlayerTargetingMode + inline int GetPlayerTargetingMode() { return _i(0x875BDD898B99C8CE); } // 0x875bdd898b99c8ceB3095 + inline Void SetPlayerTargetLevel(int targetLevel) { return _i(0x5702B917B99DB1CD, targetLevel); } // 0x5702b917b99db1cd0x772da539B323 + // Returns profile setting 237. + inline BOOL GetIsUsingFpsThirdPersonCover() { return _i(0xB9CF1F793A9F1BF1); } // 0xb9cf1f793a9f1bf1B323 + // Returns profile setting 243. + inline BOOL GetIsUsingHoodCamera() { return _i(0xCB645E85E97EA48B); } // 0xcb645e85e97ea48bB372 + inline Void ClearPlayerHasDamagedAtLeastOnePed(Player player) { return _i(0xF0B67A4DE6AB5F98, player); } // 0xf0b67a4de6ab5f980x1d31cbbdB323 + inline BOOL HasPlayerDamagedAtLeastOnePed(Player player) { return _i(0x20CE80B0C2BF4ACC, player); } // 0x20ce80b0c2bf4acc0x14f52453B323 + inline Void ClearPlayerHasDamagedAtLeastOneNonAnimalPed(Player player) { return _i(0x4AACB96203D11A31, player); } // 0x4aacb96203d11a310x7e3bfbc5B323 + inline BOOL HasPlayerDamagedAtLeastOneNonAnimalPed(Player player) { return _i(0xE4B90F367BD81752, player); } // 0xe4b90f367bd817520xa3707dfcB323 + // This can be between 1.0f - 14.9f + // + // You can change the max in IDA from 15.0. I say 15.0 as the function blrs if what you input is greater than or equal to 15.0 hence why it's 14.9 max default. + // + // + inline Void SetAirDragMultiplierForPlayersVehicle(Player player, float multiplier) { return _i(0xCA7DC8329F0A1E9E, player, multiplier); } // 0xca7dc8329f0a1e9e0xf20f72e5B323 + // Swim speed multiplier. + // Multiplier goes up to 1.49 + // + // Just call it one time, it is not required to be called once every tick. - Note copied from below native. + // + // Note: At least the IDA method if you change the max float multiplier from 1.5 it will change it for both this and RUN_SPRINT below. I say 1.5 as the function blrs if what you input is greater than or equal to 1.5 hence why it's 1.49 max default. + inline Void SetSwimMultiplierForPlayer(Player player, float multiplier) { return _i(0xA91C6F0FF7D16A13, player, multiplier); } // 0xa91c6f0ff7d16a130xb986ff47B323 + // Multiplier goes up to 1.49 any value above will be completely overruled by the game and the multiplier will not take effect, this can be edited in memory however. + // + // Just call it one time, it is not required to be called once every tick. + // + // Note: At least the IDA method if you change the max float multiplier from 1.5 it will change it for both this and SWIM above. I say 1.5 as the function blrs if what you input is greater than or equal to 1.5 hence why it's 1.49 max default. + inline Void SetRunSprintMultiplierForPlayer(Player player, float multiplier) { return _i(0x6DB47AA77FD94E09, player, multiplier); } // 0x6db47aa77fd94e090x825423c2B323 + // Returns the time since the character was arrested in (ms) milliseconds. + // + // example + // + // var time = Function.call(Hash.GetTimeSinceLastArrest(); + // + // UI.DrawSubtitle(time.ToString()); + // + // if player has not been arrested, the int returned will be -1. + inline int GetTimeSinceLastArrest() { return _i(0x5063F92F07C2A316); } // 0x5063f92f07c2a3160x62824ef4B323 + // Returns the time since the character died in (ms) milliseconds. + // + // example + // + // var time = Function.call(Hash.GetTimeSinceLastDeath(); + // + // UI.DrawSubtitle(time.ToString()); + // + // if player has not died, the int returned will be -1. + inline int GetTimeSinceLastDeath() { return _i(0xC7034807558DDFCA); } // 0xc7034807558ddfca0x24bc5ac0B323 + inline Void AssistedMovementCloseRoute() { return _i(0xAEBF081FFC0A0E5E); } // 0xaebf081ffc0a0e5e0xf23277f3B323 + inline Void AssistedMovementFlushRoute() { return _i(0x8621390F0CDCFE1F); } // 0x8621390f0cdcfe1f0xd04568b9B323 + inline Void SetPlayerForcedAim(Player player, BOOL toggle) { return _i(0x0FEE4F80AC44A726, player, toggle); } // 0x0fee4f80ac44a7260x94e42e2eB323 + inline Void SetPlayerForcedZoom(Player player, BOOL toggle) { return _i(0x75E7D505F2B15902, player, toggle); } // 0x75e7d505f2b159020xb0c576cbB323 + inline Void SetPlayerForceSkipAimIntro(Player player, BOOL toggle) { return _i(0x7651BC64AE59E128, player, toggle); } // 0x7651bc64ae59e1280x374f42f0B323 + // Inhibits the player from using any method of combat including melee and firearms. + // + // NOTE: Only disables the firing for one frame + inline Void DisablePlayerFiring(Player player, BOOL toggle) { return _i(0x5E6CC07646BBEAB8, player, toggle); } // 0x5e6cc07646bbeab80x30cb28cbB323 + // Used only once in R* scripts (freemode.ysc). + inline Void DisablePlayerThrowGrenadeWhileUsingGun() { return _i(0xB885852C39CC265D); } // 0xb885852c39cc265dB323 + inline Void SetDisableAmbientMeleeMove(Player player, BOOL toggle) { return _i(0x2E8AABFA40A84F8C, player, toggle); } // 0x2e8aabfa40a84f8c0xccd937e7B323 + // Default is 100. Use player id and not ped id. For instance: PLAYER::SetPlayerMaxArmour(PLAYER::PlayerId(), 100); // main_persistent.ct4 + inline Void SetPlayerMaxArmour(Player player, int value) { return _i(0x77DFCCF5948B8C71, player, value); } // 0x77dfccf5948b8c710xc6c3c53bB323 + // p1 is always 0 in the scripts + inline Void SpecialAbilityActivate(Player player, int p1) { return _i(0x821FDC827D6F4090, player, p1); } // 0x821fdc827d6f4090B678 + inline Void SetSpecialAbilityMp(Player player, int p1, Any p2) { return _i(0xB214D570EAD7F81A, player, p1, p2); } // 0xb214d570ead7f81aB678 + // p1 is always 0 in the scripts + inline Void SpecialAbilityDeactivateMp(Player player, int p1) { return _i(0x17F7471EACA78290, player, p1); } // 0x17f7471eaca78290B678 + inline Void SpecialAbilityDeactivate(Player player, Any p1) { return _i(0xD6A953C6D1492057, player, p1); } // 0xd6a953c6d14920570x80c2ab09B323 + inline Void SpecialAbilityDeactivateFast(Player player, Any p1) { return _i(0x9CB5CE07A3968D5A, player, p1); } // 0x9cb5ce07a3968d5a0x0751908aB323 + inline Void SpecialAbilityReset(Player player, Any p1) { return _i(0x375F0E738F861A94, player, p1); } // 0x375f0e738f861a940xa7d8bcd3B323 + inline Void SpecialAbilityChargeOnMissionFailed(Player player, Any p1) { return _i(0xC9A763D8FE87436A, player, p1); } // 0xc9a763d8fe87436a0x4136829aB323 + // Every occurrence of p1 & p2 were both true. + inline Void SpecialAbilityChargeSmall(Player player, BOOL p1, BOOL p2, Any p3) { return _i(0x2E7B9B683481687D, player, p1, p2, p3); } // 0x2e7b9b683481687d0x6f463f56B323 + // Only 1 match. Both p1 & p2 were true. + inline Void SpecialAbilityChargeMedium(Player player, BOOL p1, BOOL p2, Any p3) { return _i(0xF113E3AA9BC54613, player, p1, p2, p3); } // 0xf113e3aa9bc546130xab55d8f3B323 + // 2 matches. p1 was always true. + inline Void SpecialAbilityChargeLarge(Player player, BOOL p1, BOOL p2, Any p3) { return _i(0xF733F45FA4497D93, player, p1, p2, p3); } // 0xf733f45fa4497d930xf440c04dB323 + // p1 appears to always be 1 (only comes up twice) + inline Void SpecialAbilityChargeContinuous(Player player, Ped p1, Any p2) { return _i(0xED481732DFF7E997, player, p1, p2); } // 0xed481732dff7e9970x5fee98a2B323 + // p1 appears as 5, 10, 15, 25, or 30. p2 is always true. + inline Void SpecialAbilityChargeAbsolute(Player player, int p1, BOOL p2, Any p3) { return _i(0xB7B0870EB531D08D, player, p1, p2, p3); } // 0xb7b0870eb531d08d0x72429998B323 + // + // normalizedValue is from 0.0 - 1.0 + // p2 is always 1 + inline Void SpecialAbilityChargeNormalized(Player player, float normalizedValue, BOOL p2, Any p3) { return _i(0xA0696A65F009EE18, player, normalizedValue, p2, p3); } // 0xa0696a65f009ee180x8c7e68c1B323 + // Also known as _RECHARGE_SPECIAL_ABILITY + inline Void SpecialAbilityFillMeter(Player player, BOOL p1, Any p2) { return _i(0x3DACA8DDC6FD4980, player, p1, p2); } // 0x3daca8ddc6fd49800xb71589daB323 + // p1 was always true. + inline Void SpecialAbilityDepleteMeter(Player player, BOOL p1, Any p2) { return _i(0x1D506DBBBC51E64B, player, p1, p2); } // 0x1d506dbbbc51e64b0x9f80f6dfB323 + inline Void SpecialAbilityLock(Hash playerModel, Any p1) { return _i(0x6A09D0D590A47D13, playerModel, p1); } // 0x6a09d0d590a47d130x1b7bb388B323 + inline Void SpecialAbilityUnlock(Hash playerModel, Any p1) { return _i(0xF145F3BE2EFA9A3B, playerModel, p1); } // 0xf145f3be2efa9a3b0x1fdb2919B323 + inline BOOL IsSpecialAbilityUnlocked(Hash playerModel) { return _i(0xC6017F6A6CDFA694, playerModel); } // 0xc6017f6a6cdfa6940xc9c75e82B323 + inline BOOL IsSpecialAbilityActive(Player player, Any p1) { return _i(0x3E5F7FC85D854E15, player, p1); } // 0x3e5f7fc85d854e150x1b17e334B323 + inline BOOL IsSpecialAbilityMeterFull(Player player, Any p1) { return _i(0x05A1FE504B7F2587, player, p1); } // 0x05a1fe504b7f25870x2e19d7f6B323 + inline Void EnableSpecialAbility(Player player, BOOL toggle, Any p2) { return _i(0x181EC197DAEFE121, player, toggle, p2); } // 0x181ec197daefe1210xc86c1b4eB323 + inline BOOL IsSpecialAbilityEnabled(Player player, Any p1) { return _i(0xB1D200FE26AEF3CB, player, p1); } // 0xb1d200fe26aef3cb0xc01238ccB323 + inline Void SetSpecialAbilityMultiplier(float multiplier) { return _i(0xA49C426ED0CA4AB7, multiplier); } // 0xa49c426ed0ca4ab70xff1bc556B323 + inline Void UpdateSpecialAbilityFromStat(Player player, Any p1) { return _i(0xFFEE8FA29AB9A18E, player, p1); } // 0xffee8fa29ab9a18e0x5d0fe25bB323 + // Appears once in "re_dealgonewrong" + inline BOOL GetIsPlayerDrivingOnHighway(Player player) { return _i(0x5FC472C501CCADB3, player); } // 0x5fc472c501ccadb30x46e7e31dB323 + // Only 1 occurrence. p1 was 2. + inline BOOL GetIsPlayerDrivingWreckless(Player player, int p1) { return _i(0xF10B44FD479D69F3, player, p1); } // 0xf10b44fd479d69f30x1e359cc8B323 + // 2 occurrences in agency_heist3a. p1 was 0.7f then 0.4f. + inline BOOL GetIsMoppingAreaFreeInFrontOfPlayer(Player player, float p1) { return _i(0xDD2620B7B9D16FF1, player, p1); } // 0xdd2620b7b9d16ff10x8cb53c9fB323 + // `findCollisionLand`: This teleports the player to land when set to true and will not consider the Z coordinate parameter provided by you. It will automatically put the Z coordinate so that you don't fall from sky. + inline Void StartPlayerTeleport(Player player, float x, float y, float z, float heading, BOOL p5, BOOL findCollisionLand, BOOL p7) { return _i(0xAD15F075A4DA0FDE, player, x, y, z, heading, p5, findCollisionLand, p7); } // 0xad15f075a4da0fde0xc552e06cB323 + inline BOOL UpdatePlayerTeleport(Player player) { return _i(0xE23D5873C2394C61, player); } // 0xe23d5873c2394c61B323 + // Disables the player's teleportation + inline Void StopPlayerTeleport() { return _i(0xC449EDED9D73009C); } // 0xc449eded9d73009c0x86ab8dbbB323 + inline BOOL IsPlayerTeleportActive() { return _i(0x02B15662D7F8886F); } // 0x02b15662d7f8886f0x3a11d118B323 + inline float GetPlayerCurrentStealthNoise(Player player) { return _i(0x2F395D61F3A1F877, player); } // 0x2f395d61f3a1f8770xc3b02362B323 + // `regenRate`: The recharge multiplier, a value between 0.0 and 1.0. + // Use 1.0 to reset it back to normal + inline Void SetPlayerHealthRechargeMultiplier(Player player, float regenRate) { return _i(0x5DB660B38DD98A31, player, regenRate); } // 0x5db660b38dd98a310x45514731B323 + inline float GetPlayerHealthRechargeMaxPercent(Player player) { return _i(0x8BC515BAE4AAF8FF, player); } // 0x8bc515bae4aaf8ffB617 + inline Void SetPlayerHealthRechargeMaxPercent(Player player, float limit) { return _i(0xC388A0F065F5BC34, player, limit); } // 0xc388a0f065f5bc34B573 + // Needs to be called every frame. + inline Void DisablePlayerHealthRecharge(Player player) { return _i(0xBCB06442F7E52666, player); } // 0xbcb06442f7e52666B2802 + inline Void SetPlayerFallDistanceToTriggerRagdollOverride(Player player, float p1) { return _i(0xEFD79FA81DFBA9CB, player, p1); } // 0xefd79fa81dfba9cbB573 + // This modifies the damage value of your weapon. Whether it is a multiplier or base damage is unknown. + // + // Based on tests, it is unlikely to be a multiplier. + // + // modifier's min value is 0.1 + inline Void SetPlayerWeaponDamageModifier(Player player, float modifier) { return _i(0xCE07B9F7817AADA3, player, modifier); } // 0xce07b9f7817aada30xb02c2f39B323 + // modifier's min value is 0.1 + inline Void SetPlayerWeaponDefenseModifier(Player player, float modifier) { return _i(0x2D83BC011CA14A3C, player, modifier); } // 0x2d83bc011ca14a3c0xae446344B323 + // modifier's min value is 0.1 + inline Void SetPlayerWeaponMinigunDefenseModifier(Player player, float modifier) { return _i(0xBCFDE9EDE4CF27DC, player, modifier); } // 0xbcfde9ede4cf27dcB944 + // modifier's min value is 0.1 + inline Void SetPlayerMeleeWeaponDamageModifier(Player player, float modifier, BOOL p2) { return _i(0x4A3DC7ECCC321032, player, modifier, p2); } // 0x4a3dc7eccc3210320x362e69adB323 + // modifier's min value is 0.1 + inline Void SetPlayerMeleeWeaponDefenseModifier(Player player, float modifier) { return _i(0xAE540335B4ABC4E2, player, modifier); } // 0xae540335b4abc4e20x9f3d577fB323 + // modifier's min value is 0.1 + inline Void SetPlayerVehicleDamageModifier(Player player, float modifier) { return _i(0xA50E117CDDF82F0C, player, modifier); } // 0xa50e117cddf82f0c0x823eca63B323 + // modifier's min value is 0.1 + inline Void SetPlayerVehicleDefenseModifier(Player player, float modifier) { return _i(0x4C60E6EFDAFF2462, player, modifier); } // 0x4c60e6efdaff24620xa16626c7B323 + inline Void SetPlayerMaxExplosiveDamage(Player player, float p1) { return _i(0x8D768602ADEF2245, player, p1); } // 0x8d768602adef2245B463 + inline Void SetPlayerExplosiveDamageModifier(Player player, Any p1) { return _i(0xD821056B9ACF8052, player, p1); } // 0xd821056b9acf8052B1011 + inline Void SetPlayerWeaponTakedownDefenseModifier(Player player, float p1) { return _i(0x31E90B8873A4CD3B, player, p1); } // 0x31e90b8873a4cd3bB617 + // Tints: + // None = -1, + // Rainbow = 0, + // Red = 1, + // SeasideStripes = 2, + // WidowMaker = 3, + // Patriot = 4, + // Blue = 5, + // Black = 6, + // Hornet = 7, + // AirFocce = 8, + // Desert = 9, + // Shadow = 10, + // HighAltitude = 11, + // Airbone = 12, + // Sunrise = 13, + // + inline Void SetPlayerParachuteTintIndex(Player player, int tintIndex) { return _i(0xA3D0E54541D9A5E5, player, tintIndex); } // 0xa3d0e54541d9a5e50x8ea12edbB323 + // Tints: + // None = -1, + // Rainbow = 0, + // Red = 1, + // SeasideStripes = 2, + // WidowMaker = 3, + // Patriot = 4, + // Blue = 5, + // Black = 6, + // Hornet = 7, + // AirFocce = 8, + // Desert = 9, + // Shadow = 10, + // HighAltitude = 11, + // Airbone = 12, + // Sunrise = 13, + inline Void GetPlayerParachuteTintIndex(Player player, int* tintIndex) { return _i(0x75D3F7A1B0D9B145, player, tintIndex); } // 0x75d3f7a1b0d9b1450x432b0509B323 + // Tints: + // None = -1, + // Rainbow = 0, + // Red = 1, + // SeasideStripes = 2, + // WidowMaker = 3, + // Patriot = 4, + // Blue = 5, + // Black = 6, + // Hornet = 7, + // AirFocce = 8, + // Desert = 9, + // Shadow = 10, + // HighAltitude = 11, + // Airbone = 12, + // Sunrise = 13, + inline Void SetPlayerReserveParachuteTintIndex(Player player, int index) { return _i(0xAF04C87F5DC1DF38, player, index); } // 0xaf04c87f5dc1df380x70689638B323 + // Tints: + // None = -1, + // Rainbow = 0, + // Red = 1, + // SeasideStripes = 2, + // WidowMaker = 3, + // Patriot = 4, + // Blue = 5, + // Black = 6, + // Hornet = 7, + // AirFocce = 8, + // Desert = 9, + // Shadow = 10, + // HighAltitude = 11, + // Airbone = 12, + // Sunrise = 13, + inline Void GetPlayerReserveParachuteTintIndex(Player player, int* index) { return _i(0xD5A016BC3C09CF40, player, index); } // 0xd5a016bc3c09cf400x77b8ef01B323 + // tints 0- 13 + // 0 - unkown + // 1 - unkown + // 2 - unkown + // 3 - unkown + // 4 - unkown + inline Void SetPlayerParachutePackTintIndex(Player player, int tintIndex) { return _i(0x93B0FB27C9A04060, player, tintIndex); } // 0x93b0fb27c9a040600xd79d5d1bB323 + inline Void GetPlayerParachutePackTintIndex(Player player, int* tintIndex) { return _i(0x6E9C742F340CE5A2, player, tintIndex); } // 0x6e9c742f340ce5a20x4e418e13B323 + inline Void SetPlayerHasReserveParachute(Player player) { return _i(0x7DDAB28D31FAC363, player); } // 0x7ddab28d31fac3630xa3e4798eB323 + inline BOOL GetPlayerHasReserveParachute(Player player) { return _i(0x5DDFE2FF727F3CA3, player); } // 0x5ddfe2ff727f3ca30x30da1da1B323 + inline Void SetPlayerCanLeaveParachuteSmokeTrail(Player player, BOOL enabled) { return _i(0xF401B182DBA8AF53, player, enabled); } // 0xf401b182dba8af530x832deb7aB323 + inline Void SetPlayerParachuteSmokeTrailColor(Player player, int r, int g, int b) { return _i(0x8217FD371A4625CF, player, r, g, b); } // 0x8217fd371a4625cf0x14fe9264B323 + inline Void GetPlayerParachuteSmokeTrailColor(Player player, int* r, int* g, int* b) { return _i(0xEF56DBABD3CD4887, player, r, g, b); } // 0xef56dbabd3cd48870xf66e5cddB323 + // example: + // + // flags: 0-6 + // + // PLAYER::SET_PLAYER_RESET_FLAG_PREFER_REAR_SEATS(PLAYER::PlayerId(), 6); + // + // wouldnt the flag be the seatIndex? + inline Void SetPlayerPhonePaletteIdx(Player player, int flags) { return _i(0x11D5F725F0E780E0, player, flags); } // 0x11d5f725f0e780e0B323 + inline Void SetPlayerNoiseMultiplier(Player player, float multiplier) { return _i(0xDB89EF50FF25FCE9, player, multiplier); } // 0xdb89ef50ff25fce90x15786dd1B323 + // Values around 1.0f to 2.0f used in game scripts. + inline Void SetPlayerSneakingNoiseMultiplier(Player player, float multiplier) { return _i(0xB2C1A29588A9F47C, player, multiplier); } // 0xb2c1a29588a9f47c0x8d2d89c4B323 + inline BOOL CanPedHearPlayer(Player player, Ped ped) { return _i(0xF297383AA91DCA29, player, ped); } // 0xf297383aa91dca290x1c70b2ebB323 + // This is to make the player walk without accepting input from INPUT. + // + // gaitType is in increments of 100s. 2000, 500, 300, 200, etc. + // + // p4 is always 1 and p5 is always 0. + // + // C# Example : + // + // Function.Call(Hash.SimulatePlayerInputGait, Game.Player, 1.0f, 100, 1.0f, 1, 0); //Player will go forward for 100ms + inline Void SimulatePlayerInputGait(Player player, float amount, int gaitType, float speed, BOOL p4, BOOL p5, Any p6) { return _i(0x477D5D63E63ECA5D, player, amount, gaitType, speed, p4, p5, p6); } // 0x477d5d63e63eca5d0x0d77cc34B323 + inline Void ResetPlayerInputGait(Player player) { return _i(0x19531C47A2ABD691, player); } // 0x19531c47a2abd6910x4a701ee1B323 + inline Void SetAutoGiveParachuteWhenEnterPlane(Player player, BOOL toggle) { return _i(0x9F343285A00B4BB6, player, toggle); } // 0x9f343285a00b4bb60xa97c2059B323 + inline Void SetAutoGiveScubaGearWhenExitVehicle(Player player, BOOL toggle) { return _i(0xD2B315B6689D537D, player, toggle); } // 0xd2b315b6689d537d0xa25d767eB323 + inline Void SetPlayerStealthPerceptionModifier(Player player, float value) { return _i(0x4E9021C1FCDD507A, player, value); } // 0x4e9021c1fcdd507a0x3d26105fB323 + inline BOOL IsRemotePlayerInNonClonedVehicle(Player player) { return _i(0x690A61A6D13583F6, player); } // 0x690a61a6d13583f60x1d371529B323 + inline Void IncreasePlayerJumpSuppressionRange(Player player) { return _i(0x9EDD76E87D5D51BA, player); } // 0x9edd76e87d5d51ba0xe30a64dcB323 + inline Void SetPlayerSimulateAiming(Player player, BOOL toggle) { return _i(0xC54C95DA968EC5B5, player, toggle); } // 0xc54c95da968ec5b50xf1e0cafcB323 + inline Void SetPlayerClothPinFrames(Player player, int p1) { return _i(0x749FADDF97DFE930, player, p1); } // 0x749faddf97dfe9300xf7a0f00fB323 + // Every occurrence was either 0 or 2. + inline Void SetPlayerClothPackageIndex(int index) { return _i(0x9F7BBA2EA6372500, index); } // 0x9f7bba2ea63725000xb8209f16B323 + // 6 matches across 4 scripts. 5 occurrences were 240. The other was 255. + inline Void SetPlayerClothLockCounter(int value) { return _i(0x14D913B777DFF5DA, value); } // 0x14d913b777dff5da0x8d9fd4d1B323 + // Only 1 match. ob_sofa_michael. + // + // PLAYER::PlayerAttachVirtualBound(-804.5928f, 173.1801f, 71.68436f, 0f, 0f, 0.590625f, 1f, 0.7f);1.0.335.2, 1.0.350.1/2, 1.0.372.2, 1.0.393.2, 1.0.393.4, 1.0.463.1; + inline Void PlayerAttachVirtualBound(float p0, float p1, float p2, float p3, float p4, float p5, float p6, float p7) { return _i(0xED51733DC73AED51, p0, p1, p2, p3, p4, p5, p6, p7); } // 0xed51733dc73aed510xecd12e60B323 + // 1.0.335.2, 1.0.350.1/2, 1.0.372.2, 1.0.393.2, 1.0.393.4, 1.0.463.1; + inline Void PlayerDetachVirtualBound() { return _i(0x1DD5897E2FA6E7C9); } // 0x1dd5897e2fa6e7c90x96100ea4B323 + inline BOOL HasPlayerBeenSpottedInStolenVehicle(Player player) { return _i(0xD705740BB0A1CF4C, player); } // 0xd705740bb0a1cf4c0x4a01b76aB323 + // Returns true if an unk value is greater than 0.0f + inline BOOL IsPlayerBattleAware(Player player) { return _i(0x38D28DA81E4E9BF9, player); } // 0x38d28da81e4e9bf90x013b4f72B323 + inline BOOL GetPlayerReceivedBattleEventRecently(Player player, int p1, BOOL p2) { return _i(0xBC0753C9CA14B506, player, p1, p2); } // 0xbc0753c9ca14b5060x9df75b2aB323 + // Appears only 3 times in the scripts, more specifically in michael1.ysc + // + // - + // This can be used to prevent dying if you are "out of the world" + inline Void ExtendWorldBoundaryForPlayer(float x, float y, float z) { return _i(0x5006D96C995A5827, x, y, z); } // 0x5006d96c995a58270x64ddb07dB323 + inline Void ResetWorldBoundaryForPlayer() { return _i(0xDA1DF03D5A315F4E); } // 0xda1df03d5a315f4e0xa97c2f6cB323 + // Returns true if the player is riding a train. + inline BOOL IsPlayerRidingTrain(Player player) { return _i(0x4EC12697209F2196, player); } // 0x4ec12697209f21960x9765e71dB323 + inline BOOL HasPlayerLeftTheWorld(Player player) { return _i(0xD55DDFB47991A294, player); } // 0xd55ddfb47991a2940xfea40b6cB323 + inline Void SetPlayerLeavePedBehind(Player player, BOOL toggle) { return _i(0xFF300C7649724A0B, player, toggle); } // 0xff300c7649724a0b0xad8383faB323 + // p1 was always 5. + // p4 was always false. + inline Void SetPlayerParachuteVariationOverride(Player player, int p1, Any p2, Any p3, BOOL p4) { return _i(0xD9284A8C0D48352C, player, p1, p2, p3, p4); } // 0xd9284a8c0d48352c0x9254249dB323 + inline Void ClearPlayerParachuteVariationOverride(Player player) { return _i(0x0F4CC924CF8C7B21, player); } // 0x0f4cc924cf8c7b210xfd60f5abB323 + inline Void SetPlayerParachuteModelOverride(Player player, Hash model) { return _i(0x977DB4641F6FC3DB, player, model); } // 0x977db4641f6fc3db0x5d382498B323 + inline Void SetPlayerReserveParachuteModelOverride(Player player, Hash model) { return _i(0x0764486AEDE748DB, player, model); } // 0x0764486aede748dbB2372 + inline Hash GetPlayerParachuteModelOverride(Player player) { return _i(0xC219887CA3E65C41, player); } // 0xc219887ca3e65c41B2372 + inline Hash GetPlayerReserveParachuteModelOverride(Player player) { return _i(0x37FAAA68DCA9D08D, player); } // 0x37faaa68dca9d08dB2372 + inline Void ClearPlayerParachuteModelOverride(Player player) { return _i(0x8753997EB5F6EE3F, player); } // 0x8753997eb5f6ee3f0x6ff034bbB323 + inline Void ClearPlayerReserveParachuteModelOverride(Player player) { return _i(0x290D248E25815AE8, player); } // 0x290d248e25815ae8B2372 + inline Void SetPlayerParachutePackModelOverride(Player player, Hash model) { return _i(0xDC80A4C2F18A2B64, player, model); } // 0xdc80a4c2f18a2b640xa877ff5eB323 + inline Void ClearPlayerParachutePackModelOverride(Player player) { return _i(0x10C54E4389C12B42, player); } // 0x10c54e4389c12b420xbb62aac5B323 + inline Void DisablePlayerVehicleRewards(Player player) { return _i(0xC142BE3BB9CE125F, player); } // 0xc142be3bb9ce125f0x8c6e611dB323 + inline Void SetPlayerSpectatedVehicleRadioOverride(BOOL p0) { return _i(0x2F7CEB6520288061, p0); } // 0x2f7ceb65202880610x2849d4b2B323 + inline Void SetPlayerBluetoothState(Player player, BOOL state) { return _i(0x5DC40A8869C22141, player, state); } // 0x5dc40a8869c221410x7a6b0ef8B323 + inline BOOL IsPlayerBluetoothEnable(Player player) { return _i(0x65FAEE425DE637B0, player); } // 0x65faee425de637b00xea01bd4aB323 + inline Void DisableCameraViewModeCycle(Player player) { return _i(0x5501B7A5CDB79D37, player); } // 0x5501b7a5cdb79d37B323 + inline int GetPlayerFakeWantedLevel(Player player) { return _i(0x56105E599CAB0EFA, player); } // 0x56105e599cab0efa0x0098d244B323 + inline Void SetPlayerCanDamagePlayer(Player player1, Player player2, BOOL toggle) { return _i(0x55FCC0C390620314, player1, player2, toggle); } // 0x55fcc0c390620314B573 + inline Void SetApplyWaypointOfPlayer(Player player, int hudColor) { return _i(0x2382AB11450AE7BA, player, hudColor); } // 0x2382ab11450ae7baB877 + inline BOOL IsPlayerVehicleWeaponToggledToNonHoming(Any p0) { return _i(0x6E4361FF3E8CD7CA, p0); } // 0x6e4361ff3e8cd7caB1011 + // Unsets playerPed+330 if the current weapon has certain flags. + inline Void SetPlayerVehicleWeaponToNonHoming(Any p0) { return _i(0x237440E46D918649, p0); } // 0x237440e46d918649B1290 + inline Void SetPlayerHomingDisabledForAllVehicleWeapons(Any p0, Any p1) { return _i(0xEE4EBDD2593BA844, p0, p1); } // 0xee4ebdd2593ba844B1180 + inline Void AddPlayerTargetableEntity(Player player, Entity entity) { return _i(0x9097EB6D4BB9A12A, player, entity); } // 0x9097eb6d4bb9a12aB1868 + inline Void RemovePlayerTargetableEntity(Player player, Entity entity) { return _i(0x9F260BFB59ADBCA3, player, entity); } // 0x9f260bfb59adbca3B1868 + inline Void SetPlayerPreviousVariationData(Player player, int p1, int p2, Any p3, Any p4, Any p5) { return _i(0x7BAE68775557AE0B, player, p1, p2, p3, p4, p5); } // 0x7bae68775557ae0bB1290 + // Resets values set by SetScriptFirePosition + inline Void RemoveScriptFirePosition() { return _i(0x7148E0F43D11F0D9); } // 0x7148e0f43d11f0d9B1604 + inline Void SetScriptFirePosition(float coordX, float coordY, float coordZ) { return _i(0x70A382ADEC069DD3, coordX, coordY, coordZ); } // 0x70a382adec069dd3B1604 } namespace RECORDING { - inline Void ReplayStartEvent(int p0) { return _i(0x48621C9FCA3EBD28, p0); } // 0x48621c9fca3ebd28B323 - inline Void ReplayStopEvent() { return _i(0x81CBAE94390F9F89); } // 0x81cbae94390f9f89B323 - inline Void ReplayCancelEvent() { return _i(0x13B350B8AD0EEE10); } // 0x13b350b8ad0eee10B323 - inline Void ReplayRecordBackForTime(float p0, float p1, int p2) { return _i(0x293220DA1B46CEBC, p0, p1, p2); } // 0x293220da1b46cebcB323 - // -This function appears to be deprecated/ unused. Tracing the call internally leads to a _nullsub - - // - // first one seems to be a string of a mission name, second one seems to be a bool/toggle - // - // p1 was always 0. - // - inline Void ReplayCheckForEventThisFrame(String missionNameLabel, Any p1) { return _i(0x208784099002BC30, missionNameLabel, p1); } // 0x208784099002bc30B323 - // This disable the recording feature and has to be called every frame. - inline Void ReplayPreventRecordingThisFrame() { return _i(0xEB2D525B57F42B40); } // 0xeb2d525b57f42b40B323 - inline Void ReplayResetEventInfo() { return _i(0xF854439EFBB3B583); } // 0xf854439efbb3b583B323 - // This will disable the ability to make camera changes in R* Editor. - inline Void ReplayDisableCameraMovementThisFrame() { return _i(0xAF66DCEE6609B148); } // 0xaf66dcee6609b148B323 - // Does nothing (it's a nullsub). - inline Void RecordGreatestMoment(int p0, int p1, int p2) { return _i(0x66972397E0757E7A, p0, p1, p2); } // 0x66972397e0757e7aB323 - // Starts recording a replay. - // If mode is 0, turns on action replay. - // If mode is 1, starts recording. - // If already recording a replay, does nothing. - inline Void StartReplayRecording(int mode) { return _i(0xC3AC2FFF9612AC81, mode); } // 0xc3ac2fff9612ac81B323 - // Stops recording and saves the recorded clip. - inline Void StopReplayRecording() { return _i(0x071A5197D6AFC8B3); } // 0x071a5197d6afc8b3B323 - // Stops recording and discards the recorded clip. - inline Void CancelReplayRecording() { return _i(0x88BB3507ED41A240); } // 0x88bb3507ed41a240B323 - inline BOOL SaveReplayRecording() { return _i(0x644546EC5287471B); } // 0x644546ec5287471bB323 - // Checks if you're recording, returns TRUE when you start recording (F1) or turn on action replay (F2) - // - // mov al, cs:g_bIsRecordingGameplay // byte_141DD0CD0 in b944 - // retn - inline BOOL IsReplayRecording() { return _i(0x1897CA71995A90B4); } // 0x1897ca71995a90b4B323 - inline BOOL IsReplayInitialized() { return _i(0xDF4B952F7D381B95); } // 0xdf4b952f7d381b95B323 - inline BOOL IsReplayAvailable() { return _i(0x4282E08174868BE3); } // 0x4282e08174868be3B323 - inline BOOL IsReplayRecordSpaceAvailable(BOOL p0) { return _i(0x33D47E85B476ABCD, p0); } // 0x33d47e85b476abcdB323 + inline Void ReplayStartEvent(int p0) { return _i(0x48621C9FCA3EBD28, p0); } // 0x48621c9fca3ebd28B323 + inline Void ReplayStopEvent() { return _i(0x81CBAE94390F9F89); } // 0x81cbae94390f9f89B323 + inline Void ReplayCancelEvent() { return _i(0x13B350B8AD0EEE10); } // 0x13b350b8ad0eee10B323 + inline Void ReplayRecordBackForTime(float p0, float p1, int p2) { return _i(0x293220DA1B46CEBC, p0, p1, p2); } // 0x293220da1b46cebcB323 + // -This function appears to be deprecated/ unused. Tracing the call internally leads to a _nullsub - + // + // first one seems to be a string of a mission name, second one seems to be a BOOL/toggle + // + // p1 was always 0. + // + inline Void ReplayCheckForEventThisFrame(String missionNameLabel, Any p1) { return _i(0x208784099002BC30, missionNameLabel, p1); } // 0x208784099002bc30B323 + // This disable the recording feature and has to be called every frame. + inline Void ReplayPreventRecordingThisFrame() { return _i(0xEB2D525B57F42B40); } // 0xeb2d525b57f42b40B323 + inline Void ReplayResetEventInfo() { return _i(0xF854439EFBB3B583); } // 0xf854439efbb3b583B323 + // This will disable the ability to make camera changes in R* Editor. + inline Void ReplayDisableCameraMovementThisFrame() { return _i(0xAF66DCEE6609B148); } // 0xaf66dcee6609b148B323 + // Does nothing (it's a nullsub). + inline Void RecordGreatestMoment(int p0, int p1, int p2) { return _i(0x66972397E0757E7A, p0, p1, p2); } // 0x66972397e0757e7aB323 + // Starts recording a replay. + // If mode is 0, turns on action replay. + // If mode is 1, starts recording. + // If already recording a replay, does nothing. + inline Void StartReplayRecording(int mode) { return _i(0xC3AC2FFF9612AC81, mode); } // 0xc3ac2fff9612ac81B323 + // Stops recording and saves the recorded clip. + inline Void StopReplayRecording() { return _i(0x071A5197D6AFC8B3); } // 0x071a5197d6afc8b3B323 + // Stops recording and discards the recorded clip. + inline Void CancelReplayRecording() { return _i(0x88BB3507ED41A240); } // 0x88bb3507ed41a240B323 + inline BOOL SaveReplayRecording() { return _i(0x644546EC5287471B); } // 0x644546ec5287471bB323 + // Checks if you're recording, returns TRUE when you start recording (F1) or turn on action replay (F2) + // + // mov al, cs:g_bIsRecordingGameplay // byte_141DD0CD0 in b944 + // retn + inline BOOL IsReplayRecording() { return _i(0x1897CA71995A90B4); } // 0x1897ca71995a90b4B323 + inline BOOL IsReplayInitialized() { return _i(0xDF4B952F7D381B95); } // 0xdf4b952f7d381b95B323 + inline BOOL IsReplayAvailable() { return _i(0x4282E08174868BE3); } // 0x4282e08174868be3B323 + inline BOOL IsReplayRecordSpaceAvailable(BOOL p0) { return _i(0x33D47E85B476ABCD, p0); } // 0x33d47e85b476abcdB323 } namespace REPLAY { - // Does nothing (it's a nullsub). - inline Void RegisterEffectForReplayEditor(String p0, BOOL p1) { return _i(0x7E2BD3EF6C205F09, p0, p1); } // 0x7e2bd3ef6c205f09B323 - // Returns a bool if interior rendering is disabled, if yes, all "normal" rendered interiors are invisible - inline BOOL ReplaySystemHasRequestedAScriptCleanup() { return _i(0x95AB8B5C992C7B58); } // 0x95ab8b5c992c7b58B323 - // Disables some other rendering (internal) - inline Void SetScriptsHaveCleanedUpForReplaySystem() { return _i(0x5AD3932DAEB1E5D3); } // 0x5ad3932daeb1e5d3B323 - inline Void SetReplaySystemPausedForSave(BOOL p0) { return _i(0xE058175F8EAFE79A, p0); } // 0xe058175f8eafe79aB323 - // Sets (almost, not sure) all Rockstar Editor values (bIsRecording etc) to 0. - inline Void ReplayControlShutdown() { return _i(0x3353D13F09307691); } // 0x3353d13f09307691B323 - // Please note that you will need to call DoScreenFadeIn after exiting the Rockstar Editor when you call this. - inline Void ActivateRockstarEditor(int p0) { return _i(0x49DA8145672B2725, p0); } // 0x49da8145672b2725B323 + // Does nothing (it's a nullsub). + inline Void RegisterEffectForReplayEditor(String p0, BOOL p1) { return _i(0x7E2BD3EF6C205F09, p0, p1); } // 0x7e2bd3ef6c205f09B323 + // Returns a BOOL if interior rendering is disabled, if yes, all "normal" rendered interiors are invisible + inline BOOL ReplaySystemHasRequestedAScriptCleanup() { return _i(0x95AB8B5C992C7B58); } // 0x95ab8b5c992c7b58B323 + // Disables some other rendering (internal) + inline Void SetScriptsHaveCleanedUpForReplaySystem() { return _i(0x5AD3932DAEB1E5D3); } // 0x5ad3932daeb1e5d3B323 + inline Void SetReplaySystemPausedForSave(BOOL p0) { return _i(0xE058175F8EAFE79A, p0); } // 0xe058175f8eafe79aB323 + // Sets (almost, not sure) all Rockstar Editor values (bIsRecording etc) to 0. + inline Void ReplayControlShutdown() { return _i(0x3353D13F09307691); } // 0x3353d13f09307691B323 + // Please note that you will need to call DoScreenFadeIn after exiting the Rockstar Editor when you call this. + inline Void ActivateRockstarEditor(int p0) { return _i(0x49DA8145672B2725, p0); } // 0x49da8145672b2725B323 } namespace SAVEMIGRATION { - inline BOOL SavemigrationIsMpEnabled() { return _i(0x84B418E93894AC1C); } // 0x84b418e93894ac1cB2372 - inline BOOL SavemigrationMpRequestAccounts() { return _i(0x85F41F9225D08C72); } // 0x85f41f9225d08c72B2612 - inline int SavemigrationMpGetAccountsStatus() { return _i(0xC8CB5999919EA2CA); } // 0xc8cb5999919ea2caB2612 - inline int SavemigrationMpNumAccounts() { return _i(0x77A16200E18E0C55); } // 0x77a16200e18e0c55B2612 - inline BOOL SavemigrationMpGetAccount(int p0, Any* p1) { return _i(0xFCE2747EEF1D05FC, p0, p1); } // 0xfce2747eef1d05fcB2612 - inline BOOL SavemigrationMpRequestStatus() { return _i(0xE5E9746A66359F9D); } // 0xe5e9746a66359f9dB2372 - inline int SavemigrationMpGetStatus() { return _i(0x690B76BD2763E068); } // 0x690b76bd2763e068B2372 + inline BOOL SavemigrationIsMpEnabled() { return _i(0x84B418E93894AC1C); } // 0x84b418e93894ac1cB2372 + inline BOOL SavemigrationMpRequestAccounts() { return _i(0x85F41F9225D08C72); } // 0x85f41f9225d08c72B2612 + inline int SavemigrationMpGetAccountsStatus() { return _i(0xC8CB5999919EA2CA); } // 0xc8cb5999919ea2caB2612 + inline int SavemigrationMpNumAccounts() { return _i(0x77A16200E18E0C55); } // 0x77a16200e18e0c55B2612 + inline BOOL SavemigrationMpGetAccount(int p0, Any* p1) { return _i(0xFCE2747EEF1D05FC, p0, p1); } // 0xfce2747eef1d05fcB2612 + inline BOOL SavemigrationMpRequestStatus() { return _i(0xE5E9746A66359F9D); } // 0xe5e9746a66359f9dB2372 + inline int SavemigrationMpGetStatus() { return _i(0x690B76BD2763E068); } // 0x690b76bd2763e068B2372 } namespace SCRIPT { - inline Void RequestScript(String scriptName) { return _i(0x6EB5F71AA68F2E8E, scriptName); } // 0x6eb5f71aa68f2e8e0xe26b2666B323 - inline Void SetScriptAsNoLongerNeeded(String scriptName) { return _i(0xC90D2DCACD56184C, scriptName); } // 0xc90d2dcacd56184c0x6fcb7795B323 - // Returns if a script has been loaded into the game. Used to see if a script was loaded after requesting. - inline BOOL HasScriptLoaded(String scriptName) { return _i(0xE6CC9F3BA0FB9EF1, scriptName); } // 0xe6cc9f3ba0fb9ef10x5d67f751B323 - inline BOOL DoesScriptExist(String scriptName) { return _i(0xFC04745FBE67C19A, scriptName); } // 0xfc04745fbe67c19a0xdeab87abB323 - // formerly _REQUEST_STREAMED_SCRIPT - inline Void RequestScriptWithNameHash(Hash scriptHash) { return _i(0xD62A67D26D9653E6, scriptHash); } // 0xd62a67d26d9653e60x1c68d9dcB323 - inline Void SetScriptWithNameHashAsNoLongerNeeded(Hash scriptHash) { return _i(0xC5BC038960E9DB27, scriptHash); } // 0xc5bc038960e9db270x96c26f66B323 - inline BOOL HasScriptWithNameHashLoaded(Hash scriptHash) { return _i(0x5F0F0C783EB16C04, scriptHash); } // 0x5f0f0c783eb16c040x06674818B323 - inline BOOL DoesScriptWithNameHashExist(Hash scriptHash) { return _i(0xF86AA3C56BA31381, scriptHash); } // 0xf86aa3c56ba313810x19eae282B323 - inline Void TerminateThread(int threadId) { return _i(0xC8B189ED9138BCD4, threadId); } // 0xc8b189ed9138bcd40x253fd520B323 - inline BOOL IsThreadActive(int threadId) { return _i(0x46E9AE36D8FA6417, threadId); } // 0x46e9ae36d8fa64170x78d7a5a0B323 - inline String GET_NAME_OF_SCRIPT_WITH_THIS_ID(int threadId) { return _i(0x05A42BA9FC8DA96B, threadId); } // 0x05A42BA9FC8DA96B 0xBE7ACD89 b323 - // Starts a new iteration of the current threads. - // Call this first, then ScriptThreadIteratorGetNextThreadId (0x30B4FA1C82DD4B9F) - inline Void ScriptThreadIteratorReset() { return _i(0xDADFADA5A20143A8); } // 0xdadfada5a20143a80xbb4e2f66B323 - // If the function returns 0, the end of the iteration has been reached. - inline int ScriptThreadIteratorGetNextThreadId() { return _i(0x30B4FA1C82DD4B9F); } // 0x30b4fa1c82dd4b9f0x1e28b28fB323 - inline int GetIdOfThisThread() { return _i(0xC30338E8088E2E21); } // 0xc30338e8088e2e210xde524830B323 - inline Void TerminateThisThread() { return _i(0x1090044AD1DA76FA); } // 0x1090044ad1da76fa0x3cd9cbb7B323 - // Gets the number of instances of the specified script is currently running. - // - // Actually returns numRefs - 1. - // if (program) - // v3 = rage::scrProgram::GetNumRefs(program) - 1; - // return v3; - inline int GetNumberOfThreadsRunningTheScriptWithThisHash(Hash scriptHash) { return _i(0x2C83A9DA6BFFC4F9, scriptHash); } // 0x2c83a9da6bffc4f90x029d3841B323 - inline String GetThisScriptName() { return _i(0x442E0A7EDE4A738A); } // 0x442E0A7EDE4A738A 0xA40FD5D9 b323 - inline Hash GetHashOfThisScriptName() { return _i(0x8A1C8B1738FFE87E); } // 0x8a1c8b1738ffe87e0x2bee1f45B323 - // eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) - inline int GetNumberOfEvents(int eventGroup) { return _i(0x5F92A689A06620AA, eventGroup); } // 0x5f92a689a06620aa0xa3525d60B323 - // eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) - inline BOOL GetEventExists(int eventGroup, int eventIndex) { return _i(0x936E6168A9BCEDB5, eventGroup, eventIndex); } // 0x936e6168a9bcedb50xa1b447b5B323 - // eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) - inline int GetEventAtIndex(int eventGroup, int eventIndex) { return _i(0xD8F66A3A60C62153, eventGroup, eventIndex); } // 0xd8f66a3a60c621530xb49c1442B323 - // eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) - // - // Note: eventDataSize is NOT the size in bytes, it is the size determined by the SIZE_OF operator (RAGE Script operator, not C/C++ sizeof). That is, the size in bytes divided by 8 (script variables are always 8-byte aligned!). - inline BOOL GetEventData(int eventGroup, int eventIndex, Any* eventData, int eventDataSize) { return _i(0x2902843FCD2B2D79, eventGroup, eventIndex, eventData, eventDataSize); } // 0x2902843fcd2b2d790x4280f92fB323 - // eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) - // - // Note: eventDataSize is NOT the size in bytes, it is the size determined by the SIZE_OF operator (RAGE Script operator, not C/C++ sizeof). That is, the size in bytes divided by 8 (script variables are always 8-byte aligned!). - // - // playerBits (also known as playersToBroadcastTo) is a bitset that indicates which players this event should be sent to. In order to send the event to specific players only, use (1 << playerIndex). Set all bits if it should be broadcast to all players. - inline Void TriggerScriptEvent(int eventGroup, Any* eventData, int eventDataSize, int playerBits) { return _i(0x5AE99C571D5BBE5D, eventGroup, eventData, eventDataSize, playerBits); } // 0x5ae99c571d5bbe5d0x54763b35B323 - inline Void ShutdownLoadingScreen() { return _i(0x078EBE9809CCD637); } // 0x078ebe9809ccd6370xa2826d17B323 - inline Void SetNoLoadingScreen(BOOL toggle) { return _i(0x5262CC1995D07E09, toggle); } // 0x5262cc1995d07e090xc8055034B323 - inline BOOL GetNoLoadingScreen() { return _i(0x18C1270EA7F199BC); } // 0x18c1270ea7f199bc0x27512ba0B323 - inline Void CommitToLoadingscreenSelction() { return _i(0xB1577667C3708F9B); } // 0xb1577667c3708f9b0xb03bccdfB323 - // Returns true if bit 0 in GtaThread+0x154 is set. - inline BOOL BgIsExitflagSet() { return _i(0x836B62713E0534CA); } // 0x836b62713e0534ca0x22b9f132B323 - // Sets bit 1 in GtaThread+0x154 - inline Void BgSetExitflagResponse() { return _i(0x760910B49D2B98EA); } // 0x760910b49d2b98ea0x5c95b670B323 - // Hashed version of BgStartContext. - inline Void BgStartContextHash(Hash contextHash) { return _i(0x75B18E49607874C7, contextHash); } // 0x75b18e49607874c70x67b23e17B323 - // Hashed version of BgEndContext. - inline Void BgEndContextHash(Hash contextHash) { return _i(0x107E5CC7CA942BC1, contextHash); } // 0x107e5cc7ca942bc10x3d981ebfB323 - // Inserts the given context into the background scripts context map. - inline Void BgStartContext(String contextName) { return _i(0x9D5A25BADB742ACD, contextName); } // 0x9d5a25badb742acd0xf3f1d953B323 - // Deletes the given context from the background scripts context map. - inline Void BgEndContext(String contextName) { return _i(0xDC2BACD920D0A0DD, contextName); } // 0xdc2bacd920d0a0dd0x11f38fb3B323 - inline BOOL BgDoesLaunchParamExist(int scriptIndex, String p1) { return _i(0x0F6F1EBBC4E1D5E6, scriptIndex, p1); } // 0x0f6f1ebbc4e1d5e60xf8e5f73aB323 - inline int BgGetLaunchParamValue(int scriptIndex, String p1) { return _i(0x22E21FBCFC88C149, scriptIndex, p1); } // 0x22e21fbcfc88c1490x682cb7e1B323 - inline int BgGetScriptIdFromNameHash(Hash p0) { return _i(0x829CD22E043A2577, p0); } // 0x829cd22e043a25770xc515e735B323 - // See TriggerScriptEvent - inline Void SendTuScriptEvent(int eventGroup, Any* eventData, int eventDataSize, int playerBits) { return _i(0xA40CC53DF8E50837, eventGroup, eventData, eventDataSize, playerBits); } // 0xa40cc53df8e50837B1103 + inline Void RequestScript(String scriptName) { return _i(0x6EB5F71AA68F2E8E, scriptName); } // 0x6eb5f71aa68f2e8e0xe26b2666B323 + inline Void SetScriptAsNoLongerNeeded(String scriptName) { return _i(0xC90D2DCACD56184C, scriptName); } // 0xc90d2dcacd56184c0x6fcb7795B323 + // Returns if a script has been loaded into the game. Used to see if a script was loaded after requesting. + inline BOOL HasScriptLoaded(String scriptName) { return _i(0xE6CC9F3BA0FB9EF1, scriptName); } // 0xe6cc9f3ba0fb9ef10x5d67f751B323 + inline BOOL DoesScriptExist(String scriptName) { return _i(0xFC04745FBE67C19A, scriptName); } // 0xfc04745fbe67c19a0xdeab87abB323 + // formerly _REQUEST_STREAMED_SCRIPT + inline Void RequestScriptWithNameHash(Hash scriptHash) { return _i(0xD62A67D26D9653E6, scriptHash); } // 0xd62a67d26d9653e60x1c68d9dcB323 + inline Void SetScriptWithNameHashAsNoLongerNeeded(Hash scriptHash) { return _i(0xC5BC038960E9DB27, scriptHash); } // 0xc5bc038960e9db270x96c26f66B323 + inline BOOL HasScriptWithNameHashLoaded(Hash scriptHash) { return _i(0x5F0F0C783EB16C04, scriptHash); } // 0x5f0f0c783eb16c040x06674818B323 + inline BOOL DoesScriptWithNameHashExist(Hash scriptHash) { return _i(0xF86AA3C56BA31381, scriptHash); } // 0xf86aa3c56ba313810x19eae282B323 + inline Void TerminateThread(int threadId) { return _i(0xC8B189ED9138BCD4, threadId); } // 0xc8b189ed9138bcd40x253fd520B323 + inline BOOL IsThreadActive(int threadId) { return _i(0x46E9AE36D8FA6417, threadId); } // 0x46e9ae36d8fa64170x78d7a5a0B323 + inline String GetNameOfScriptWithThisId(int threadId) { return _i(0x05A42BA9FC8DA96B, threadId); } // 0x05a42ba9fc8da96b0xbe7acd89B323 + // Starts a new iteration of the current threads. + // Call this first, then ScriptThreadIteratorGetNextThreadId (0x30B4FA1C82DD4B9F) + inline Void ScriptThreadIteratorReset() { return _i(0xDADFADA5A20143A8); } // 0xdadfada5a20143a80xbb4e2f66B323 + // If the function returns 0, the end of the iteration has been reached. + inline int ScriptThreadIteratorGetNextThreadId() { return _i(0x30B4FA1C82DD4B9F); } // 0x30b4fa1c82dd4b9f0x1e28b28fB323 + inline int GetIdOfThisThread() { return _i(0xC30338E8088E2E21); } // 0xc30338e8088e2e210xde524830B323 + inline Void TerminateThisThread() { return _i(0x1090044AD1DA76FA); } // 0x1090044ad1da76fa0x3cd9cbb7B323 + // Gets the number of instances of the specified script is currently running. + // + // Actually returns numRefs - 1. + // if (program) + // v3 = rage::scrProgram::GetNumRefs(program) - 1; + // return v3; + inline int GetNumberOfThreadsRunningTheScriptWithThisHash(Hash scriptHash) { return _i(0x2C83A9DA6BFFC4F9, scriptHash); } // 0x2c83a9da6bffc4f90x029d3841B323 + inline String GetThisScriptName() { return _i(0x442E0A7EDE4A738A); } // 0x442e0a7ede4a738a0xa40fd5d9B323 + inline Hash GetHashOfThisScriptName() { return _i(0x8A1C8B1738FFE87E); } // 0x8a1c8b1738ffe87e0x2bee1f45B323 + // eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) + inline int GetNumberOfEvents(int eventGroup) { return _i(0x5F92A689A06620AA, eventGroup); } // 0x5f92a689a06620aa0xa3525d60B323 + // eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) + inline BOOL GetEventExists(int eventGroup, int eventIndex) { return _i(0x936E6168A9BCEDB5, eventGroup, eventIndex); } // 0x936e6168a9bcedb50xa1b447b5B323 + // eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) + inline int GetEventAtIndex(int eventGroup, int eventIndex) { return _i(0xD8F66A3A60C62153, eventGroup, eventIndex); } // 0xd8f66a3a60c621530xb49c1442B323 + // eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) + // + // Note: eventDataSize is NOT the size in bytes, it is the size determined by the SIZE_OF operator (RAGE Script operator, not C/C++ sizeof). That is, the size in bytes divided by 8 (script variables are always 8-byte aligned!). + inline BOOL GetEventData(int eventGroup, int eventIndex, Any* eventData, int eventDataSize) { return _i(0x2902843FCD2B2D79, eventGroup, eventIndex, eventData, eventDataSize); } // 0x2902843fcd2b2d790x4280f92fB323 + // eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) + // + // Note: eventDataSize is NOT the size in bytes, it is the size determined by the SIZE_OF operator (RAGE Script operator, not C/C++ sizeof). That is, the size in bytes divided by 8 (script variables are always 8-byte aligned!). + // + // playerBits (also known as playersToBroadcastTo) is a bitset that indicates which players this event should be sent to. In order to send the event to specific players only, use (1 << playerIndex). Set all bits if it should be broadcast to all players. + inline Void TriggerScriptEvent(int eventGroup, Any* eventData, int eventDataSize, int playerBits) { return _i(0x5AE99C571D5BBE5D, eventGroup, eventData, eventDataSize, playerBits); } // 0x5ae99c571d5bbe5d0x54763b35B323 + inline Void ShutdownLoadingScreen() { return _i(0x078EBE9809CCD637); } // 0x078ebe9809ccd6370xa2826d17B323 + inline Void SetNoLoadingScreen(BOOL toggle) { return _i(0x5262CC1995D07E09, toggle); } // 0x5262cc1995d07e090xc8055034B323 + inline BOOL GetNoLoadingScreen() { return _i(0x18C1270EA7F199BC); } // 0x18c1270ea7f199bc0x27512ba0B323 + inline Void CommitToLoadingscreenSelction() { return _i(0xB1577667C3708F9B); } // 0xb1577667c3708f9b0xb03bccdfB323 + // Returns true if bit 0 in GtaThread+0x154 is set. + inline BOOL BgIsExitflagSet() { return _i(0x836B62713E0534CA); } // 0x836b62713e0534ca0x22b9f132B323 + // Sets bit 1 in GtaThread+0x154 + inline Void BgSetExitflagResponse() { return _i(0x760910B49D2B98EA); } // 0x760910b49d2b98ea0x5c95b670B323 + // Hashed version of BgStartContext. + inline Void BgStartContextHash(Hash contextHash) { return _i(0x75B18E49607874C7, contextHash); } // 0x75b18e49607874c70x67b23e17B323 + // Hashed version of BgEndContext. + inline Void BgEndContextHash(Hash contextHash) { return _i(0x107E5CC7CA942BC1, contextHash); } // 0x107e5cc7ca942bc10x3d981ebfB323 + // Inserts the given context into the background scripts context map. + inline Void BgStartContext(String contextName) { return _i(0x9D5A25BADB742ACD, contextName); } // 0x9d5a25badb742acd0xf3f1d953B323 + // Deletes the given context from the background scripts context map. + inline Void BgEndContext(String contextName) { return _i(0xDC2BACD920D0A0DD, contextName); } // 0xdc2bacd920d0a0dd0x11f38fb3B323 + inline BOOL BgDoesLaunchParamExist(int scriptIndex, String p1) { return _i(0x0F6F1EBBC4E1D5E6, scriptIndex, p1); } // 0x0f6f1ebbc4e1d5e60xf8e5f73aB323 + inline int BgGetLaunchParamValue(int scriptIndex, String p1) { return _i(0x22E21FBCFC88C149, scriptIndex, p1); } // 0x22e21fbcfc88c1490x682cb7e1B323 + inline int BgGetScriptIdFromNameHash(Hash p0) { return _i(0x829CD22E043A2577, p0); } // 0x829cd22e043a25770xc515e735B323 + // New variant of SEND_TU_SCRIPT_EVENT that automatically initializes the event data header. + // See TriggerScriptEvent for more info. + inline Void SendTuScriptEventNew(int eventGroup, Any* eventData, int eventDataSize, int playerBits, Hash eventType) { return _i(0x71A6F836422FDD2B, eventGroup, eventData, eventDataSize, playerBits, eventType); } // 0x71a6f836422fdd2bB3095 } namespace SECURITY { - // Registers a protected variable that will be checked for modifications by the anticheat - inline Void RegisterScriptVariable(Any* variable) { return _i(0x40EB1EFD921822BC, variable); } // 0x40eb1efd921822bcB2545 - inline Void UnregisterScriptVariable(Any* variable) { return _i(0x340A36A700E99699, variable); } // 0x340a36a700e99699B2545 - inline Void ForceCheckScriptVariables() { return _i(0x8E580AB902917360); } // 0x8e580ab902917360B2545 + // Registers a protected variable that will be checked for modifications by the anticheat + inline Void RegisterScriptVariable(Any* variable) { return _i(0x40EB1EFD921822BC, variable); } // 0x40eb1efd921822bcB2545 + inline Void UnregisterScriptVariable(Any* variable) { return _i(0x340A36A700E99699, variable); } // 0x340a36a700e99699B2545 + inline Void ForceCheckScriptVariables() { return _i(0x8E580AB902917360); } // 0x8e580ab902917360B2545 } namespace SHAPETEST { - // Asynchronously starts a line-of-sight (raycast) world probe shape test. - // - // Use the handle with 0x3D87450E15D98694 or 0x65287525D951F6BE until it returns 0 or 2. - // - // p8 is a bit mask with bits 1, 2 and/or 4, relating to collider types; 4 should usually be used. - inline int StartShapeTestLosProbe(float x1, float y1, float z1, float x2, float y2, float z2, int flags, Entity entity, int p8) { return _i(0x7EE9F5D83DD4F90E, x1, y1, z1, x2, y2, z2, flags, entity, p8); } // 0x7ee9f5d83dd4f90e0xefaf4ba6B323 - // Does the same as 0x7EE9F5D83DD4F90E, except blocking until the shape test completes. - inline int StartExpensiveSynchronousShapeTestLosProbe(float x1, float y1, float z1, float x2, float y2, float z2, int flags, Entity entity, int p8) { return _i(0x377906D8A31E5586, x1, y1, z1, x2, y2, z2, flags, entity, p8); } // 0x377906d8a31e55860x8251485dB323 - inline int StartShapeTestBoundingBox(Entity entity, int flags1, int flags2) { return _i(0x052837721A854EC7, entity, flags1, flags2); } // 0x052837721a854ec70xceead94bB323 - inline int StartShapeTestBox(float x, float y, float z, float dimX, float dimY, float dimZ, float rotX, float rotY, float rotZ, Any p9, int flags, Entity entity, Any p12) { return _i(0xFE466162C4401D18, x, y, z, dimX, dimY, dimZ, rotX, rotY, rotZ, p9, flags, entity, p12); } // 0xfe466162c4401d180x249bc876B323 - inline int StartShapeTestBound(Entity entity, int flags1, int flags2) { return _i(0x37181417CE7C8900, entity, flags1, flags2); } // 0x37181417ce7c89000x13bc46c0B323 - // Raycast from point to point, where the ray has a radius. - // - // flags: - // vehicles=10 - // peds =12 - // - // Iterating through flags yields many ped / vehicle/ object combinations - // - // p9 = 7, but no idea what it does - // - // Entity is an entity to ignore - inline int StartShapeTestCapsule(float x1, float y1, float z1, float x2, float y2, float z2, float radius, int flags, Entity entity, int p9) { return _i(0x28579D1B8F8AAC80, x1, y1, z1, x2, y2, z2, radius, flags, entity, p9); } // 0x28579d1b8f8aac800x591ea833B323 - inline int StartShapeTestSweptSphere(float x1, float y1, float z1, float x2, float y2, float z2, float radius, int flags, Entity entity, Any p9) { return _i(0xE6AC6C45FBE83004, x1, y1, z1, x2, y2, z2, radius, flags, entity, p9); } // 0xe6ac6c45fbe830040x4559460aB323 - // Returns a ShapeTest handle that can be used with GetShapeTestResult. - // - // In its only usage in game scripts its called with flag set to 511, entity to player_ped_id and flag2 set to 7 - inline int StartShapeTestMouseCursorLosProbe(Vector3* pVec1, Vector3* pVec2, int flag, Entity entity, int flag2) { return _i(0xFF6BE494C7987F34, pVec1, pVec2, flag, entity, flag2); } // 0xff6be494c7987f34B323 - // Returns the result of a shape test: 0 if the handle is invalid, 1 if the shape test is still pending, or 2 if the shape test has completed, and the handle should be invalidated. - // - // When used with an asynchronous shape test, this native should be looped until returning 0 or 2, after which the handle is invalidated. - inline int GetShapeTestResult(int shapeTestHandle, BOOL* hit, Vector3* endCoords, Vector3* surfaceNormal, Entity* entityHit) { return _i(0x3D87450E15D98694, shapeTestHandle, hit, endCoords, surfaceNormal, entityHit); } // 0x3d87450e15d986940xf3c2875aB323 - // Returns the result of a shape test, also returning the material of any touched surface. - // - // When used with an asynchronous shape test, this native should be looped until returning 0 or 2, after which the handle is invalidated. - // - // Unless the return value is 2, the other return values are undefined. - inline int GetShapeTestResultIncludingMaterial(int shapeTestHandle, BOOL* hit, Vector3* endCoords, Vector3* surfaceNormal, Hash* materialHash, Entity* entityHit) { return _i(0x65287525D951F6BE, shapeTestHandle, hit, endCoords, surfaceNormal, materialHash, entityHit); } // 0x65287525d951f6be0x4301e10cB323 - // Invalidates the entity handle passed by removing the fwScriptGuid from the entity. This should be used when receiving an ambient entity from shape testing natives, but can also be used for other natives returning an 'irrelevant' entity handle. - inline Void ReleaseScriptGuidFromEntity(Entity entityHit) { return _i(0x2B3334BCA57CD799, entityHit); } // 0x2b3334bca57cd7990xec2aaf06B323 + // Asynchronously starts a line-of-sight (raycast) world probe shape test. + // + // Use the handle with 0x3D87450E15D98694 or 0x65287525D951F6BE until it returns 0 or 2. + // + // p8 is a bit mask with bits 1, 2 and/or 4, relating to collider types; 4 should usually be used. + inline int StartShapeTestLosProbe(float x1, float y1, float z1, float x2, float y2, float z2, int flags, Entity entity, int p8) { return _i(0x7EE9F5D83DD4F90E, x1, y1, z1, x2, y2, z2, flags, entity, p8); } // 0x7ee9f5d83dd4f90e0xefaf4ba6B323 + // Does the same as 0x7EE9F5D83DD4F90E, except blocking until the shape test completes. + inline int StartExpensiveSynchronousShapeTestLosProbe(float x1, float y1, float z1, float x2, float y2, float z2, int flags, Entity entity, int p8) { return _i(0x377906D8A31E5586, x1, y1, z1, x2, y2, z2, flags, entity, p8); } // 0x377906d8a31e55860x8251485dB323 + inline int StartShapeTestBoundingBox(Entity entity, int flags1, int flags2) { return _i(0x052837721A854EC7, entity, flags1, flags2); } // 0x052837721a854ec70xceead94bB323 + inline int StartShapeTestBox(float x, float y, float z, float dimX, float dimY, float dimZ, float rotX, float rotY, float rotZ, Any p9, int flags, Entity entity, Any p12) { return _i(0xFE466162C4401D18, x, y, z, dimX, dimY, dimZ, rotX, rotY, rotZ, p9, flags, entity, p12); } // 0xfe466162c4401d180x249bc876B323 + inline int StartShapeTestBound(Entity entity, int flags1, int flags2) { return _i(0x37181417CE7C8900, entity, flags1, flags2); } // 0x37181417ce7c89000x13bc46c0B323 + // Raycast from point to point, where the ray has a radius. + // + // flags: + // vehicles=10 + // peds =12 + // + // Iterating through flags yields many ped / vehicle/ object combinations + // + // p9 = 7, but no idea what it does + // + // Entity is an entity to ignore + inline int StartShapeTestCapsule(float x1, float y1, float z1, float x2, float y2, float z2, float radius, int flags, Entity entity, int p9) { return _i(0x28579D1B8F8AAC80, x1, y1, z1, x2, y2, z2, radius, flags, entity, p9); } // 0x28579d1b8f8aac800x591ea833B323 + inline int StartShapeTestSweptSphere(float x1, float y1, float z1, float x2, float y2, float z2, float radius, int flags, Entity entity, Any p9) { return _i(0xE6AC6C45FBE83004, x1, y1, z1, x2, y2, z2, radius, flags, entity, p9); } // 0xe6ac6c45fbe830040x4559460aB323 + // Returns a ShapeTest handle that can be used with GetShapeTestResult. + // + // In its only usage in game scripts its called with flag set to 511, entity to player_ped_id and flag2 set to 7 + inline int StartShapeTestMouseCursorLosProbe(Vector3* pVec1, Vector3* pVec2, int flag, Entity entity, int flag2) { return _i(0xFF6BE494C7987F34, pVec1, pVec2, flag, entity, flag2); } // 0xff6be494c7987f34B323 + // Returns the result of a shape test: 0 if the handle is invalid, 1 if the shape test is still pending, or 2 if the shape test has completed, and the handle should be invalidated. + // + // When used with an asynchronous shape test, this native should be looped until returning 0 or 2, after which the handle is invalidated. + inline int GetShapeTestResult(int shapeTestHandle, BOOL* hit, Vector3* endCoords, Vector3* surfaceNormal, Entity* entityHit) { return _i(0x3D87450E15D98694, shapeTestHandle, hit, endCoords, surfaceNormal, entityHit); } // 0x3d87450e15d986940xf3c2875aB323 + // Returns the result of a shape test, also returning the material of any touched surface. + // + // When used with an asynchronous shape test, this native should be looped until returning 0 or 2, after which the handle is invalidated. + // + // Unless the return value is 2, the other return values are undefined. + inline int GetShapeTestResultIncludingMaterial(int shapeTestHandle, BOOL* hit, Vector3* endCoords, Vector3* surfaceNormal, Hash* materialHash, Entity* entityHit) { return _i(0x65287525D951F6BE, shapeTestHandle, hit, endCoords, surfaceNormal, materialHash, entityHit); } // 0x65287525d951f6be0x4301e10cB323 + // Invalidates the entity handle passed by removing the fwScriptGuid from the entity. This should be used when receiving an ambient entity from shape testing natives, but can also be used for other natives returning an 'irrelevant' entity handle. + inline Void ReleaseScriptGuidFromEntity(Entity entityHit) { return _i(0x2B3334BCA57CD799, entityHit); } // 0x2b3334bca57cd7990xec2aaf06B323 } namespace SOCIALCLUB { - inline int ScInboxGetTotalNumMessages() { return _i(0x03A93FF1A2CA0864); } // 0x03a93ff1a2ca08640x6be5df29B323 - inline Hash ScInboxGetMessageTypeAtIndex(int msgIndex) { return _i(0xBB8EA16ECBC976C4, msgIndex); } // 0xbb8ea16ecbc976c40x5ecf955dB323 - inline BOOL ScInboxGetMessageIsReadAtIndex(int msgIndex) { return _i(0x93028F1DB42BFD08, msgIndex); } // 0x93028f1db42bfd080xd1ed1d48B323 - inline BOOL ScInboxSetMessageAsReadAtIndex(int msgIndex) { return _i(0x2C015348CF19CA1D, msgIndex); } // 0x2c015348cf19ca1d0x19ee0ccbB323 - inline BOOL ScInboxMessageGetDataInt(int p0, String context, int* out) { return _i(0xA00EFE4082C4056E, p0, context, out); } // 0xa00efe4082c4056e0x88068c7cB323 - inline BOOL ScInboxMessageGetDataBool(int p0, String p1) { return _i(0xFFE5C16F402D851D, p0, p1); } // 0xffe5c16f402d851dB323 - inline BOOL ScInboxMessageGetDataString(int p0, String context, char* out) { return _i(0x7572EF42FC6A9B6D, p0, context, out); } // 0x7572ef42fc6a9b6d0x15607620B323 - inline BOOL ScInboxMessageDoApply(int p0) { return _i(0x9A2C8064B6C1E41A, p0); } // 0x9a2c8064b6c1e41a0xebe420a4B323 - inline String SC_INBOX_MESSAGE_GET_RAW_TYPE_AT_INDEX(int p0) { return _i(0xF3E31D16CBDCB304, p0); } // 0xF3E31D16CBDCB304 0x2C959AF9 b323 - inline Void ScInboxMessagePushGamerT0RecipList(Any* gamerHandle) { return _i(0xDA024BDBD600F44A, gamerHandle); } // 0xda024bdbd600f44a0x0b9a3512B323 - inline Void ScInboxSendUgcstatupdateToRecipList(Any* data) { return _i(0xA68D3D229F4F3B06, data); } // 0xa68d3d229f4f3b060x75324674B323 - inline BOOL ScInboxMessageGetUgcdata(int p0, Any* p1) { return _i(0x69D82604A1A5A254, p0, p1); } // 0x69d82604a1a5a2540x88ca3bfcB323 - inline BOOL ScInboxSendBountyToRecipList(Any* data) { return _i(0x6AFD2CD753FEEF83, data); } // 0x6afd2cd753feef830x628f489bB323 - inline BOOL ScInboxGetBountyDataAtIndex(int index, Any* outData) { return _i(0x87E0052F08BD64E6, index, outData); } // 0x87e0052f08bd64e60xab3346b5B323 - inline Void ScEmailRetrieveEmails(int offset, int limit) { return _i(0x040ADDCBAFA1018A, offset, limit); } // 0x040addcbafa1018aB323 - inline int ScEmailGetRetrievalStatus() { return _i(0x16DA8172459434AA); } // 0x16da8172459434aaB323 - inline int ScEmailGetNumRetrievedEmails() { return _i(0x7DB18CA8CAD5B098); } // 0x7db18ca8cad5b098B505 - inline BOOL ScEmailGetEmailAtIndex(int p0, Any* p1) { return _i(0x4737980E8A283806, p0, p1); } // 0x4737980e8a283806B323 - inline Void ScEmailDeleteEmails(Any* p0, Any p1) { return _i(0x44ACA259D67651DB, p0, p1); } // 0x44aca259d67651dbB323 - inline Void ScEmailMessagePushGamerToRecipList(Any* gamerHandle) { return _i(0x2330C12A7A605D16, gamerHandle); } // 0x2330c12a7a605d160x9a703a2bB323 - inline Void ScEmailMessageClearRecipList() { return _i(0x55DF6DB45179236E); } // 0x55df6db45179236e0xd094f11aB323 - inline Void ScEmailSendEmail(String p0) { return _i(0x116FB94DC4B79F17, p0); } // 0x116fb94dc4b79f170xaf3c081bB323 - inline BOOL ScEmailSetCurrentEmailTag(Any p0) { return _i(0x07DBD622D9533857, p0); } // 0x07dbd622d9533857B505 - inline Void ScCacheNewRockstarMsgs(BOOL toggle) { return _i(0xBFA0A56A817C6C7D, toggle); } // 0xbfa0a56a817c6c7d0x2fb9f53cB323 - inline BOOL ScHasNewRockstarMsg() { return _i(0xBC1CC91205EC8D6E); } // 0xbc1cc91205ec8d6e0x6c5738abB323 - inline String SC_GET_NEW_ROCKSTAR_MSG() { return _i(0xDF649C4E9AFDD788); } // 0xDF649C4E9AFDD788 0x468668F0 b323 - inline BOOL ScPresenceAttrSetInt(Hash attrHash, int value) { return _i(0x1F1E9682483697C7, attrHash, value); } // 0x1f1e9682483697c70x90c74343B323 - inline BOOL ScPresenceAttrSetFloat(Hash attrHash, float value) { return _i(0xC4C4575F62534A24, attrHash, value); } // 0xc4c4575f62534a240x94bf0d35B323 - inline BOOL ScPresenceAttrSetString(Hash attrHash, String value) { return _i(0x287F1F75D2803595, attrHash, value); } // 0x287f1f75d28035950x3ace6d6bB323 - inline BOOL ScPresenceSetActivityRating(Any p0, float p1) { return _i(0x487912FD248EFDDF, p0, p1); } // 0x487912fd248efddf0x579b4510B323 - inline BOOL ScGamerdataGetInt(String name, int* value) { return _i(0xC85A7127E7AD02AA, name, value); } // 0xc85a7127e7ad02aa0xf8bda989B323 - inline BOOL ScGamerdataGetFloat(String name, float* value) { return _i(0xA770C8EEC6FB2AC5, name, value); } // 0xa770c8eec6fb2ac50x515af67cB323 - inline BOOL ScGamerdataGetBool(String name) { return _i(0x8416FE4E4629D7D7, name); } // 0x8416fe4e4629d7d70xdf45b2a7B323 - inline BOOL ScGamerdataGetString(String name, char* value) { return _i(0x7FFCBFEE44ECFABF, name, value); } // 0x7ffcbfee44ecfabf0x2ae35169B323 - inline BOOL ScGamerdataGetActiveXpBonus(float* value) { return _i(0x2D874D4AE612A65F, value); } // 0x2d874d4ae612a65fB323 - // Starts a task to check an entered string for profanity on the ROS/Social Club services. - // - // See also: 1753344C770358AE, 82E4A58BABC15AE7. - inline BOOL ScProfanityCheckString(String string, int* token) { return _i(0x75632C5ECD7ED843, string, token); } // 0x75632c5ecd7ed8430xdf084a6bB323 - inline BOOL ScProfanityCheckStringUgc(String string, int* token) { return _i(0xEB2BF817463DFA28, string, token); } // 0xeb2bf817463dfa28B678 - inline BOOL ScProfanityGetCheckIsValid(int token) { return _i(0x1753344C770358AE, token); } // 0x1753344c770358ae0xffed3676B323 - inline BOOL ScProfanityGetCheckIsPending(int token) { return _i(0x82E4A58BABC15AE7, token); } // 0x82e4a58babc15ae70xa796d7a7B323 - inline BOOL ScProfanityGetStringPassed(int token) { return _i(0x85535ACF97FC0969, token); } // 0x85535acf97fc09690x09497f31B323 - inline int ScProfanityGetStringStatus(int token) { return _i(0x930DE22F07B1CCE3, token); } // 0x930de22f07b1cce30x4d8a6521B323 - inline BOOL ScLicenseplateCheckString(String p0, int* p1) { return _i(0xF6BAAAF762E1BF40, p0, p1); } // 0xf6baaaf762e1bf400x7aa36406B323 - inline BOOL ScLicenseplateGetCheckIsValid(Any p0) { return _i(0xF22CA0FD74B80E7A, p0); } // 0xf22ca0fd74b80e7a0xf379dce4B323 - inline BOOL ScLicenseplateGetCheckIsPending(Any p0) { return _i(0x9237E334F6E43156, p0); } // 0x9237e334f6e431560x65d84665B323 - inline int ScLicenseplateGetCount(int token) { return _i(0x700569DBA175A77C, token); } // 0x700569dba175a77c0x159fe39cB323 - inline String SC_LICENSEPLATE_GET_PLATE(int token, int plateIndex) { return _i(0x1D4446A62D35B0D0, token, plateIndex); } // 0x1D4446A62D35B0D0 0x4CE9BAA7 b323 - inline String SC_LICENSEPLATE_GET_PLATE_DATA(int token, int plateIndex) { return _i(0x2E89990DDFF670C3, token, plateIndex); } // 0x2E89990DDFF670C3 0x05303FC8 b323 - inline BOOL ScLicenseplateSetPlateData(String oldPlateText, String newPlateText, Any* plateData) { return _i(0xD0EE05FE193646EA, oldPlateText, newPlateText, plateData); } // 0xd0ee05fe193646ea0x9f98fa5cB323 - inline BOOL ScLicenseplateAdd(String plateText, Any* plateData, int* token) { return _i(0x1989C6E6F67E76A8, plateText, plateData, token); } // 0x1989c6e6f67e76a80xeede7fabB323 - inline BOOL ScLicenseplateGetAddIsPending(int token) { return _i(0x07C61676E5BB52CD, token); } // 0x07c61676e5bb52cd0xe190e45aB323 - inline int ScLicenseplateGetAddStatus(int token) { return _i(0x8147FFF6A718E1AD, token); } // 0x8147fff6a718e1ad0x930b3ae5B323 - inline BOOL ScLicenseplateIsvalid(String plateText, int* token) { return _i(0x0F73393BAC7E6730, plateText, token); } // 0x0f73393bac7e67300x5298f472B323 - inline BOOL ScLicenseplateGetIsvalidIsPending(int token) { return _i(0xD302E99EDF0449CF, token); } // 0xd302e99edf0449cf0x86dae6d6B323 - inline int ScLicenseplateGetIsvalidStatus(int token) { return _i(0x5C4EBFFA98BDB41C, token); } // 0x5c4ebffa98bdb41c0x9aa2ba3fB323 - inline BOOL ScCommunityEventIsActive() { return _i(0xFF8F3A92B75ED67A); } // 0xff8f3a92b75ed67a0xc96456baB323 - inline int ScCommunityEventGetEventId() { return _i(0x4ED9C8D6DA297639); } // 0x4ed9c8d6da2976390xc5e08b66B323 - inline BOOL ScCommunityEventGetExtraDataInt(String p0, int* p1) { return _i(0x710BCDA8071EDED1, p0, p1); } // 0x710bcda8071eded10x04ee74a3B323 - inline BOOL ScCommunityEventGetExtraDataFloat(String p0, float* p1) { return _i(0x50A8A36201DBF83E, p0, p1); } // 0x50a8a36201dbf83e0x8da93c3dB323 - inline BOOL ScCommunityEventGetExtraDataString(String p0, char* p1) { return _i(0x9DE5D2F723575ED0, p0, p1); } // 0x9de5d2f723575ed00x37dd48b5B323 - inline BOOL ScCommunityEventGetDisplayName(char* p0) { return _i(0xC2C97EA97711D1AE, p0); } // 0xc2c97ea97711d1ae0xf929f61dB323 - inline BOOL ScCommunityEventIsActiveForType(String p0) { return _i(0x450819D8CF90C416, p0); } // 0x450819d8cf90c4160x0572eb5eB323 - inline int ScCommunityEventGetEventIdForType(String p0) { return _i(0x4A7D6E727F941747, p0); } // 0x4a7d6e727f9417470x8e7aeeb7B323 - inline BOOL ScCommunityEventGetExtraDataIntForType(String p0, int* p1, String p2) { return _i(0xE75A4A2E5E316D86, p0, p1, p2); } // 0xe75a4a2e5e316d860x28c57fa0B323 - inline BOOL ScCommunityEventGetExtraDataFloatForType(String p0, float* p1, String p2) { return _i(0x2570E26BE63964E3, p0, p1, p2); } // 0x2570e26be63964e30x59394583B323 - inline BOOL ScCommunityEventGetExtraDataStringForType(String p0, char* p1, String p2) { return _i(0x1D12A56FC95BE92E, p0, p1, p2); } // 0x1d12a56fc95be92e0x92452c0eB323 - inline BOOL ScCommunityEventGetDisplayNameForType(char* p0, String p1) { return _i(0x33DF47CC0642061B, p0, p1); } // 0x33df47cc0642061b0xbba8d34dB323 - inline BOOL ScCommunityEventIsActiveById(int p0) { return _i(0xA468E0BE12B12C70, p0); } // 0xa468e0be12b12c700xb21288faB323 - inline BOOL ScCommunityEventGetExtraDataIntById(int p0, String p1, int* p2) { return _i(0x8CC469AB4D349B7C, p0, p1, p2); } // 0x8cc469ab4d349b7c0xe778b2a7B323 - inline BOOL ScCommunityEventGetExtraDataFloatById(int p0, String p1, float* p2) { return _i(0xC5A35C73B68F3C49, p0, p1, p2); } // 0xc5a35c73b68f3c490x7e24bd6eB323 - inline BOOL ScCommunityEventGetExtraDataStringById(int p0, String p1, char* p2) { return _i(0x699E4A5C8C893A18, p0, p1, p2); } // 0x699e4a5c8c893a180xce7d50a8B323 - inline BOOL ScCommunityEventGetDisplayNameById(int p0, char* p1) { return _i(0x19853B5B17D77BCA, p0, p1); } // 0x19853b5b17d77bca0xd26cca46B323 - inline BOOL ScTransitionNewsShow(Any p0) { return _i(0x6BFB12CE158E3DD4, p0); } // 0x6bfb12ce158e3dd40x24d84334B323 - inline BOOL ScTransitionNewsShowTimed(Any p0, Any p1) { return _i(0xFE4C1D0D3B9CC17E, p0, p1); } // 0xfe4c1d0d3b9cc17e0x8a023024B323 - inline BOOL ScTransitionNewsShowNextItem() { return _i(0xD8122C407663B995); } // 0xd8122c407663b9950x1c65b038B323 - inline BOOL ScTransitionNewsHasExtraDataTu() { return _i(0x3001BEF2FECA3680); } // 0x3001bef2feca36800x4d4c37b3B323 - inline BOOL ScTransitionNewsGetExtraDataIntTu(String p0, int* p1) { return _i(0x92DA6E70EF249BD1, p0, p1); } // 0x92da6e70ef249bd10xaed95a6fB323 - inline Void ScTransitionNewsEnd() { return _i(0x675721C9F644D161); } // 0x675721c9f644d1610x486867e6B323 - inline BOOL ScPauseNewsInitStarterPack(Any p0) { return _i(0xE4F6E8D07A2F0F51, p0); } // 0xe4f6e8d07a2f0f51B1290 - // Fills some 0x30 sized struct - inline BOOL ScPauseNewsGetPendingStory(Any p0) { return _i(0x8A4416C0DB05FA66, p0); } // 0x8a4416c0db05fa66B1290 - inline Void ScPauseNewsShutdown() { return _i(0xEA95C0853A27888E); } // 0xea95c0853a27888eB1290 - // Returns the nickname of the logged-in Rockstar Social Club account. - inline String SC_ACCOUNT_INFO_GET_NICKNAME() { return _i(0x198D161F458ECC7F); } // 0x198D161F458ECC7F b323 - inline BOOL ScAchievementInfoStatus(int* p0) { return _i(0x225798743970412B, p0); } // 0x225798743970412bB323 - // Same as HasAchievementBeenPassed - inline BOOL ScHasAchievementBeenPassed(int achievementId) { return _i(0x418DC16FAE452C1C, achievementId); } // 0x418dc16fae452c1cB323 + inline int ScInboxGetTotalNumMessages() { return _i(0x03A93FF1A2CA0864); } // 0x03a93ff1a2ca08640x6be5df29B323 + inline Hash ScInboxGetMessageTypeAtIndex(int msgIndex) { return _i(0xBB8EA16ECBC976C4, msgIndex); } // 0xbb8ea16ecbc976c40x5ecf955dB323 + inline BOOL ScInboxGetMessageIsReadAtIndex(int msgIndex) { return _i(0x93028F1DB42BFD08, msgIndex); } // 0x93028f1db42bfd080xd1ed1d48B323 + inline BOOL ScInboxSetMessageAsReadAtIndex(int msgIndex) { return _i(0x2C015348CF19CA1D, msgIndex); } // 0x2c015348cf19ca1d0x19ee0ccbB323 + inline BOOL ScInboxMessageGetDataInt(int p0, String context, int* out) { return _i(0xA00EFE4082C4056E, p0, context, out); } // 0xa00efe4082c4056e0x88068c7cB323 + inline BOOL ScInboxMessageGetDataBool(int p0, String p1) { return _i(0xFFE5C16F402D851D, p0, p1); } // 0xffe5c16f402d851dB323 + inline BOOL ScInboxMessageGetDataString(int p0, String context, char* out) { return _i(0x7572EF42FC6A9B6D, p0, context, out); } // 0x7572ef42fc6a9b6d0x15607620B323 + inline BOOL ScInboxMessageDoApply(int p0) { return _i(0x9A2C8064B6C1E41A, p0); } // 0x9a2c8064b6c1e41a0xebe420a4B323 + inline String ScInboxMessageGetRawTypeAtIndex(int p0) { return _i(0xF3E31D16CBDCB304, p0); } // 0xf3e31d16cbdcb3040x2c959af9B323 + inline Void ScInboxMessagePushGamerT0RecipList(Any* gamerHandle) { return _i(0xDA024BDBD600F44A, gamerHandle); } // 0xda024bdbd600f44a0x0b9a3512B323 + inline Void ScInboxSendUgcstatupdateToRecipList(Any* data) { return _i(0xA68D3D229F4F3B06, data); } // 0xa68d3d229f4f3b060x75324674B323 + inline BOOL ScInboxMessageGetUgcdata(int p0, Any* p1) { return _i(0x69D82604A1A5A254, p0, p1); } // 0x69d82604a1a5a2540x88ca3bfcB323 + inline BOOL ScInboxGetBountyDataAtIndex(int index, Any* outData) { return _i(0x87E0052F08BD64E6, index, outData); } // 0x87e0052f08bd64e60xab3346b5B323 + inline Void ScEmailRetrieveEmails(int offset, int limit) { return _i(0x040ADDCBAFA1018A, offset, limit); } // 0x040addcbafa1018aB323 + inline int ScEmailGetRetrievalStatus() { return _i(0x16DA8172459434AA); } // 0x16da8172459434aaB323 + inline int ScEmailGetNumRetrievedEmails() { return _i(0x7DB18CA8CAD5B098); } // 0x7db18ca8cad5b098B505 + inline BOOL ScEmailGetEmailAtIndex(int p0, Any* p1) { return _i(0x4737980E8A283806, p0, p1); } // 0x4737980e8a283806B323 + inline Void ScEmailDeleteEmails(Any* p0, Any p1) { return _i(0x44ACA259D67651DB, p0, p1); } // 0x44aca259d67651dbB323 + inline Void ScEmailMessagePushGamerToRecipList(Any* gamerHandle) { return _i(0x2330C12A7A605D16, gamerHandle); } // 0x2330c12a7a605d160x9a703a2bB323 + inline Void ScEmailMessageClearRecipList() { return _i(0x55DF6DB45179236E); } // 0x55df6db45179236e0xd094f11aB323 + inline Void ScEmailSendEmail(String p0) { return _i(0x116FB94DC4B79F17, p0); } // 0x116fb94dc4b79f170xaf3c081bB323 + inline BOOL ScEmailSetCurrentEmailTag(Any p0) { return _i(0x07DBD622D9533857, p0); } // 0x07dbd622d9533857B505 + inline Void ScCacheNewRockstarMsgs(BOOL toggle) { return _i(0xBFA0A56A817C6C7D, toggle); } // 0xbfa0a56a817c6c7d0x2fb9f53cB323 + inline BOOL ScHasNewRockstarMsg() { return _i(0xBC1CC91205EC8D6E); } // 0xbc1cc91205ec8d6e0x6c5738abB323 + inline String ScGetNewRockstarMsg() { return _i(0xDF649C4E9AFDD788); } // 0xdf649c4e9afdd7880x468668f0B323 + inline BOOL ScPresenceAttrSetInt(Hash attrHash, int value) { return _i(0x1F1E9682483697C7, attrHash, value); } // 0x1f1e9682483697c70x90c74343B323 + inline BOOL ScPresenceAttrSetFloat(Hash attrHash, float value) { return _i(0xC4C4575F62534A24, attrHash, value); } // 0xc4c4575f62534a240x94bf0d35B323 + inline BOOL ScPresenceAttrSetString(Hash attrHash, String value) { return _i(0x287F1F75D2803595, attrHash, value); } // 0x287f1f75d28035950x3ace6d6bB323 + inline BOOL ScPresenceSetActivityRating(Any p0, float p1) { return _i(0x487912FD248EFDDF, p0, p1); } // 0x487912fd248efddf0x579b4510B323 + inline BOOL ScGamerdataGetInt(String name, int* value) { return _i(0xC85A7127E7AD02AA, name, value); } // 0xc85a7127e7ad02aa0xf8bda989B323 + inline BOOL ScGamerdataGetFloat(String name, float* value) { return _i(0xA770C8EEC6FB2AC5, name, value); } // 0xa770c8eec6fb2ac50x515af67cB323 + inline BOOL ScGamerdataGetBool(String name) { return _i(0x8416FE4E4629D7D7, name); } // 0x8416fe4e4629d7d70xdf45b2a7B323 + inline BOOL ScGamerdataGetString(String name, char* value) { return _i(0x7FFCBFEE44ECFABF, name, value); } // 0x7ffcbfee44ecfabf0x2ae35169B323 + inline BOOL ScGamerdataGetActiveXpBonus(float* value) { return _i(0x2D874D4AE612A65F, value); } // 0x2d874d4ae612a65fB323 + // Starts a task to check an entered string for profanity on the ROS/Social Club services. + // + // See also: 1753344C770358AE, 82E4A58BABC15AE7. + inline BOOL ScProfanityCheckString(String string, int* token) { return _i(0x75632C5ECD7ED843, string, token); } // 0x75632c5ecd7ed8430xdf084a6bB323 + inline BOOL ScProfanityCheckStringUgc(String string, int* token) { return _i(0xEB2BF817463DFA28, string, token); } // 0xeb2bf817463dfa28B678 + inline BOOL ScProfanityGetCheckIsValid(int token) { return _i(0x1753344C770358AE, token); } // 0x1753344c770358ae0xffed3676B323 + inline BOOL ScProfanityGetCheckIsPending(int token) { return _i(0x82E4A58BABC15AE7, token); } // 0x82e4a58babc15ae70xa796d7a7B323 + inline BOOL ScProfanityGetStringPassed(int token) { return _i(0x85535ACF97FC0969, token); } // 0x85535acf97fc09690x09497f31B323 + inline int ScProfanityGetStringStatus(int token) { return _i(0x930DE22F07B1CCE3, token); } // 0x930de22f07b1cce30x4d8a6521B323 + inline BOOL ScLicenseplateCheckString(String p0, int* p1) { return _i(0xF6BAAAF762E1BF40, p0, p1); } // 0xf6baaaf762e1bf400x7aa36406B323 + inline BOOL ScLicenseplateGetCheckIsValid(Any p0) { return _i(0xF22CA0FD74B80E7A, p0); } // 0xf22ca0fd74b80e7a0xf379dce4B323 + inline BOOL ScLicenseplateGetCheckIsPending(Any p0) { return _i(0x9237E334F6E43156, p0); } // 0x9237e334f6e431560x65d84665B323 + inline int ScLicenseplateGetCount(int token) { return _i(0x700569DBA175A77C, token); } // 0x700569dba175a77c0x159fe39cB323 + inline String ScLicenseplateGetPlate(int token, int plateIndex) { return _i(0x1D4446A62D35B0D0, token, plateIndex); } // 0x1d4446a62d35b0d00x4ce9baa7B323 + inline String ScLicenseplateGetPlateData(int token, int plateIndex) { return _i(0x2E89990DDFF670C3, token, plateIndex); } // 0x2e89990ddff670c30x05303fc8B323 + inline BOOL ScLicenseplateSetPlateData(String oldPlateText, String newPlateText, Any* plateData) { return _i(0xD0EE05FE193646EA, oldPlateText, newPlateText, plateData); } // 0xd0ee05fe193646ea0x9f98fa5cB323 + inline BOOL ScLicenseplateAdd(String plateText, Any* plateData, int* token) { return _i(0x1989C6E6F67E76A8, plateText, plateData, token); } // 0x1989c6e6f67e76a80xeede7fabB323 + inline BOOL ScLicenseplateGetAddIsPending(int token) { return _i(0x07C61676E5BB52CD, token); } // 0x07c61676e5bb52cd0xe190e45aB323 + inline int ScLicenseplateGetAddStatus(int token) { return _i(0x8147FFF6A718E1AD, token); } // 0x8147fff6a718e1ad0x930b3ae5B323 + inline BOOL ScLicenseplateIsvalid(String plateText, int* token) { return _i(0x0F73393BAC7E6730, plateText, token); } // 0x0f73393bac7e67300x5298f472B323 + inline BOOL ScLicenseplateGetIsvalidIsPending(int token) { return _i(0xD302E99EDF0449CF, token); } // 0xd302e99edf0449cf0x86dae6d6B323 + inline int ScLicenseplateGetIsvalidStatus(int token) { return _i(0x5C4EBFFA98BDB41C, token); } // 0x5c4ebffa98bdb41c0x9aa2ba3fB323 + inline BOOL ScCommunityEventIsActive() { return _i(0xFF8F3A92B75ED67A); } // 0xff8f3a92b75ed67a0xc96456baB323 + inline int ScCommunityEventGetEventId() { return _i(0x4ED9C8D6DA297639); } // 0x4ed9c8d6da2976390xc5e08b66B323 + inline BOOL ScCommunityEventGetExtraDataInt(String p0, int* p1) { return _i(0x710BCDA8071EDED1, p0, p1); } // 0x710bcda8071eded10x04ee74a3B323 + inline BOOL ScCommunityEventGetExtraDataFloat(String p0, float* p1) { return _i(0x50A8A36201DBF83E, p0, p1); } // 0x50a8a36201dbf83e0x8da93c3dB323 + inline BOOL ScCommunityEventGetExtraDataString(String p0, char* p1) { return _i(0x9DE5D2F723575ED0, p0, p1); } // 0x9de5d2f723575ed00x37dd48b5B323 + inline BOOL ScCommunityEventGetDisplayName(char* p0) { return _i(0xC2C97EA97711D1AE, p0); } // 0xc2c97ea97711d1ae0xf929f61dB323 + inline BOOL ScCommunityEventIsActiveForType(String p0) { return _i(0x450819D8CF90C416, p0); } // 0x450819d8cf90c4160x0572eb5eB323 + inline int ScCommunityEventGetEventIdForType(String p0) { return _i(0x4A7D6E727F941747, p0); } // 0x4a7d6e727f9417470x8e7aeeb7B323 + inline BOOL ScCommunityEventGetExtraDataIntForType(String p0, int* p1, String p2) { return _i(0xE75A4A2E5E316D86, p0, p1, p2); } // 0xe75a4a2e5e316d860x28c57fa0B323 + inline BOOL ScCommunityEventGetExtraDataFloatForType(String p0, float* p1, String p2) { return _i(0x2570E26BE63964E3, p0, p1, p2); } // 0x2570e26be63964e30x59394583B323 + inline BOOL ScCommunityEventGetExtraDataStringForType(String p0, char* p1, String p2) { return _i(0x1D12A56FC95BE92E, p0, p1, p2); } // 0x1d12a56fc95be92e0x92452c0eB323 + inline BOOL ScCommunityEventGetDisplayNameForType(char* p0, String p1) { return _i(0x33DF47CC0642061B, p0, p1); } // 0x33df47cc0642061b0xbba8d34dB323 + inline BOOL ScCommunityEventIsActiveById(int p0) { return _i(0xA468E0BE12B12C70, p0); } // 0xa468e0be12b12c700xb21288faB323 + inline BOOL ScCommunityEventGetExtraDataIntById(int p0, String p1, int* p2) { return _i(0x8CC469AB4D349B7C, p0, p1, p2); } // 0x8cc469ab4d349b7c0xe778b2a7B323 + inline BOOL ScCommunityEventGetExtraDataFloatById(int p0, String p1, float* p2) { return _i(0xC5A35C73B68F3C49, p0, p1, p2); } // 0xc5a35c73b68f3c490x7e24bd6eB323 + inline BOOL ScCommunityEventGetExtraDataStringById(int p0, String p1, char* p2) { return _i(0x699E4A5C8C893A18, p0, p1, p2); } // 0x699e4a5c8c893a180xce7d50a8B323 + inline BOOL ScCommunityEventGetDisplayNameById(int p0, char* p1) { return _i(0x19853B5B17D77BCA, p0, p1); } // 0x19853b5b17d77bca0xd26cca46B323 + inline BOOL ScTransitionNewsShow(Any p0) { return _i(0x6BFB12CE158E3DD4, p0); } // 0x6bfb12ce158e3dd40x24d84334B323 + inline BOOL ScTransitionNewsShowTimed(Any p0, Any p1) { return _i(0xFE4C1D0D3B9CC17E, p0, p1); } // 0xfe4c1d0d3b9cc17e0x8a023024B323 + inline BOOL ScTransitionNewsShowNextItem() { return _i(0xD8122C407663B995); } // 0xd8122c407663b9950x1c65b038B323 + inline BOOL ScTransitionNewsHasExtraDataTu() { return _i(0x3001BEF2FECA3680); } // 0x3001bef2feca36800x4d4c37b3B323 + inline BOOL ScTransitionNewsGetExtraDataIntTu(String p0, int* p1) { return _i(0x92DA6E70EF249BD1, p0, p1); } // 0x92da6e70ef249bd10xaed95a6fB323 + inline Void ScTransitionNewsEnd() { return _i(0x675721C9F644D161); } // 0x675721c9f644d1610x486867e6B323 + inline BOOL ScPauseNewsInitStarterPack(Any p0) { return _i(0xE4F6E8D07A2F0F51, p0); } // 0xe4f6e8d07a2f0f51B1290 + // Fills some 0x30 sized struct + inline BOOL ScPauseNewsGetPendingStory(Any p0) { return _i(0x8A4416C0DB05FA66, p0); } // 0x8a4416c0db05fa66B1290 + inline Void ScPauseNewsShutdown() { return _i(0xEA95C0853A27888E); } // 0xea95c0853a27888eB1290 + // Returns the nickname of the logged-in Rockstar Social Club account. + inline String ScAccountInfoGetNickname() { return _i(0x198D161F458ECC7F); } // 0x198d161f458ecc7fB323 + inline BOOL ScAchievementInfoStatus(int* p0) { return _i(0x225798743970412B, p0); } // 0x225798743970412bB323 + // Same as HasAchievementBeenPassed + inline BOOL ScHasAchievementBeenPassed(int achievementId) { return _i(0x418DC16FAE452C1C, achievementId); } // 0x418dc16fae452c1cB323 } namespace STATS { - // Example: - // - // for (v_2 = 0; v_2 <= 4; v_2 += 1) { - // STATS::StatClearSlotForReload(v_2); - // } - inline BOOL StatClearSlotForReload(int statSlot) { return _i(0xEB0A72181D4AA4AD, statSlot); } // 0xeb0a72181d4aa4ad0x84bdd475B323 - inline BOOL StatLoad(int statSlot) { return _i(0xA651443F437B1CE6, statSlot); } // 0xa651443f437b1ce60x9e5629f4B323 - inline BOOL StatSave(int p0, BOOL p1, int p2, BOOL p3) { return _i(0xE07BCA305B82D2FD, p0, p1, p2, p3); } // 0xe07bca305b82d2fd0xe10a7ca4B323 - inline Void StatSetOpenSavetypeInJob(int p0) { return _i(0x5688585E6D563CD8, p0); } // 0x5688585e6d563cd80xc62406a6B323 - inline BOOL StatLoadPending(int statSlot) { return _i(0xA1750FFAFA181661, statSlot); } // 0xa1750ffafa1816610x4e9ac983B323 - inline BOOL StatSavePending() { return _i(0x7D3A583856F2C5AC); } // 0x7d3a583856f2c5ac0xc3fd3822B323 - inline BOOL StatSavePendingOrRequested() { return _i(0xBBB6AD006F1BBEA3); } // 0xbbb6ad006f1bbea30xa3407ca3B323 - // p0 is characterSlot? seems range from 0 to 2 - inline BOOL StatDeleteSlot(int p0) { return _i(0x49A49BED12794D70, p0); } // 0x49a49bed12794d700x2f171b94B323 - inline BOOL StatSlotIsLoaded(int statSlot) { return _i(0x0D0A9F0E7BD91E3C, statSlot); } // 0x0d0a9f0e7bd91e3c0x7a299c13B323 - inline BOOL StatCloudSlotLoadFailed(int p0) { return _i(0x7F2C4CDF2E82DF4C, p0); } // 0x7f2c4cdf2e82df4c0x0bf0f4b2B323 - inline int StatCloudSlotLoadFailedCode(Any p0) { return _i(0xE496A53BA5F50A56, p0); } // 0xe496a53ba5f50a560xce6b62b5B323 - inline Void StatSetBlockSaves(BOOL toggle) { return _i(0xF434A10BA01C37D0, toggle); } // 0xf434a10ba01c37d00xce7a2411B323 - inline BOOL StatGetBlockSaves() { return _i(0x6A7F19756F1A9016); } // 0x6a7f19756f1a9016B2060 - inline BOOL StatCloudSlotSaveFailed(Any p0) { return _i(0x7E6946F68A38B74F, p0); } // 0x7e6946f68a38b74f0x22804c20B323 - inline Void StatClearPendingSaves(Any p0) { return _i(0xA8733668D1047B51, p0); } // 0xa8733668d1047b510x395d18b1B323 - inline BOOL StatLoadDirtyReadDetected() { return _i(0xECB41AC6AB754401); } // 0xecb41ac6ab7544010xed7000c8B323 - inline Void StatClearDirtyReadDetected() { return _i(0x9B4BD21D69B1E609); } // 0x9b4bd21d69b1e609B323 - inline BOOL StatGetLoadSafeToProgressToMpFromSp() { return _i(0xC0E0D686DDFC6EAE); } // 0xc0e0d686ddfc6eae0x099fcc86B323 - // Returns stat hash based on dataType, statIndex/statId and characterSlot. Related to CStatsMpCharacterMappingData - inline Hash GetStatHashForCharacterStat(int dataType, int statIndex, int charSlot) { return _i(0xD69CE161FE614531, dataType, statIndex, charSlot); } // 0xd69ce161fe614531B2944 - // Example: - // STATS::StatSetInt(MISC::GetHashKey("MPPLY_KILLS_PLAYERS"), 1337, true); - inline BOOL StatSetInt(Hash statName, int value, BOOL save) { return _i(0xB3271D7AB655B441, statName, value, save); } // 0xb3271d7ab655b4410xc9cc1c5cB323 - // Example: - // STATS::StatSetFloat(MISC::GetHashKey("MP0_WEAPON_ACCURACY"), 66.6f, true); - inline BOOL StatSetFloat(Hash statName, float value, BOOL save) { return _i(0x4851997F37FE9B3C, statName, value, save); } // 0x4851997f37fe9b3c0x6cea96f2B323 - // Example: - // STATS::StatSetBool(MISC::GetHashKey("MPPLY_MELEECHLENGECOMPLETED"), trur, true); - inline BOOL StatSetBool(Hash statName, BOOL value, BOOL save) { return _i(0x4B33C4243DE0C432, statName, value, save); } // 0x4b33c4243de0c4320x55d79dfbB323 - // The following values have been found in the decompiled scripts: - // "RC_ABI1" - // "RC_ABI2" - // "RC_BA1" - // "RC_BA2" - // "RC_BA3" - // "RC_BA3A" - // "RC_BA3C" - // "RC_BA4" - // "RC_DRE1" - // "RC_EPS1" - // "RC_EPS2" - // "RC_EPS3" - // "RC_EPS4" - // "RC_EPS5" - // "RC_EPS6" - // "RC_EPS7" - // "RC_EPS8" - // "RC_EXT1" - // "RC_EXT2" - // "RC_EXT3" - // "RC_EXT4" - // "RC_FAN1" - // "RC_FAN2" - // "RC_FAN3" - // "RC_HAO1" - // "RC_HUN1" - // "RC_HUN2" - // "RC_JOS1" - // "RC_JOS2" - // "RC_JOS3" - // "RC_JOS4" - // "RC_MAU1" - // "RC_MIN1" - // "RC_MIN2" - // "RC_MIN3" - // "RC_MRS1" - // "RC_MRS2" - // "RC_NI1" - // "RC_NI1A" - // "RC_NI1B" - // "RC_NI1C" - // "RC_NI1D" - // "RC_NI2" - // "RC_NI3" - // "RC_OME1" - // "RC_OME2" - // "RC_PA1" - // "RC_PA2" - // "RC_PA3" - // "RC_PA3A" - // "RC_PA3B" - // "RC_PA4" - // "RC_RAM1" - // "RC_RAM2" - // "RC_RAM3" - // "RC_RAM4" - // "RC_RAM5" - // "RC_SAS1" - // "RC_TON1" - // "RC_TON2" - // "RC_TON3" - // "RC_TON4" - // "RC_TON5" - inline BOOL StatSetGxtLabel(Hash statName, String value, BOOL save) { return _i(0x17695002FD8B2AE0, statName, value, save); } // 0x17695002fd8b2ae00xc1224aa7B323 - // 'value' is a structure to a structure, 'numFields' is how many fields there are in said structure (usually 7). - // - // The structure looks like this: - // - // int year - // int month - // int day - // int hour - // int minute - // int second - // int millisecond - // - // The decompiled scripts use TIME::GetPosixTime to fill this structure. - inline BOOL StatSetDate(Hash statName, Any* value, int numFields, BOOL save) { return _i(0x2C29BFB64F4FCBE4, statName, value, numFields, save); } // 0x2c29bfb64f4fcbe40x36be807bB323 - inline BOOL StatSetString(Hash statName, String value, BOOL save) { return _i(0xA87B2335D12531D7, statName, value, save); } // 0xa87b2335d12531d70xb1ef2e21B323 - inline BOOL StatSetPos(Hash statName, float x, float y, float z, BOOL save) { return _i(0xDB283FDE680FE72E, statName, x, y, z, save); } // 0xdb283fde680fe72e0x1192c9a3B323 - inline BOOL StatSetMaskedInt(Hash statName, int p1, int p2, int p3, BOOL save) { return _i(0x7BBB1B54583ED410, statName, p1, p2, p3, save); } // 0x7bbb1b54583ed4100x2cbaa739B323 - inline BOOL StatSetUserId(Hash statName, String value, BOOL save) { return _i(0x8CDDF1E452BABE11, statName, value, save); } // 0x8cddf1e452babe110xdbe78ed7B323 - // p1 always true. - inline BOOL StatSetCurrentPosixTime(Hash statName, BOOL p1) { return _i(0xC2F84B7F9C4D0C61, statName, p1); } // 0xc2f84b7f9c4d0c610xa286f015B323 - // p2 appears to always be -1 - // - inline BOOL StatGetInt(Hash statHash, int* outValue, int p2) { return _i(0x767FBC2AC802EF3D, statHash, outValue, p2); } // 0x767fbc2ac802ef3d0x1c6fe43eB323 - inline BOOL StatGetFloat(Hash statHash, float* outValue, Any p2) { return _i(0xD7AE6C9C9C6AC54C, statHash, outValue, p2); } // 0xd7ae6c9c9c6ac54c0xfcbda612B323 - inline BOOL StatGetBool(Hash statHash, BOOL* outValue, Any p2) { return _i(0x11B5E6D2AE73F48E, statHash, outValue, p2); } // 0x11b5e6d2ae73f48e0x28a3dd2bB323 - // p3 is probably characterSlot or BOOL save, always -1 - inline BOOL StatGetDate(Hash statHash, Any* outValue, int numFields, Any p3) { return _i(0x8B0FACEFC36C824B, statHash, outValue, numFields, p3); } // 0x8b0facefc36c824b0xd762d16cB323 - // p1 is always -1 in the script files - inline String STAT_GET_STRING(Hash statHash, int p1) { return _i(0xE50384ACC2C3DB74, statHash, p1); } // 0xE50384ACC2C3DB74 0x10CE4BDE b323 - // p3 is probably characterSlot or BOOL save, always -1 - inline BOOL StatGetPos(Hash statName, float* outX, float* outY, float* outZ, Any p4) { return _i(0x350F82CCB186AA1B, statName, outX, outY, outZ, p4); } // 0x350f82ccb186aa1b0xc846ecceB323 - // p4 is probably characterSlot or BOOL save - inline BOOL StatGetMaskedInt(Hash statHash, int* outValue, int p2, int p3, Any p4) { return _i(0x655185A06D9EEAAB, statHash, outValue, p2, p3, p4); } // 0x655185a06d9eeaab0xe9d9b70fB323 - // Returns the rockstar ID (user id) value of a given stat. Returns "STAT_UNKNOWN" if the statHash is invalid or the stat has no userId - inline String STAT_GET_USER_ID(Hash statHash) { return _i(0x2365C388E393BBE2, statHash); } // 0x2365C388E393BBE2 0xE2E8B6BA b323 - inline String STAT_GET_LICENSE_PLATE(Hash statName) { return _i(0x5473D4195058B2E4, statName); } // 0x5473D4195058B2E4 0x1544B29F b323 - inline BOOL StatSetLicensePlate(Hash statName, String str) { return _i(0x69FF13266D7296DA, statName, str); } // 0x69ff13266d7296da0x3507d253B323 - inline Void StatIncrement(Hash statName, float value) { return _i(0x9B5A68C6489E9909, statName, value); } // 0x9b5a68c6489e99090xdfc5f71eB323 - inline BOOL StatCommunityStartSynch() { return _i(0x5A556B229A169402); } // 0x5a556b229a1694020x46f21343B323 - inline BOOL StatCommunitySynchIsPending() { return _i(0xB1D2BB1E1631F5B1); } // 0xb1d2bb1e1631f5b10x02f283ceB323 - inline BOOL StatCommunityGetHistory(Hash statName, int p1, float* outValue) { return _i(0xBED9F5693F34ED17, statName, p1, outValue); } // 0xbed9f5693f34ed170xc4110917B323 - // p0 seems to range from 0 to 7 - inline Void StatResetAllOnlineCharacterStats(int p0) { return _i(0x26D7399B9587FE89, p0); } // 0x26d7399b9587fe890x343b27e2B323 - // p0 seems to range from 0 to 7 - inline Void StatLocalResetAllOnlineCharacterStats(int p0) { return _i(0xA78B8FA58200DA56, p0); } // 0xa78b8fa58200da560xe3247582B323 - inline int StatGetNumberOfDays(Hash statName) { return _i(0xE0E854F5280FB769, statName); } // 0xe0e854f5280fb7690xfd66a429B323 - inline int StatGetNumberOfHours(Hash statName) { return _i(0xF2D4B2FE415AAFC3, statName); } // 0xf2d4b2fe415aafc30x9b431236B323 - inline int StatGetNumberOfMinutes(Hash statName) { return _i(0x7583B4BE4C5A41B5, statName); } // 0x7583b4be4c5a41b50x347b4436B323 - inline int StatGetNumberOfSeconds(Hash statName) { return _i(0x2CE056FF3723F00B, statName); } // 0x2ce056ff3723f00b0x2c1d6c31B323 - // Does not take effect immediately, unfortunately. - // - // profileSetting seems to only be 936, 937 and 938 in scripts - inline Void StatSetProfileSettingValue(int profileSetting, int value) { return _i(0x68F01422BE1D838F, profileSetting, value); } // 0x68f01422be1d838f0x24dd4929B323 - // This native does absolutely nothing, just a nullsub - inline Void StatsCompletedCharacterCreation(Any p0) { return _i(0xC01D2470F22CDE5A, p0); } // 0xc01d2470f22cde5aB2372 - // Needs more research. Possibly used to calculate the "mask" when calling "StatSetMaskedInt"? - inline int PackedStatGetIntStatIndex(int p0) { return _i(0x94F12ABF9C79E339, p0); } // 0x94f12abf9c79e3390xca160bccB323 - inline Hash GetPackedIntStatKey(int index, BOOL spStat, BOOL charStat, int character) { return _i(0x61E111E323419E07, index, spStat, charStat, character); } // 0x61e111e323419e070x1f938864B323 - inline Hash GetPackedTuIntStatKey(int index, BOOL spStat, BOOL charStat, int character) { return _i(0xD16C2AD6B8E32854, index, spStat, charStat, character); } // 0xd16c2ad6b8e328540xfb93c5a2B323 - // Needs more research. Gets the stat name of a masked int? - // - // section - values used in the decompiled scripts: - // "_NGPSTAT_INT" - // "_MP_NGPSTAT_INT" - // "_MP_LRPSTAT_INT" - // "_MP_APAPSTAT_INT" - // "_MP_LR2PSTAT_INT" - // "_MP_BIKEPSTAT_INT" - // "_MP_IMPEXPPSTAT_INT" - // "_MP_GUNRPSTAT_INT" - // "_NGDLCPSTAT_INT" - // "_MP_NGDLCPSTAT_INT" - // "_DLCSMUGCHARPSTAT_INT" - // "_GANGOPSPSTAT_INT" - // "_BUSINESSBATPSTAT_INT" - // "_ARENAWARSPSTAT_INT" - // "_CASINOPSTAT_INT" - // "_CASINOHSTPSTAT_INT" - - inline Hash GetPackedNgIntStatKey(int index, BOOL spStat, BOOL charStat, int character, String section) { return _i(0x2B4CDCA6F07FF3DA, index, spStat, charStat, character, section); } // 0x2b4cdca6f07ff3daB323 - inline BOOL GetPackedStatBoolCode(int index, int characterSlot) { return _i(0xDA7EBFC49AE3F1B0, index, characterSlot); } // 0xda7ebfc49ae3f1b0B2545 - inline int GetPackedStatIntCode(int index, int characterSlot) { return _i(0x0BC900A6FE73770C, index, characterSlot); } // 0x0bc900a6fe73770cB2545 - inline Void SetPackedStatBoolCode(int index, BOOL value, int characterSlot) { return _i(0xDB8A58AEAA67CD07, index, value, characterSlot); } // 0xdb8a58aeaa67cd07B2545 - inline Void SetPackedStatIntCode(int index, int value, int characterSlot) { return _i(0x1581503AE529CD2E, index, value, characterSlot); } // 0x1581503ae529cd2eB2545 - // Needs more research. Gets the stat name of a masked bool? - // section - values used in the decompiled scripts: - // "_NGPSTAT_BOOL" - // "_NGTATPSTAT_BOOL" - // "_NGDLCPSTAT_BOOL" - // "_DLCBIKEPSTAT_BOOL" - // "_DLCGUNPSTAT_BOOL" - // "_GUNTATPSTAT_BOOL" - // "_DLCSMUGCHARPSTAT_BOOL" - // "_GANGOPSPSTAT_BOOL" - // "_BUSINESSBATPSTAT_BOOL" - // "_ARENAWARSPSTAT_BOOL" - // "_CASINOPSTAT_BOOL" - // "_CASINOHSTPSTAT_BOOL" - // "_HEIST3TATTOOSTAT_BOOL" - ///////Recovery/////// - inline Hash GetNgstatBoolHash(int index, bool spStat, bool charStat, int character, String section) { return _i(0xBA52FF538ED2BC71, index, spStat, charStat, character, section); } - inline Void PlaystatsBackgroundScriptAction(String action, int value) { return _i(0x5009DFD741329729, action, value); } // 0x5009dfd7413297290x61ecc465B323 - // p3: VehicleConversion, SCAdminCashGift - // p4: 0 - inline Void PlaystatsFlowLow(float posX, float posY, float posZ, String p3, Any p4, int amount) { return _i(0xE6A27CDA42887F93, posX, posY, posZ, p3, p4, amount); } // 0xe6a27cda42887f93B2944 - inline Void PlaystatsNpcInvite(String p0) { return _i(0x93054C88E6AA7C44, p0); } // 0x93054c88e6aa7c440x598c06f3B323 - inline Void PlaystatsAwardXp(int amount, Hash type, Hash category) { return _i(0x46F917F6B4128FE4, amount, type, category); } // 0x46f917f6b4128fe40x8770017bB323 - inline Void PlaystatsRankUp(int rank) { return _i(0xC7F2DE41D102BFB4, rank); } // 0xc7f2de41d102bfb40x56afb9f5B323 - inline Void PlaystatsStartedSessionInOfflinemode() { return _i(0x098760C7461724CD); } // 0x098760c7461724cd0x896cdf8dB323 - inline Void PlaystatsActivityDone(int p0, int activityId) { return _i(0xA071E0ED98F91286, p0, activityId); } // 0xa071e0ed98f912860x1a66945fB323 - inline Void PlaystatsLeaveJobChain(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xC5BE134EC7BA96A0, p0, p1, p2, p3, p4); } // 0xc5be134ec7ba96a00xc960e161B323 - inline Void PlaystatsMissionStarted(String p0, Any p1, Any p2, BOOL p3) { return _i(0xC19A2925C34D2231, p0, p1, p2, p3); } // 0xc19a2925c34d22310x3aab699cB323 - inline Void PlaystatsMissionOver(String p0, Any p1, Any p2, BOOL p3, BOOL p4, BOOL p5) { return _i(0x7C4BB33A8CED7324, p0, p1, p2, p3, p4, p5); } // 0x7c4bb33a8ced73240x5b90b5ffB323 - inline Void PlaystatsMissionCheckpoint(String p0, Any p1, Any p2, Any p3) { return _i(0xC900596A63978C1D, p0, p1, p2, p3); } // 0xc900596a63978c1d0xcdc52280B323 - inline Void PlaystatsRandomMissionDone(String name, Any p1, Any p2, Any p3) { return _i(0x71862B1D855F32E1, name, p1, p2, p3); } // 0x71862b1d855f32e10xac2c7c63B323 - inline Void PlaystatsRosBet(int amount, int act, Player player, float cm) { return _i(0x121FB4DDDC2D5291, amount, act, player, cm); } // 0x121fb4dddc2d52910x413539bcB323 - inline Void PlaystatsRaceCheckpoint(Vehicle p0, Any p1, int p2, int p3, Any p4) { return _i(0x9C375C315099DDE4, p0, p1, p2, p3, p4); } // 0x9c375c315099dde40x580d5508B323 - inline BOOL PlaystatsCreateMatchHistoryId2(int* playerAccountId, int* posixTime) { return _i(0x6DEE77AFF8C21BD1, playerAccountId, posixTime); } // 0x6dee77aff8c21bd10x489e27e7B323 - inline Void PlaystatsMatchStarted(Any p0, Any p1, Any p2) { return _i(0xBC80E22DED931E3D, p0, p1, p2); } // 0xbc80e22ded931e3d0x2bde85c1B323 - inline Void PlaystatsShopItem(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x176852ACAAC173D1, p0, p1, p2, p3, p4); } // 0x176852acaac173d10xa4746384B323 - inline Void PlaystatsCrateDropMissionDone(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7) { return _i(0x1CAE5D2E3F9A07F0, p0, p1, p2, p3, p4, p5, p6, p7); } // 0x1cae5d2e3f9a07f00x6602ced6B323 - inline Void PlaystatsCrateCreated(float p0, float p1, float p2) { return _i(0xAFC7E5E075A96F46, p0, p1, p2); } // 0xafc7e5e075a96f460xd003e648B323 - inline Void PlaystatsHoldUpMissionDone(Any p0, Any p1, Any p2, Any p3) { return _i(0xCB00196B31C39EB1, p0, p1, p2, p3); } // 0xcb00196b31c39eb10x759e0ec9B323 - inline Void PlaystatsImportExportMissionDone(Any p0, Any p1, Any p2, Any p3) { return _i(0x2B69F5074C894811, p0, p1, p2, p3); } // 0x2b69f5074c8948110x62073df7B323 - inline Void PlaystatsRaceToPointMissionDone(int p0, Any p1, Any p2, Any p3) { return _i(0xADDD1C754E2E2914, p0, p1, p2, p3); } // 0xaddd1c754e2e29140x06ce3692B323 - inline Void PlaystatsAcquiredHiddenPackage(Any p0) { return _i(0x79AB33F0FBFAC40C, p0); } // 0x79ab33f0fbfac40c0x8d5c7b37B323 - inline Void PlaystatsWebsiteVisited(Hash scaleformHash, int p1) { return _i(0xDDF24D535060F811, scaleformHash, p1); } // 0xddf24d535060f8110x37d152bbB323 - inline Void PlaystatsFriendActivity(int p0, BOOL p1) { return _i(0x0F71DE29AB2258F1, p0, p1); } // 0x0f71de29ab2258f10xd1fa1bdbB323 - // This native does absolutely nothing, just a nullsub - inline Void PlaystatsOddjobDone(int totalTimeMs, int p1, BOOL p2) { return _i(0x69DEA3E9DB727B4C, totalTimeMs, p1, p2); } // 0x69dea3e9db727b4c0xfe14a8eaB323 - inline Void PlaystatsPropChange(Ped p0, int p1, int p2, int p3) { return _i(0xBA739D6D5A05D6E7, p0, p1, p2, p3); } // 0xba739d6d5a05d6e70x25740a1dB323 - inline Void PlaystatsClothChange(Ped p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x34B973047A2268B9, p0, p1, p2, p3, p4); } // 0x34b973047a2268b90x3aff9e58B323 - // This is a typo made by R*. It's supposed to be called PLAYSTATS_WEAPON_MOD_CHANGE. - inline Void PlaystatsWeaponModeChange(Hash weaponHash, Hash componentHashTo, Hash componentHashFrom) { return _i(0xE95C8A1875A02CA4, weaponHash, componentHashTo, componentHashFrom); } // 0xe95c8a1875a02ca40x79716890B323 - inline Void PlaystatsCheatApplied(String cheat) { return _i(0x6058665D72302D3F, cheat); } // 0x6058665d72302d3f0x345166f3B323 - inline Void PlaystatsJobActivityEnd(Any* p0, Any* p1, Any* p2, Any* p3) { return _i(0xF8C54A461C3E11DC, p0, p1, p2, p3); } // 0xf8c54a461c3e11dc0x04181752B323 - inline Void PlaystatsJobBend(Any* p0, Any* p1, Any* p2, Any* p3) { return _i(0xF5BB8DAC426A52C0, p0, p1, p2, p3); } // 0xf5bb8dac426a52c00x40520e70B323 - inline Void PlaystatsJobLtsEnd(Any* p0, Any* p1, Any* p2, Any* p3) { return _i(0xA736CF7FB7C5BFF4, p0, p1, p2, p3); } // 0xa736cf7fb7c5bff40x31002201B323 - inline Void PlaystatsJobLtsRoundEnd(Any* p0, Any* p1, Any* p2, Any* p3) { return _i(0x14E0B2D1AD1044E0, p0, p1, p2, p3); } // 0x14e0b2d1ad1044e00xddd1f1f3B323 - inline Void PlaystatsQuickfixTool(int element, String item) { return _i(0x90D0622866E80445, element, item); } // 0x90d0622866e804450x66feb701B323 - inline Void PlaystatsIdleKick(int msStoodIdle) { return _i(0x5DA3A8DE8CB6226F, msStoodIdle); } // 0x5da3a8de8cb6226f0x9e2b9522B323 - inline Void PlaystatsSetJoinType(int joinType) { return _i(0xD1032E482629049E, joinType); } // 0xd1032e482629049e0x1ac97138B323 - inline Void PlaystatsHeistSaveCheat(Hash hash, int p1) { return _i(0xF4FF020A08BC8863, hash, p1); } // 0xf4ff020a08bc88630xb731df54B323 - inline Void PlaystatsAppendDirectorMetric(Any* p0) { return _i(0x46326E13DA4E0546, p0); } // 0x46326e13da4e0546B323 - inline Void PlaystatsAwardBadSport(int id) { return _i(0x47B32F5611E6E483, id); } // 0x47b32f5611e6e483B463 - inline Void PlaystatsPegasusAsPersonalAircraft(Hash modelHash) { return _i(0x9572BD4DD6B72122, modelHash); } // 0x9572bd4dd6b72122B1180 - inline Void PlaystatsShopmenuNav(Any p0, Any p1, Any p2) { return _i(0xF96E9EA876D9DC92, p0, p1, p2); } // 0xf96e9ea876d9dc92B2802 - inline Void PlaystatsFmEventChallenges(Any p0) { return _i(0x6A60E43998228229, p0); } // 0x6a60e43998228229B463 - inline Void PlaystatsFmEventVehicletarget(Any p0) { return _i(0xBFAFDB5FAAA5C5AB, p0); } // 0xbfafdb5faaa5c5abB463 - inline Void PlaystatsFmEventUrbanwarfare(Any p0) { return _i(0x8C9D11605E59D955, p0); } // 0x8c9d11605e59d955B463 - inline Void PlaystatsFmEventCheckpointcollection(Any p0) { return _i(0x3DE3AA516FB126A4, p0); } // 0x3de3aa516fb126a4B463 - inline Void PlaystatsFmEventAtob(Any p0) { return _i(0xBAA2F0490E146BE8, p0); } // 0xbaa2f0490e146be8B463 - inline Void PlaystatsFmEventPennedin(Any p0) { return _i(0x1A7CE7CD3E653485, p0); } // 0x1a7ce7cd3e653485B463 - inline Void PlaystatsFmEventPasstheparcel(Any p0) { return _i(0x419615486BBF1956, p0); } // 0x419615486bbf1956B463 - inline Void PlaystatsFmEventHotproperty(Any p0) { return _i(0x84DFC579C2FC214C, p0); } // 0x84dfc579c2fc214cB463 - inline Void PlaystatsFmEventDeaddrop(Any p0) { return _i(0x0A9C7F36E5D7B683, p0); } // 0x0a9c7f36e5d7b683B463 - inline Void PlaystatsFmEventKingofthecastle(Any p0) { return _i(0x164C5FF663790845, p0); } // 0x164c5ff663790845B463 - inline Void PlaystatsFmEventCriminaldamage(Any p0) { return _i(0xEDBF6C9B0D2C65C8, p0); } // 0xedbf6c9b0d2c65c8B463 - inline Void PlaystatsFmEventCompetitiveurbanwarfare(Any p0) { return _i(0x6551B1F7F6CD46EA, p0); } // 0x6551b1f7f6cd46eaB463 - inline Void PlaystatsFmEventHuntbeast(Any p0) { return _i(0x2CD90358F67D0AA8, p0); } // 0x2cd90358f67d0aa8B463 - inline Void PlaystatsPimenuHideOptions(Any* data) { return _i(0x203B381133817079, data); } // 0x203b381133817079B393 - inline int LeaderboardsGetNumberOfColumns(int p0, Any p1) { return _i(0x117B45156D7EFF2E, p0, p1); } // 0x117b45156d7eff2e0x0a56ee34B323 - inline int LeaderboardsGetColumnId(int p0, int p1, int p2) { return _i(0xC4B5467A1886EA7E, p0, p1, p2); } // 0xc4b5467a1886ea7e0x3821a334B323 - inline int LeaderboardsGetColumnType(int p0, Any p1, Any p2) { return _i(0xBF4FEF46DB7894D3, p0, p1, p2); } // 0xbf4fef46db7894d30x6f2820f4B323 - inline int LeaderboardsReadClearAll() { return _i(0xA34CB6E6F0DF4A0B); } // 0xa34cb6e6f0df4a0b0x233e058aB323 - inline int LeaderboardsReadClear(Any p0, Any p1, Any p2) { return _i(0x7CCE5C737A665701, p0, p1, p2); } // 0x7cce5c737a6657010x7090012fB323 - inline BOOL LeaderboardsReadPending(Any p0, Any p1, Any p2) { return _i(0xAC392C8483342AC2, p0, p1, p2); } // 0xac392c8483342ac20xeeb8bf5cB323 - inline BOOL LeaderboardsReadAnyPending() { return _i(0xA31FD15197B192BD); } // 0xa31fd15197b192bd0x1789437bB323 - inline BOOL LeaderboardsReadSuccessful(Any p0, Any p1, Any p2) { return _i(0x2FB19228983E832C, p0, p1, p2); } // 0x2fb19228983e832c0x3ac5b2f1B323 - inline BOOL Leaderboards2ReadFriendsByRow(Any* p0, Any* p1, Any p2, BOOL p3, Any p4, Any p5) { return _i(0x918B101666F9CB83, p0, p1, p2, p3, p4, p5); } // 0x918b101666f9cb830xbd91b136B323 - inline BOOL Leaderboards2ReadByHandle(Any* p0, Any* p1) { return _i(0xC30713A383BFBF0E, p0, p1); } // 0xc30713a383bfbf0e0x6b553408B323 - inline BOOL Leaderboards2ReadByRow(Any* p0, Any* p1, Any p2, Any* p3, Any p4, Any* p5, Any p6) { return _i(0xA9CDB1E3F0A49883, p0, p1, p2, p3, p4, p5, p6); } // 0xa9cdb1e3f0a498830xca931f34B323 - inline BOOL Leaderboards2ReadByRank(Any* p0, Any p1, Any p2) { return _i(0xBA2C7DB0C129449A, p0, p1, p2); } // 0xba2c7db0c129449a0x1b03f59fB323 - inline BOOL Leaderboards2ReadByRadius(Any* p0, Any p1, Any* p2) { return _i(0x5CE587FB5A42C8C4, p0, p1, p2); } // 0x5ce587fb5a42c8c40xc5b7e685B323 - inline BOOL Leaderboards2ReadByScoreInt(Any* p0, Any p1, Any p2) { return _i(0x7EEC7E4F6984A16A, p0, p1, p2); } // 0x7eec7e4f6984a16a0xac020c18B323 - inline BOOL Leaderboards2ReadByScoreFloat(Any* p0, float p1, Any p2) { return _i(0xE662C8B759D08F3C, p0, p1, p2); } // 0xe662c8b759d08f3c0xc678b29fB323 - inline BOOL Leaderboards2ReadRankPrediction(Any* p0, Any* p1, Any* p2) { return _i(0xC38DC1E90D22547C, p0, p1, p2); } // 0xc38dc1e90d22547c0x9bec3401B323 - inline BOOL Leaderboards2ReadByPlaform(Any* p0, String gamerHandleCsv, String platformName) { return _i(0xF1AE5DCDBFCA2721, p0, gamerHandleCsv, platformName); } // 0xf1ae5dcdbfca2721B323 - inline BOOL Leaderboards2ReadGetRowDataStart(Any* p0) { return _i(0xA0F93D5465B3094D, p0); } // 0xa0f93d5465b3094d0xc977d6e2B323 - inline Void Leaderboards2ReadGetRowDataEnd() { return _i(0x71B008056E5692D6); } // 0x71b008056e5692d60xf2db6a82B323 - inline BOOL Leaderboards2ReadGetRowDataInfo(Any p0, Any* p1) { return _i(0x34770B9CE0E03B91, p0, p1); } // 0x34770b9ce0e03b910x766a74feB323 - inline int Leaderboards2ReadGetRowDataInt(Any p0, Any p1) { return _i(0x88578F6EC36B4A3A, p0, p1); } // 0x88578f6ec36b4a3a0x6b90e730B323 - inline float Leaderboards2ReadGetRowDataFloat(Any p0, Any p1) { return _i(0x38491439B6BA7F7D, p0, p1); } // 0x38491439b6ba7f7d0x509a286fB323 - inline BOOL Leaderboards2WriteData(Any* p0) { return _i(0xAE2206545888AE49, p0); } // 0xae2206545888ae490x5f9df634B323 - inline Void LeaderboardsWriteAddColumn(Any p0, Any p1, float p2) { return _i(0x0BCA1D2C47B0D269, p0, p1, p2); } // 0x0bca1d2c47b0d2690x7524e27bB323 - inline Void LeaderboardsWriteAddColumnLong(Any p0, Any p1, Any p2) { return _i(0x2E65248609523599, p0, p1, p2); } // 0x2e652486095235990x1c5ccc3aB323 - inline BOOL LeaderboardsCacheDataRow(Any* p0) { return _i(0xB9BB18E2C40142ED, p0); } // 0xb9bb18e2c40142ed0x44f7d82bB323 - inline Void LeaderboardsClearCacheData() { return _i(0xD4B02A6B476E1FDC); } // 0xd4b02a6b476e1fdc0x87f498c1B323 - inline Void LeaderboardsClearCacheDataId(Any p0) { return _i(0x8EC74CEB042E7CFF, p0); } // 0x8ec74ceb042e7cff0x88ae9667B323 - inline BOOL LeaderboardsGetCacheExists(Any p0) { return _i(0x9C51349BE6CDFE2C, p0); } // 0x9c51349be6cdfe2c0xfc8a71f3B323 - inline int LeaderboardsGetCacheTime(Any p0) { return _i(0xF04C1C27DA35F6C8, p0); } // 0xf04c1c27da35f6c80xedf02302B323 - inline int LeaderboardsGetCacheNumberOfRows(Any p0) { return _i(0x58A651CD201D89AD, p0); } // 0x58a651cd201d89ad0xce7cb520B323 - inline BOOL LeaderboardsGetCacheDataRow(Any p0, Any p1, Any* p2) { return _i(0x9120E8DBA3D69273, p0, p1, p2); } // 0x9120e8dba3d692730xa11289ecB323 - inline Void PresenceEventUpdatestatInt(Hash statHash, int value, int p2) { return _i(0x11FF1C80276097ED, statHash, value, p2); } // 0x11ff1c80276097ed0x4ac39c6cB323 - inline Void PresenceEventUpdatestatFloat(Hash statHash, float value, int p2) { return _i(0x30A6614C1F7799B8, statHash, value, p2); } // 0x30a6614c1f7799b80x3e69e7c3B323 - inline Void PresenceEventUpdatestatIntWithString(Hash statHash, int value, int p2, String string) { return _i(0x6483C25849031C4F, statHash, value, p2, string); } // 0x6483c25849031c4f0x2ffd2fa5B323 - inline BOOL GetPlayerHasDrivenAllVehicles() { return _i(0x5EAD2BF6484852E4); } // 0x5ead2bf6484852e40x23d70c39B323 - inline Void SetHasPostedAllVehiclesDriven() { return _i(0xC141B8917E0017EC); } // 0xc141b8917e0017ec0x0ad43306B323 - inline Void SetProfileSettingPrologueComplete() { return _i(0xB475F27C6A994D65); } // 0xb475f27c6a994d650xc7de5c30B323 - // Sets profile setting 939 - inline Void SetProfileSettingSpChopMissionComplete() { return _i(0xC67E2DA1CBE759E2); } // 0xc67e2da1cbe759e2B1734 - // Sets profile setting 933 - inline Void SetProfileSettingCreatorRacesDone(int value) { return _i(0xF1A1803D3476F215, value); } // 0xf1a1803d3476f2150xa3dac790B323 - // Sets profile setting 934 - inline Void SetProfileSettingCreatorDmDone(int value) { return _i(0x38BAAA5DD4C9D19F, value); } // 0x38baaa5dd4c9d19f0x726fae66B323 - // Sets profile setting 935 - inline Void SetProfileSettingCreatorCtfDone(int value) { return _i(0x55384438FC55AD8E, value); } // 0x55384438fc55ad8e0xf03895a4B323 - inline Void SetJobActivityIdStarted(Any p0, int characterSlot) { return _i(0x723C1CE13FBFDB67, p0, characterSlot); } // 0x723c1ce13fbfdb670x4c39cf10B323 - inline Void SetFreemodePrologueDone(Any p0, int characterSlot) { return _i(0x0D01D20616FC73FB, p0, characterSlot); } // 0x0d01d20616fc73fb0x2180ae13B323 - // Sets profile setting 940 and 941 - inline Void SetFreemodeStrandProgressionStatus(int profileSetting, int settingValue) { return _i(0x79D310A861697CC9, profileSetting, settingValue); } // 0x79d310a861697cc9B2699 - inline Void StatNetworkIncrementOnSuicide(Any p0, float p1) { return _i(0x428EAF89E24F6C36, p0, p1); } // 0x428eaf89e24f6c360xee292b91B323 - inline Void StatSetCheatIsActive() { return _i(0x047CBED6F6F8B63C); } // 0x047cbed6f6f8b63c0xa063cabdB323 - inline BOOL Leaderboards2WriteDataForEventType(Any* p0, Any* p1) { return _i(0xC980E62E33DF1D5C, p0, p1); } // 0xc980e62e33df1d5c0x62c19a3dB323 - inline Void ForceCloudMpStatsDownloadAndOverwriteLocalSave() { return _i(0x6F361B8889A792A3); } // 0x6f361b8889a792a30x3b4ef322B323 - inline Void StatMigrateClearForRestart() { return _i(0xC847B43F369AC0B5); } // 0xc847b43f369ac0b5B323 - // platformName must be one of the following: ps3, xbox360, ps4, xboxone - inline BOOL StatMigrateSavegameStart(String platformName) { return _i(0xA5C80D8E768A9E66, platformName); } // 0xa5c80d8e768a9e66B323 - inline int StatMigrateSavegameGetStatus() { return _i(0x9A62EC95AE10E011); } // 0x9a62ec95ae10e011B323 - inline BOOL StatMigrateCheckAlreadyDone() { return _i(0x4C89FE2BDEB3F169); } // 0x4c89fe2bdeb3f169B323 - inline BOOL StatMigrateCheckStart() { return _i(0xC6E0E2616A7576BB); } // 0xc6e0e2616a7576bbB323 - inline int StatMigrateCheckGetIsPlatformAvailable(int p0) { return _i(0x5BD5F255321C4AAF, p0); } // 0x5bd5f255321c4aafB323 - inline int StatMigrateCheckGetPlatformStatus(int p0, Any* p1) { return _i(0xDEAAF77EB3687E97, p0, p1); } // 0xdeaaf77eb3687e97B323 - inline int StatGetSaveMigrationStatus(Any* data) { return _i(0x886913BBEACA68C1, data); } // 0x886913bbeaca68c10xe3f0d62dB323 - inline BOOL StatSaveMigrationCancelPendingOperation() { return _i(0x4FEF53183C3C6414); } // 0x4fef53183c3c6414B323 - inline int StatGetCancelSaveMigrationStatus() { return _i(0x567384DFA67029E6); } // 0x567384dfa67029e6B323 - inline BOOL StatSaveMigrationConsumeContent(Hash contentId, String srcPlatform, String srcGamerHandle) { return _i(0x3270F67EED31FBC1, contentId, srcPlatform, srcGamerHandle); } // 0x3270f67eed31fbc1B323 - inline int StatGetSaveMigrationConsumeContentStatus(int* p0) { return _i(0xCE5AA445ABA8DEE0, p0); } // 0xce5aa445aba8dee0B323 - inline Void StatEnableStatsTracking() { return _i(0x98E2BC1CA26287C3); } // 0x98e2bc1ca26287c3B323 - // Prevents updates to CStatsMgr (e.g., STAT_SET_* natives) - inline Void StatDisableStatsTracking() { return _i(0x629526ABA383BCAA); } // 0x629526aba383bcaaB323 - inline BOOL StatIsStatsTrackingEnabled() { return _i(0xBE3DB208333D9844); } // 0xbe3db208333d9844B463 - // enum StatTrackingType - // { - // LongestWheelie = 1, - // LongestStoppie = 2, - // NoCrashes = 3, - // HighestSpeed = 4, - // _MostFlips = 5, - // _LongestSpin = 6, - // _HighestJumpReached = 7, - // LongestJump = 8, - // _NearMissesNoCrash = 9, - // LongestFallSurvived = 10, - // LowestParachute = 11, - // ReverseDriving = 12, - // LongestFreefall = 13, - // VehiclesStolen = 14, - // _SomeCFireEventCount = 15, - // _Unk16 = 16, - // _LowFlyingTime = 17, - // LowFlying = 18, - // _InvertedFlyingTime = 19, - // InvertedFlying = 20, - // _PlaneSpinCount = 21, - // MeleeKills = 22, // Players - // _LongestSniperKill = 23, - // SniperSkills = 24, // Players - // DrivebyKills = 25, // Players - // HeadshotKills = 26, // Players - // LongestBail = 27, - // _TotalRammedByCar = 28, - // NearMissesPrecise = 29, - // _FreefallTime = 30, - // Unk31 = 31, - // } - // - // enum StatTrackingValueType - // { - // Total, - // Max, - // Min - // } - inline BOOL StatStartRecordStat(int statType, int valueType) { return _i(0x33D72899E24C3365, statType, valueType); } // 0x33d72899e24c3365B463 - inline BOOL StatStopRecordStat() { return _i(0xA761D4AC6115623D); } // 0xa761d4ac6115623dB463 - inline BOOL StatGetRecordedValue(float* value) { return _i(0xF11F01D98113536A, value); } // 0xf11f01d98113536aB463 - inline BOOL StatIsRecordingStat() { return _i(0x8B9CDBD6C566C38C); } // 0x8b9cdbd6c566c38cB944 - // Perform the most near misses with other vehicles in a land vehicle without crashing - inline int StatGetCurrentNearMissNocrashPrecise() { return _i(0xE8853FBCE7D8D0D6); } // 0xe8853fbce7d8d0d6B463 - // Perform the longest wheelie on a motorcycle - inline float StatGetCurrentRearWheelDistance() { return _i(0xA943FD1722E11EFD); } // 0xa943fd1722e11efdB463 - // Perform the longest stoppie on a motorcycle - inline float StatGetCurrentFrontWheelDistance() { return _i(0x84A810B375E69C0E); } // 0x84a810b375e69c0eB463 - // Perform the longest jump in a land vehicle - inline float StatGetCurrentJumpDistance() { return _i(0x9EC8858184CD253A); } // 0x9ec8858184cd253aB463 - // Drive the furthest distance in a land vehicle without crashing - inline float StatGetCurrentDriveNocrashDistance() { return _i(0xBA9749CC94C1FD85); } // 0xba9749cc94c1fd85B463 - // Achieve the highest speed in a land vehicle - inline float StatGetCurrentSpeed() { return _i(0x55A8BECAF28A4EB7); } // 0x55a8becaf28a4eb7B463 - // Reverse the longest distance without crashing - inline float StatGetCurrentDrivingReverseDistance() { return _i(0x32CAC93C9DE73D32); } // 0x32cac93c9de73d32B463 - // Fall the longest distance with a parachute before opening it - inline float StatGetCurrentSkydivingDistance() { return _i(0xAFF47709F1D5DCCE); } // 0xaff47709f1d5dcceB463 - // Fly low to the ground for the longest distance - inline float StatGetChallengeFlyingDist() { return _i(0x6E0A5253375C4584); } // 0x6e0a5253375c4584B463 - inline BOOL StatGetFlyingAltitude(float* outValue) { return _i(0x1A8EA222F9C67DBB, outValue); } // 0x1a8ea222f9c67dbbB463 - // Or non-flyable area - inline BOOL StatIsPlayerVehicleAboveOcean() { return _i(0xF9F2922717B819EC); } // 0xf9f2922717b819ecB505 - // Travel the furthest distance when bailing from a vehicle - inline float StatGetVehicleBailDistance() { return _i(0x0B8B7F74BF061C6D); } // 0x0b8b7f74bf061c6dB463 - // This function is hard-coded to always return 1. - inline BOOL StatRollbackSaveMigration() { return _i(0xB3DA2606774A8E2D); } // 0xb3da2606774a8e2dB323 - // Sets profile setting 866 - inline Void SetHasSpecialeditionContent(int value) { return _i(0xDAC073C7901F9E15, value); } // 0xdac073c7901f9e15B323 - // Sets profile setting 501 - inline Void SetSaveMigrationTransactionIdWarning(int transactionId) { return _i(0xF6792800AC95350D, transactionId); } // 0xf6792800ac95350dB323 - inline Void GetBossGoonUuid(int characterSlot, Any p1, Any p2) { return _i(0x6BC0ACD0673ACEBE, characterSlot, p1, p2); } // 0x6bc0acd0673acebeB573 - inline Void PlaystatsBwBossonbossdeathmatch(Any p0) { return _i(0x8D8ADB562F09A245, p0); } // 0x8d8adb562f09a245B573 - inline Void PlaystatsBwYatchattack(Any p0) { return _i(0xD1A1EE3B4FA8E760, p0); } // 0xd1a1ee3b4fa8e760B573 - inline Void PlaystatsBwHuntTheBoss(Any p0) { return _i(0x88087EE1F28024AE, p0); } // 0x88087ee1f28024aeB573 - inline Void PlaystatsBwSightseer(Any p0) { return _i(0xFCC228E07217FCAC, p0); } // 0xfcc228e07217fcacB573 - inline Void PlaystatsBwAssault(Any p0) { return _i(0x678F86D8FC040BDB, p0); } // 0x678f86d8fc040bdbB573 - inline Void PlaystatsBwBellyOfTheBeast(Any p0) { return _i(0xA6F54BB2FFCA35EA, p0); } // 0xa6f54bb2ffca35eaB573 - inline Void PlaystatsBwHeadHunter(Any p0) { return _i(0x5FF2C33B13A02A11, p0); } // 0x5ff2c33b13a02a11B757 - inline Void PlaystatsBwFragileGoods(Any p0) { return _i(0x282B6739644F4347, p0); } // 0x282b6739644f4347B757 - inline Void PlaystatsBwAirFreight(Any p0) { return _i(0xF06A6F41CB445443, p0); } // 0xf06a6f41cb445443B757 - inline Void PlaystatsBcCarJacking(Any p0) { return _i(0x7B18DA61F6BAE9D5, p0); } // 0x7b18da61f6bae9d5B573 - inline Void PlaystatsBcSmashAndGrab(Any p0) { return _i(0x06EAF70AE066441E, p0); } // 0x06eaf70ae066441eB573 - inline Void PlaystatsBcProtectionRacket(Any p0) { return _i(0x14EDA9EE27BD1626, p0); } // 0x14eda9ee27bd1626B573 - inline Void PlaystatsBcMostWanted(Any p0) { return _i(0x930F504203F561C9, p0); } // 0x930f504203f561c9B573 - inline Void PlaystatsBcFindersKeepers(Any p0) { return _i(0xE3261D791EB44ACB, p0); } // 0xe3261d791eb44acbB573 - inline Void PlaystatsBcPointToPoint(Any p0) { return _i(0x73001E34F85137F8, p0); } // 0x73001e34f85137f8B573 - inline Void PlaystatsBcCashing(Any p0) { return _i(0x53CAE13E9B426993, p0); } // 0x53cae13e9b426993B757 - inline Void PlaystatsBcSalvage(Any p0) { return _i(0x7D36291161859389, p0); } // 0x7d36291161859389B757 - inline Void PlaystatsSpentPiCustomLoadout(int amount) { return _i(0xBE509B0A3693DE8B, amount); } // 0xbe509b0a3693de8bB757 - inline Void PlaystatsBuyContrabandMission(Any* data) { return _i(0xD6781E42755531F7, data); } // 0xd6781e42755531f7B757 - inline Void PlaystatsSellContrabandMission(Any* data) { return _i(0xC729991A9065376E, data); } // 0xc729991a9065376eB757 - inline Void PlaystatsDefendContrabandMission(Any* data) { return _i(0x2605663BD4F23B5D, data); } // 0x2605663bd4f23b5dB757 - inline Void PlaystatsRecoverContrabandMission(Any* data) { return _i(0x04D90BA8207ADA2D, data); } // 0x04d90ba8207ada2dB757 - inline Void PlaystatsHitContrabandDestroyLimit(Any p0) { return _i(0x60EEDC12AF66E846, p0); } // 0x60eedc12af66e846B757 - inline Void StartBeingBoss(Any p0, Any p1) { return _i(0x3EBEAC6C3F81F6BD, p0, p1); } // 0x3ebeac6c3f81f6bdB573 - inline Void StartBeingGoon(Any p0, Any p1, Any p2) { return _i(0x96E6D5150DBF1C09, p0, p1, p2); } // 0x96e6d5150dbf1c09B573 - inline Void EndBeingBoss(Any p0, Any p1, Any p2) { return _i(0xA3C53804BDB68ED2, p0, p1, p2); } // 0xa3c53804bdb68ed2B573 - inline Void EndBeingGoon(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x6BCCF9948492FD85, p0, p1, p2, p3, p4); } // 0x6bccf9948492fd85B573 - inline Void HiredLimo(Any p0, Any p1) { return _i(0x792271AB35C356A4, p0, p1); } // 0x792271ab35c356a4B573 - inline Void OrderBossVehicle(Any p0, Any p1, Hash vehicleHash) { return _i(0xCEA553E35C2246E1, p0, p1, vehicleHash); } // 0xcea553e35c2246e1B573 - inline Void ChangeUniform(Any p0, Any p1, Any p2) { return _i(0xD1C9B92BDD3F151D, p0, p1, p2); } // 0xd1c9b92bdd3f151dB573 - inline Void ChangeGoonLookingForWork(Any p0) { return _i(0x44919CC079BB60BF, p0); } // 0x44919cc079bb60bfB573 - inline Void SendMetricGhostingToPlayer(Any p0) { return _i(0x7033EEFD9B28088E, p0); } // 0x7033eefd9b28088eB678 - inline Void SendMetricVipPoach(Any p0, Any p1, Any p2) { return _i(0xAA525DFF66BB82F5, p0, p1, p2); } // 0xaa525dff66bb82f5B757 - inline Void SendMetricPunishBodyguard(Any p0) { return _i(0x015B03EE1C43E6EC, p0); } // 0x015b03ee1c43e6ecB757 - // Allows CEventNetworkStuntPerformed to be triggered. - inline Void PlaystatsStartTrackingStunts() { return _i(0x928DBFB892638EF3); } // 0x928dbfb892638ef3B791 - // Disallows CEventNetworkStuntPerformed to be triggered. - inline Void PlaystatsStopTrackingStunts() { return _i(0x8A800DACCC0DA55D); } // 0x8a800daccc0da55dB791 - inline Void PlaystatsMissionEnded(Any p0) { return _i(0xBF371CD2B64212FD, p0); } // 0xbf371cd2b64212fdB877 - inline Void PlaystatsImpexpMissionEnded(Any p0) { return _i(0x7D8BA05688AD64C7, p0); } // 0x7d8ba05688ad64c7B944 - inline Void PlaystatsChangeMcRole(Any p0, Any p1, Any p2, Any p3, int role, int p5, Any p6) { return _i(0x0B565B0AAE56A0E8, p0, p1, p2, p3, role, p5, p6); } // 0x0b565b0aae56a0e8B877 - inline Void PlaystatsChangeMcOutfit(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x28ECB8AC2F607DB2, p0, p1, p2, p3, p4); } // 0x28ecb8ac2f607db2B877 - inline Void PlaystatsSwitchMcEmblem(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x0A50D2604E05CB94, p0, p1, p2, p3, p4); } // 0x0a50d2604e05cb94B877 - inline Void PlaystatsMcRequestBike(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xCC25A4553DFBF9EA, p0, p1, p2, p3, p4); } // 0xcc25a4553dfbf9eaB877 - inline Void PlaystatsMcKilledRivalMcMember(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xF534D94DFA2EAD26, p0, p1, p2, p3, p4); } // 0xf534d94dfa2ead26B877 - inline Void PlaystatsAbandonedMc(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xD558BEC0BBA7E8D2, p0, p1, p2, p3, p4); } // 0xd558bec0bba7e8d2B877 - inline Void PlaystatsEarnedMcPoints(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0x501478855A6074CE, p0, p1, p2, p3, p4, p5); } // 0x501478855a6074ceB877 - inline Void PlaystatsMcFormationEnds(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6) { return _i(0x03C2EEBB04B3FB72, p0, p1, p2, p3, p4, p5, p6); } // 0x03c2eebb04b3fb72B877 - inline Void PlaystatsMcClubhouseActivity(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7) { return _i(0x8989CBD7B4E82534, p0, p1, p2, p3, p4, p5, p6, p7); } // 0x8989cbd7b4e82534B877 - inline Void PlaystatsRivalBehavior(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9) { return _i(0x27AA1C973CACFE63, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); } // 0x27aa1c973cacfe63B944 - inline Void PlaystatsCopyRankIntoNewSlot(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6) { return _i(0xB7257BA2550EA10A, p0, p1, p2, p3, p4, p5, p6); } // 0xb7257ba2550ea10aB877 - inline Void PlaystatsDupeDetected(Any* data) { return _i(0x848B66100EE33B05, data); } // 0x848b66100ee33b05B1011 - inline Void PlaystatsBanAlert(int p0) { return _i(0x516FC96EB88EEFE5, p0); } // 0x516fc96eb88eefe5B1011 - inline Void PlaystatsGunrunningMissionEnded(Any* data) { return _i(0x0EACDF8487D5155A, data); } // 0x0eacdf8487d5155aB1103 - inline Void PlaystatsGunrunningRnd(Any p0) { return _i(0xDAF80797FC534BEC, p0); } // 0xdaf80797fc534becB1103 - inline Void PlaystatsBusinessBattleEnded(Any p0) { return _i(0x316DB59CD14C1774, p0); } // 0x316db59cd14c1774B1493 - inline Void PlaystatsWarehouseMissionEnded(Any p0) { return _i(0x2D7A9B577E72385E, p0); } // 0x2d7a9b577e72385eB1493 - inline Void PlaystatsNightclubMissionEnded(Any p0) { return _i(0x830C3A44EB3F2CF9, p0); } // 0x830c3a44eb3f2cf9B1493 - inline Void PlaystatsDjUsage(Any p0, Any p1) { return _i(0xB26F670685631727, p0, p1); } // 0xb26f670685631727B1493 - inline Void PlaystatsMinigameUsage(Any p0, Any p1, Any p2) { return _i(0xC14BD9F5337219B2, p0, p1, p2); } // 0xc14bd9f5337219b2B1493 - inline Void PlaystatsStoneHatchetEnded(Any* data) { return _i(0x35E39E5570358630, data); } // 0x35e39e5570358630B1493 - inline Void PlaystatsSmugglerMissionEnded(Any* data) { return _i(0x320C35147D5B5DDD, data); } // 0x320c35147d5b5dddB1180 - inline Void PlaystatsFmHeistPrepEnded(Any* data) { return _i(0xD8AFB345A9C5CCBB, data); } // 0xd8afb345a9c5ccbbB1290 - inline Void PlaystatsInstancedHeistEnded(Any* data, Any p1, Any p2, Any p3) { return _i(0x1E1497D0D2108115, data, p1, p2, p3); } // 0x1e1497d0d2108115B1290 - inline Void PlaystatsDarCheckpoint(Any* data) { return _i(0x0BC254FF3A911501, data); } // 0x0bc254ff3a911501B1290 - inline Void PlaystatsEnterSessionPack(Any* data) { return _i(0x878FF156D36E9956, data); } // 0x878ff156d36e9956B1290 - inline Void PlaystatsDroneUsage(int p0, int p1, int p2) { return _i(0x66C7BB2416ED3FCE, p0, p1, p2); } // 0x66c7bb2416ed3fceB1493 - inline Void PlaystatsSpinWheel(int p0, int p1, int p2, int p3) { return _i(0x6731DE84A38BFAD0, p0, p1, p2, p3); } // 0x6731de84a38bfad0B1604 - inline Void PlaystatsArenaWarsSpectator(int p0, int p1, int p2, int p3, int p4) { return _i(0x6F4F599753F8200A, p0, p1, p2, p3, p4); } // 0x6f4f599753f8200aB1604 - inline Void PlaystatsArenaWarsEnded(Any* data) { return _i(0xB479D9F0D48A1BC5, data); } // 0xb479d9f0d48a1bc5B1604 - inline Void PlaystatsSwitchPassiveMode(BOOL p0, int p1, int p2, int p3) { return _i(0x35EEC6C2BC821A71, p0, p1, p2, p3); } // 0x35eec6c2bc821a71B1734 - inline Void PlaystatsCollectiblePickedUp(int p0, Hash objectHash, Any p2, Any p3, int moneyAmount, int rpAmount, int chipsAmount, Any p7, int p8, Any p9, Any p10) { return _i(0xCD0A8A9338681CF2, p0, objectHash, p2, p3, moneyAmount, rpAmount, chipsAmount, p7, p8, p9, p10); } // 0xcd0a8a9338681cf2B1734 - inline Void PlaystatsCasinoStoryMissionEnded(Any p0, Any p1) { return _i(0xFCCCAC2BD3C1F180, p0, p1); } // 0xfcccac2bd3c1f180B1734 - inline Void PlaystatsCasinoChip(Any p0) { return _i(0x0999F3F090EC5012, p0); } // 0x0999f3f090ec5012B1734 - inline Void PlaystatsCasinoRoulette(Any p0) { return _i(0x95101C443A84E7F1, p0); } // 0x95101c443a84e7f1B1734 - inline Void PlaystatsCasinoBlackjack(Any p0) { return _i(0x3EAE97309727E7AD, p0); } // 0x3eae97309727e7adB1734 - inline Void PlaystatsCasinoThreeCardPoker(Any p0) { return _i(0xF740FB339D471C35, p0); } // 0xf740fb339d471c35B1734 - inline Void PlaystatsCasinoSlotMachine(Any p0) { return _i(0xEF5EC67D392B830A, p0); } // 0xef5ec67d392b830aB1734 - inline Void PlaystatsCasinoInsideTrack(Any p0) { return _i(0x049F059625058A86, p0); } // 0x049f059625058a86B1734 - inline Void PlaystatsCasinoLuckySeven(Any p0) { return _i(0x0C432C1435F5E4FA, p0); } // 0x0c432c1435f5e4faB1734 - inline Void PlaystatsCasinoRouletteLight(Any p0) { return _i(0x6572ABA3DE1197FC, p0); } // 0x6572aba3de1197fcB1734 - inline Void PlaystatsCasinoBlackjackLight(Any p0) { return _i(0xD5451C7BF151EB6F, p0); } // 0xd5451c7bf151eb6fB1734 - inline Void PlaystatsCasinoThreeCardPokerLight(Any p0) { return _i(0xC9001364B4388F22, p0); } // 0xc9001364b4388f22B1734 - inline Void PlaystatsCasinoSlotMachineLight(Any p0) { return _i(0xE60054A0FAE8227F, p0); } // 0xe60054a0fae8227fB1734 - inline Void PlaystatsCasinoInsideTrackLight(Any p0) { return _i(0x23A3CBCD50D54E47, p0); } // 0x23a3cbcd50d54e47B1734 - inline Void PlaystatsArcadeGame(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6) { return _i(0x533A7D1EA58DF958, p0, p1, p2, p3, p4, p5, p6); } // 0x533a7d1ea58df958B1734 - inline Void PlaystatsArcadeLoveMatch(Any p0, Any p1) { return _i(0x4FCDBD3F0A813C25, p0, p1); } // 0x4fcdbd3f0a813c25B1868 - inline Void PlaystatsFreemodeCasinoMissionEnded(Any* data) { return _i(0x1A0D4A6C336B7BC5, data); } // 0x1a0d4a6c336b7bc5B1734 - inline Void PlaystatsHeist3Drone(Any p0) { return _i(0xDFBD93BF2943E29B, p0); } // 0xdfbd93bf2943e29bB1868 - inline Void PlaystatsHeist3Hack(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0x92FC0EEDFAC04A14, p0, p1, p2, p3, p4, p5); } // 0x92fc0eedfac04a14B1868 - inline Void PlaystatsNpcPhone(Any* p0) { return _i(0x0077F15613D36993, p0); } // 0x0077f15613d36993B1868 - inline Void PlaystatsArcadeCabinet(Any p0) { return _i(0xF9096193DF1F99D4, p0); } // 0xf9096193df1f99d4B1868 - inline Void PlaystatsHeist3Finale(Any p0) { return _i(0x2E0259BABC27A327, p0); } // 0x2e0259babc27a327B1868 - inline Void PlaystatsHeist3Prep(Any p0) { return _i(0x53C31853EC9531FF, p0); } // 0x53c31853ec9531ffB1868 - inline Void PlaystatsMasterControl(Any p0, Any p1, Any p2, Any p3) { return _i(0x810B5FCC52EC7FF0, p0, p1, p2, p3); } // 0x810b5fcc52ec7ff0B1868 - inline Void PlaystatsQuitMode(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x5BF29846C6527C54, p0, p1, p2, p3, p4); } // 0x5bf29846c6527c54B1868 - inline Void PlaystatsMissionVote(Any p0) { return _i(0xC03FAB2C2F92289B, p0); } // 0xc03fab2c2f92289bB1868 - inline Void PlaystatsNjvsVote(Any p0) { return _i(0x5CDAED54B34B0ED0, p0); } // 0x5cdaed54b34b0ed0B1868 - inline Void PlaystatsKillYourself() { return _i(0x4AFF7E02E485E92B); } // 0x4aff7e02e485e92bB1868 - inline Void PlaystatsFmMissionEnd(Any p0, Any p1, Any p2) { return _i(0x46A70777BE6CEAB9, p0, p1, p2); } // 0x46a70777be6ceab9B2545 - inline Void PlaystatsHeist4Prep(Any p0) { return _i(0xDFCDB14317A9B361, p0); } // 0xdfcdb14317a9b361B2189 - inline Void PlaystatsHeist4Finale(Any p0) { return _i(0xC1E963C58664B556, p0); } // 0xc1e963c58664b556B2189 - inline Void PlaystatsHeist4Hack(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x2FA3173480008493, p0, p1, p2, p3, p4); } // 0x2fa3173480008493B2189 - inline Void PlaystatsSubWeap(Any p0, Any p1, Any p2, Any p3) { return _i(0xD4367D310F079DB0, p0, p1, p2, p3); } // 0xd4367d310f079db0B2189 - inline Void PlaystatsFastTrvl(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9, Any p10) { return _i(0x4DC416F246A41FC8, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } // 0x4dc416f246a41fc8B2189 - inline Void PlaystatsHubEntry(Any p0) { return _i(0x2818FF6638CB09DE, p0); } // 0x2818ff6638cb09deB2189 - inline Void PlaystatsDjMissionEnded(Any p0) { return _i(0xD6CA58B3B53A0F22, p0); } // 0xd6ca58b3b53a0f22B2189 - inline Void PlaystatsRobberyPrep(Any p0) { return _i(0x1A67DFBF1F5C3835, p0); } // 0x1a67dfbf1f5c3835B2372 - inline Void PlaystatsRobberyFinale(Any p0) { return _i(0xBBA55BE9AAAABF44, p0); } // 0xbba55be9aaaabf44B2372 - inline Void PlaystatsExtraEvent(Any p0) { return _i(0xFA5B74BAB8A7EF99, p0); } // 0xfa5b74bab8a7ef99B2372 - inline Void PlaystatsCarclubPoints(Any p0) { return _i(0xFF14D6FEEC507BBE, p0); } // 0xff14d6feec507bbeB2372 - inline Void PlaystatsCarclubChallenge(Any p0, Any p1, Any p2, Any p3) { return _i(0x1187CB58D7F3BED7, p0, p1, p2, p3); } // 0x1187cb58d7f3bed7B2372 - inline Void PlaystatsCarclubPrize(int p0, Hash vehicleModel) { return _i(0x69C922B677621428, p0, vehicleModel); } // 0x69c922b677621428B2372 - inline Void PlaystatsAwardNav(Any p0, Any p1, Any p2, Any p3) { return _i(0x70F52471E758EBAE, p0, p1, p2, p3); } // 0x70f52471e758ebaeB2545 - inline Void PlaystatsInstMissionEnd(Any p0) { return _i(0xFEA3F7E83C0610FA, p0); } // 0xfea3f7e83c0610faB2545 - inline Void PlaystatsHubExit(Any p0) { return _i(0x5A46ACE5C4661132, p0); } // 0x5a46ace5c4661132B2545 - inline Void PlaystatsVehDel(int bossId1, int bossId2, int bossType, int vehicleID, int reason) { return _i(0x10A691F5756416D0, bossId1, bossId2, bossType, vehicleID, reason); } // 0x10a691f5756416d0B2944 - inline Void PlaystatsInventory(Any p0) { return _i(0x887DAD63CF5B7908, p0); } // 0x887dad63cf5b7908B2699 - inline Void PlaystatsAcidMissionEnd(Any p0) { return _i(0x8A23D1324F6B2BAC, p0); } // 0x8a23d1324f6b2bacB2802 - inline Void PlaystatsAcidRnd(Any p0) { return _i(0xCEACCF0550FDC5BA, p0); } // 0xceaccf0550fdc5baB2802 - inline Void PlaystatsIdle(Any p0, Any p1, Any p2) { return _i(0xEC9553A178E8F1D1, p0, p1, p2); } // 0xec9553a178e8f1d1B2802 - inline Void PlaystatsPlayerStyle(Any p0) { return _i(0x48FAC5DC7AC6EA99, p0); } // 0x48fac5dc7ac6ea99B2802 - inline Void PlaystatsRandomEvent(Any p0) { return _i(0x7EA06F970F999394, p0); } // 0x7ea06f970f999394B2944 - inline Void PlaystatsAttritionStageEnd(Any p0) { return _i(0xBD642335A732F1A8, p0); } // 0xbd642335a732f1a8B2944 - inline Void PlaystatsShowroomNav(Any p0, Any p1, Hash entity) { return _i(0x961D4157B9B428DB, p0, p1, entity); } // 0x961d4157b9b428dbB2944 - // Data struct contains various tunables related to test drives at Simeons Showroom or Luxury Showcase. - inline Void PlaystatsShowroomOverview(Any* data) { return _i(0x151D6C04C9E2742F, data); } // 0x151d6c04c9e2742fB2944 + // Example: + // + // for (v_2 = 0; v_2 <= 4; v_2 += 1) { + // STATS::StatClearSlotForReload(v_2); + // } + inline BOOL StatClearSlotForReload(int statSlot) { return _i(0xEB0A72181D4AA4AD, statSlot); } // 0xeb0a72181d4aa4ad0x84bdd475B323 + inline BOOL StatLoad(int statSlot) { return _i(0xA651443F437B1CE6, statSlot); } // 0xa651443f437b1ce60x9e5629f4B323 + inline BOOL StatSave(int p0, BOOL p1, int p2, BOOL p3) { return _i(0xE07BCA305B82D2FD, p0, p1, p2, p3); } // 0xe07bca305b82d2fd0xe10a7ca4B323 + inline Void StatSetOpenSavetypeInJob(int p0) { return _i(0x5688585E6D563CD8, p0); } // 0x5688585e6d563cd80xc62406a6B323 + inline BOOL StatLoadPending(int statSlot) { return _i(0xA1750FFAFA181661, statSlot); } // 0xa1750ffafa1816610x4e9ac983B323 + inline BOOL StatSavePending() { return _i(0x7D3A583856F2C5AC); } // 0x7d3a583856f2c5ac0xc3fd3822B323 + inline BOOL StatSavePendingOrRequested() { return _i(0xBBB6AD006F1BBEA3); } // 0xbbb6ad006f1bbea30xa3407ca3B323 + // p0 is characterSlot? seems range from 0 to 2 + inline BOOL StatDeleteSlot(int p0) { return _i(0x49A49BED12794D70, p0); } // 0x49a49bed12794d700x2f171b94B323 + inline BOOL StatSlotIsLoaded(int statSlot) { return _i(0x0D0A9F0E7BD91E3C, statSlot); } // 0x0d0a9f0e7bd91e3c0x7a299c13B323 + inline BOOL StatCloudSlotLoadFailed(int p0) { return _i(0x7F2C4CDF2E82DF4C, p0); } // 0x7f2c4cdf2e82df4c0x0bf0f4b2B323 + inline int StatCloudSlotLoadFailedCode(Any p0) { return _i(0xE496A53BA5F50A56, p0); } // 0xe496a53ba5f50a560xce6b62b5B323 + inline Void StatSetBlockSaves(BOOL toggle) { return _i(0xF434A10BA01C37D0, toggle); } // 0xf434a10ba01c37d00xce7a2411B323 + inline BOOL StatGetBlockSaves() { return _i(0x6A7F19756F1A9016); } // 0x6a7f19756f1a9016B2060 + inline BOOL StatCloudSlotSaveFailed(Any p0) { return _i(0x7E6946F68A38B74F, p0); } // 0x7e6946f68a38b74f0x22804c20B323 + inline Void StatClearPendingSaves(Any p0) { return _i(0xA8733668D1047B51, p0); } // 0xa8733668d1047b510x395d18b1B323 + inline BOOL StatLoadDirtyReadDetected() { return _i(0xECB41AC6AB754401); } // 0xecb41ac6ab7544010xed7000c8B323 + inline Void StatClearDirtyReadDetected() { return _i(0x9B4BD21D69B1E609); } // 0x9b4bd21d69b1e609B323 + inline BOOL StatGetLoadSafeToProgressToMpFromSp() { return _i(0xC0E0D686DDFC6EAE); } // 0xc0e0d686ddfc6eae0x099fcc86B323 + // Returns stat hash based on dataType, statIndex/statId and characterSlot. Related to CStatsMpCharacterMappingData + inline Hash GetStatHashForCharacterStat(int dataType, int statIndex, int charSlot) { return _i(0xD69CE161FE614531, dataType, statIndex, charSlot); } // 0xd69ce161fe614531B2944 + // Example: + // STATS::StatSetInt(MISC::GetHashKey("MPPLY_KILLS_PLAYERS"), 1337, true); + inline BOOL StatSetInt(Hash statName, int value, BOOL save) { return _i(0xB3271D7AB655B441, statName, value, save); } // 0xb3271d7ab655b4410xc9cc1c5cB323 + // Example: + // STATS::StatSetFloat(MISC::GetHashKey("MP0_WEAPON_ACCURACY"), 66.6f, true); + inline BOOL StatSetFloat(Hash statName, float value, BOOL save) { return _i(0x4851997F37FE9B3C, statName, value, save); } // 0x4851997f37fe9b3c0x6cea96f2B323 + // Example: + // STATS::StatSetBool(MISC::GetHashKey("MPPLY_MELEECHLENGECOMPLETED"), trur, true); + inline BOOL StatSetBool(Hash statName, BOOL value, BOOL save) { return _i(0x4B33C4243DE0C432, statName, value, save); } // 0x4b33c4243de0c4320x55d79dfbB323 + // The following values have been found in the decompiled scripts: + // "RC_ABI1" + // "RC_ABI2" + // "RC_BA1" + // "RC_BA2" + // "RC_BA3" + // "RC_BA3A" + // "RC_BA3C" + // "RC_BA4" + // "RC_DRE1" + // "RC_EPS1" + // "RC_EPS2" + // "RC_EPS3" + // "RC_EPS4" + // "RC_EPS5" + // "RC_EPS6" + // "RC_EPS7" + // "RC_EPS8" + // "RC_EXT1" + // "RC_EXT2" + // "RC_EXT3" + // "RC_EXT4" + // "RC_FAN1" + // "RC_FAN2" + // "RC_FAN3" + // "RC_HAO1" + // "RC_HUN1" + // "RC_HUN2" + // "RC_JOS1" + // "RC_JOS2" + // "RC_JOS3" + // "RC_JOS4" + // "RC_MAU1" + // "RC_MIN1" + // "RC_MIN2" + // "RC_MIN3" + // "RC_MRS1" + // "RC_MRS2" + // "RC_NI1" + // "RC_NI1A" + // "RC_NI1B" + // "RC_NI1C" + // "RC_NI1D" + // "RC_NI2" + // "RC_NI3" + // "RC_OME1" + // "RC_OME2" + // "RC_PA1" + // "RC_PA2" + // "RC_PA3" + // "RC_PA3A" + // "RC_PA3B" + // "RC_PA4" + // "RC_RAM1" + // "RC_RAM2" + // "RC_RAM3" + // "RC_RAM4" + // "RC_RAM5" + // "RC_SAS1" + // "RC_TON1" + // "RC_TON2" + // "RC_TON3" + // "RC_TON4" + // "RC_TON5" + inline BOOL StatSetGxtLabel(Hash statName, String value, BOOL save) { return _i(0x17695002FD8B2AE0, statName, value, save); } // 0x17695002fd8b2ae00xc1224aa7B323 + // 'value' is a structure to a structure, 'numFields' is how many fields there are in said structure (usually 7). + // + // The structure looks like this: + // + // int year + // int month + // int day + // int hour + // int minute + // int second + // int millisecond + // + // The decompiled scripts use TIME::GetPosixTime to fill this structure. + inline BOOL StatSetDate(Hash statName, Any* value, int numFields, BOOL save) { return _i(0x2C29BFB64F4FCBE4, statName, value, numFields, save); } // 0x2c29bfb64f4fcbe40x36be807bB323 + inline BOOL StatSetString(Hash statName, String value, BOOL save) { return _i(0xA87B2335D12531D7, statName, value, save); } // 0xa87b2335d12531d70xb1ef2e21B323 + inline BOOL StatSetPos(Hash statName, float x, float y, float z, BOOL save) { return _i(0xDB283FDE680FE72E, statName, x, y, z, save); } // 0xdb283fde680fe72e0x1192c9a3B323 + inline BOOL StatSetMaskedInt(Hash statName, int p1, int p2, int p3, BOOL save) { return _i(0x7BBB1B54583ED410, statName, p1, p2, p3, save); } // 0x7bbb1b54583ed4100x2cbaa739B323 + inline BOOL StatSetUserId(Hash statName, String value, BOOL save) { return _i(0x8CDDF1E452BABE11, statName, value, save); } // 0x8cddf1e452babe110xdbe78ed7B323 + // p1 always true. + inline BOOL StatSetCurrentPosixTime(Hash statName, BOOL p1) { return _i(0xC2F84B7F9C4D0C61, statName, p1); } // 0xc2f84b7f9c4d0c610xa286f015B323 + // p2 appears to always be -1 + // + inline BOOL StatGetInt(Hash statHash, int* outValue, int p2) { return _i(0x767FBC2AC802EF3D, statHash, outValue, p2); } // 0x767fbc2ac802ef3d0x1c6fe43eB323 + inline BOOL StatGetFloat(Hash statHash, float* outValue, Any p2) { return _i(0xD7AE6C9C9C6AC54C, statHash, outValue, p2); } // 0xd7ae6c9c9c6ac54c0xfcbda612B323 + inline BOOL StatGetBool(Hash statHash, BOOL* outValue, Any p2) { return _i(0x11B5E6D2AE73F48E, statHash, outValue, p2); } // 0x11b5e6d2ae73f48e0x28a3dd2bB323 + // p3 is probably characterSlot or BOOL save, always -1 + inline BOOL StatGetDate(Hash statHash, Any* outValue, int numFields, Any p3) { return _i(0x8B0FACEFC36C824B, statHash, outValue, numFields, p3); } // 0x8b0facefc36c824b0xd762d16cB323 + // p1 is always -1 in the script files + inline String StatGetString(Hash statHash, int p1) { return _i(0xE50384ACC2C3DB74, statHash, p1); } // 0xe50384acc2c3db740x10ce4bdeB323 + // p3 is probably characterSlot or BOOL save, always -1 + inline BOOL StatGetPos(Hash statName, float* outX, float* outY, float* outZ, Any p4) { return _i(0x350F82CCB186AA1B, statName, outX, outY, outZ, p4); } // 0x350f82ccb186aa1b0xc846ecceB323 + // p4 is probably characterSlot or BOOL save + inline BOOL StatGetMaskedInt(Hash statHash, int* outValue, int p2, int p3, Any p4) { return _i(0x655185A06D9EEAAB, statHash, outValue, p2, p3, p4); } // 0x655185a06d9eeaab0xe9d9b70fB323 + // Returns the rockstar ID (user id) value of a given stat. Returns "STAT_UNKNOWN" if the statHash is invalid or the stat has no userId + inline String StatGetUserId(Hash statHash) { return _i(0x2365C388E393BBE2, statHash); } // 0x2365c388e393bbe20xe2e8b6baB323 + inline String StatGetLicensePlate(Hash statName) { return _i(0x5473D4195058B2E4, statName); } // 0x5473d4195058b2e40x1544b29fB323 + inline BOOL StatSetLicensePlate(Hash statName, String str) { return _i(0x69FF13266D7296DA, statName, str); } // 0x69ff13266d7296da0x3507d253B323 + inline Void StatIncrement(Hash statName, float value) { return _i(0x9B5A68C6489E9909, statName, value); } // 0x9b5a68c6489e99090xdfc5f71eB323 + inline BOOL StatCommunityStartSynch() { return _i(0x5A556B229A169402); } // 0x5a556b229a1694020x46f21343B323 + inline BOOL StatCommunitySynchIsPending() { return _i(0xB1D2BB1E1631F5B1); } // 0xb1d2bb1e1631f5b10x02f283ceB323 + inline BOOL StatCommunityGetHistory(Hash statName, int p1, float* outValue) { return _i(0xBED9F5693F34ED17, statName, p1, outValue); } // 0xbed9f5693f34ed170xc4110917B323 + // p0 seems to range from 0 to 7 + inline Void StatResetAllOnlineCharacterStats(int p0) { return _i(0x26D7399B9587FE89, p0); } // 0x26d7399b9587fe890x343b27e2B323 + // p0 seems to range from 0 to 7 + inline Void StatLocalResetAllOnlineCharacterStats(int p0) { return _i(0xA78B8FA58200DA56, p0); } // 0xa78b8fa58200da560xe3247582B323 + inline int StatGetNumberOfDays(Hash statName) { return _i(0xE0E854F5280FB769, statName); } // 0xe0e854f5280fb7690xfd66a429B323 + inline int StatGetNumberOfHours(Hash statName) { return _i(0xF2D4B2FE415AAFC3, statName); } // 0xf2d4b2fe415aafc30x9b431236B323 + inline int StatGetNumberOfMinutes(Hash statName) { return _i(0x7583B4BE4C5A41B5, statName); } // 0x7583b4be4c5a41b50x347b4436B323 + inline int StatGetNumberOfSeconds(Hash statName) { return _i(0x2CE056FF3723F00B, statName); } // 0x2ce056ff3723f00b0x2c1d6c31B323 + // Does not take effect immediately, unfortunately. + // + // profileSetting seems to only be 936, 937 and 938 in scripts + inline Void StatSetProfileSettingValue(int profileSetting, int value) { return _i(0x68F01422BE1D838F, profileSetting, value); } // 0x68f01422be1d838f0x24dd4929B323 + // This native does absolutely nothing, just a nullsub + inline Void StatsCompletedCharacterCreation(Any p0) { return _i(0xC01D2470F22CDE5A, p0); } // 0xc01d2470f22cde5aB2372 + // Needs more research. Possibly used to calculate the "mask" when calling "StatSetMaskedInt"? + inline int PackedStatGetIntStatIndex(int p0) { return _i(0x94F12ABF9C79E339, p0); } // 0x94f12abf9c79e3390xca160bccB323 + inline Hash GetPackedIntStatKey(int index, BOOL spStat, BOOL charStat, int character) { return _i(0x61E111E323419E07, index, spStat, charStat, character); } // 0x61e111e323419e070x1f938864B323 + inline Hash GetPackedTuIntStatKey(int index, BOOL spStat, BOOL charStat, int character) { return _i(0xD16C2AD6B8E32854, index, spStat, charStat, character); } // 0xd16c2ad6b8e328540xfb93c5a2B323 + // Needs more research. Gets the stat name of a masked int? + // + // section - values used in the decompiled scripts: + // "_NGPSTAT_INT" + // "_MP_NGPSTAT_INT" + // "_MP_LRPSTAT_INT" + // "_MP_APAPSTAT_INT" + // "_MP_LR2PSTAT_INT" + // "_MP_BIKEPSTAT_INT" + // "_MP_IMPEXPPSTAT_INT" + // "_MP_GUNRPSTAT_INT" + // "_NGDLCPSTAT_INT" + // "_MP_NGDLCPSTAT_INT" + // "_DLCSMUGCHARPSTAT_INT" + // "_GANGOPSPSTAT_INT" + // "_BUSINESSBATPSTAT_INT" + // "_ARENAWARSPSTAT_INT" + // "_CASINOPSTAT_INT" + // "_CASINOHSTPSTAT_INT" + inline Hash GetPackedNgIntStatKey(int index, BOOL spStat, BOOL charStat, int character, String section) { return _i(0x2B4CDCA6F07FF3DA, index, spStat, charStat, character, section); } // 0x2b4cdca6f07ff3daB323 + inline BOOL GetPackedStatBoolCode(int index, int characterSlot) { return _i(0xDA7EBFC49AE3F1B0, index, characterSlot); } // 0xda7ebfc49ae3f1b0B2545 + inline int GetPackedStatIntCode(int index, int characterSlot) { return _i(0x0BC900A6FE73770C, index, characterSlot); } // 0x0bc900a6fe73770cB2545 + inline Void SetPackedStatBoolCode(int index, BOOL value, int characterSlot) { return _i(0xDB8A58AEAA67CD07, index, value, characterSlot); } // 0xdb8a58aeaa67cd07B2545 + inline Void SetPackedStatIntCode(int index, int value, int characterSlot) { return _i(0x1581503AE529CD2E, index, value, characterSlot); } // 0x1581503ae529cd2eB2545 + inline Void PlaystatsBackgroundScriptAction(String action, int value) { return _i(0x5009DFD741329729, action, value); } // 0x5009dfd7413297290x61ecc465B323 + // p3: VehicleConversion, SCAdminCashGift + // p4: 0 + inline Void PlaystatsFlowLow(float posX, float posY, float posZ, String p3, Any p4, int amount) { return _i(0xE6A27CDA42887F93, posX, posY, posZ, p3, p4, amount); } // 0xe6a27cda42887f93B2944 + // interiorAction: can either be InteriorEntry or InteriorExit + inline Void PlaystatsFlowMedium(float x, float y, float z, String interiorAction, int p4, Hash p5) { return _i(0xC4493521BAA12CCE, x, y, z, interiorAction, p4, p5); } // 0xc4493521baa12cceB3095 + inline Void PlaystatsNpcInvite(String p0) { return _i(0x93054C88E6AA7C44, p0); } // 0x93054c88e6aa7c440x598c06f3B323 + inline Void PlaystatsAwardXp(int amount, Hash type, Hash category) { return _i(0x46F917F6B4128FE4, amount, type, category); } // 0x46f917f6b4128fe40x8770017bB323 + inline Void PlaystatsRankUp(int rank) { return _i(0xC7F2DE41D102BFB4, rank); } // 0xc7f2de41d102bfb40x56afb9f5B323 + inline Void PlaystatsStartedSessionInOfflinemode() { return _i(0x098760C7461724CD); } // 0x098760c7461724cd0x896cdf8dB323 + inline Void PlaystatsActivityDone(int p0, int activityId, Any p2) { return _i(0xA071E0ED98F91286, p0, activityId, p2); } // 0xa071e0ed98f912860x1a66945fB323 + inline Void PlaystatsLeaveJobChain(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xC5BE134EC7BA96A0, p0, p1, p2, p3, p4); } // 0xc5be134ec7ba96a00xc960e161B323 + inline Void PlaystatsMissionStarted(String p0, Any p1, Any p2, BOOL p3) { return _i(0xC19A2925C34D2231, p0, p1, p2, p3); } // 0xc19a2925c34d22310x3aab699cB323 + inline Void PlaystatsMissionOver(String p0, Any p1, Any p2, BOOL p3, BOOL p4, BOOL p5) { return _i(0x7C4BB33A8CED7324, p0, p1, p2, p3, p4, p5); } // 0x7c4bb33a8ced73240x5b90b5ffB323 + inline Void PlaystatsMissionCheckpoint(String p0, Any p1, Any p2, Any p3) { return _i(0xC900596A63978C1D, p0, p1, p2, p3); } // 0xc900596a63978c1d0xcdc52280B323 + inline Void PlaystatsRandomMissionDone(String name, Any p1, Any p2, Any p3) { return _i(0x71862B1D855F32E1, name, p1, p2, p3); } // 0x71862b1d855f32e10xac2c7c63B323 + inline Void PlaystatsRosBet(int amount, int act, Player player, float cm) { return _i(0x121FB4DDDC2D5291, amount, act, player, cm); } // 0x121fb4dddc2d52910x413539bcB323 + inline Void PlaystatsRaceCheckpoint(Vehicle p0, Any p1, int p2, int p3, Any p4) { return _i(0x9C375C315099DDE4, p0, p1, p2, p3, p4); } // 0x9c375c315099dde40x580d5508B323 + inline BOOL PlaystatsCreateMatchHistoryId2(int* playerAccountId, int* posixTime) { return _i(0x6DEE77AFF8C21BD1, playerAccountId, posixTime); } // 0x6dee77aff8c21bd10x489e27e7B323 + inline Void PlaystatsMatchStarted(Any p0, Any p1, Any p2) { return _i(0xBC80E22DED931E3D, p0, p1, p2); } // 0xbc80e22ded931e3d0x2bde85c1B323 + inline Void PlaystatsShopItem(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x176852ACAAC173D1, p0, p1, p2, p3, p4); } // 0x176852acaac173d10xa4746384B323 + inline Void PlaystatsCrateDropMissionDone(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7) { return _i(0x1CAE5D2E3F9A07F0, p0, p1, p2, p3, p4, p5, p6, p7); } // 0x1cae5d2e3f9a07f00x6602ced6B323 + inline Void PlaystatsCrateCreated(float p0, float p1, float p2) { return _i(0xAFC7E5E075A96F46, p0, p1, p2); } // 0xafc7e5e075a96f460xd003e648B323 + inline Void PlaystatsHoldUpMissionDone(Any p0, Any p1, Any p2, Any p3) { return _i(0xCB00196B31C39EB1, p0, p1, p2, p3); } // 0xcb00196b31c39eb10x759e0ec9B323 + inline Void PlaystatsImportExportMissionDone(Any p0, Any p1, Any p2, Any p3) { return _i(0x2B69F5074C894811, p0, p1, p2, p3); } // 0x2b69f5074c8948110x62073df7B323 + inline Void PlaystatsRaceToPointMissionDone(int p0, Any p1, Any p2, Any p3) { return _i(0xADDD1C754E2E2914, p0, p1, p2, p3); } // 0xaddd1c754e2e29140x06ce3692B323 + inline Void PlaystatsAcquiredHiddenPackage(Any p0) { return _i(0x79AB33F0FBFAC40C, p0); } // 0x79ab33f0fbfac40c0x8d5c7b37B323 + inline Void PlaystatsWebsiteVisited(Hash scaleformHash, int p1) { return _i(0xDDF24D535060F811, scaleformHash, p1); } // 0xddf24d535060f8110x37d152bbB323 + inline Void PlaystatsFriendActivity(int p0, BOOL p1) { return _i(0x0F71DE29AB2258F1, p0, p1); } // 0x0f71de29ab2258f10xd1fa1bdbB323 + // This native does absolutely nothing, just a nullsub + inline Void PlaystatsOddjobDone(int totalTimeMs, int p1, BOOL p2) { return _i(0x69DEA3E9DB727B4C, totalTimeMs, p1, p2); } // 0x69dea3e9db727b4c0xfe14a8eaB323 + inline Void PlaystatsPropChange(Ped p0, int p1, int p2, int p3) { return _i(0xBA739D6D5A05D6E7, p0, p1, p2, p3); } // 0xba739d6d5a05d6e70x25740a1dB323 + inline Void PlaystatsClothChange(Ped p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x34B973047A2268B9, p0, p1, p2, p3, p4); } // 0x34b973047a2268b90x3aff9e58B323 + // This is a typo made by R*. It's supposed to be called PLAYSTATS_WEAPON_MOD_CHANGE. + inline Void PlaystatsWeaponModeChange(Hash weaponHash, Hash componentHashTo, Hash componentHashFrom) { return _i(0xE95C8A1875A02CA4, weaponHash, componentHashTo, componentHashFrom); } // 0xe95c8a1875a02ca40x79716890B323 + inline Void PlaystatsCheatApplied(String cheat) { return _i(0x6058665D72302D3F, cheat); } // 0x6058665d72302d3f0x345166f3B323 + inline Void PlaystatsJobActivityEnd(Any* p0, Any* p1, Any* p2, Any* p3) { return _i(0xF8C54A461C3E11DC, p0, p1, p2, p3); } // 0xf8c54a461c3e11dc0x04181752B323 + inline Void PlaystatsJobBend(Any* p0, Any* p1, Any* p2, Any* p3) { return _i(0xF5BB8DAC426A52C0, p0, p1, p2, p3); } // 0xf5bb8dac426a52c00x40520e70B323 + inline Void PlaystatsJobLtsEnd(Any* p0, Any* p1, Any* p2, Any* p3) { return _i(0xA736CF7FB7C5BFF4, p0, p1, p2, p3); } // 0xa736cf7fb7c5bff40x31002201B323 + inline Void PlaystatsJobLtsRoundEnd(Any* p0, Any* p1, Any* p2, Any* p3) { return _i(0x14E0B2D1AD1044E0, p0, p1, p2, p3); } // 0x14e0b2d1ad1044e00xddd1f1f3B323 + inline Void PlaystatsQuickfixTool(int element, String item) { return _i(0x90D0622866E80445, element, item); } // 0x90d0622866e804450x66feb701B323 + inline Void PlaystatsIdleKick(int msStoodIdle) { return _i(0x5DA3A8DE8CB6226F, msStoodIdle); } // 0x5da3a8de8cb6226f0x9e2b9522B323 + inline Void PlaystatsSetJoinType(int joinType) { return _i(0xD1032E482629049E, joinType); } // 0xd1032e482629049e0x1ac97138B323 + inline Void PlaystatsHeistSaveCheat(Hash hash, int p1) { return _i(0xF4FF020A08BC8863, hash, p1); } // 0xf4ff020a08bc88630xb731df54B323 + inline Void PlaystatsAppendDirectorMetric(Any* p0) { return _i(0x46326E13DA4E0546, p0); } // 0x46326e13da4e0546B323 + inline Void PlaystatsAwardBadSport(int id) { return _i(0x47B32F5611E6E483, id); } // 0x47b32f5611e6e483B463 + inline Void PlaystatsPegasusAsPersonalAircraft(Hash modelHash) { return _i(0x9572BD4DD6B72122, modelHash); } // 0x9572bd4dd6b72122B1180 + inline Void PlaystatsShopmenuNav(Any p0, Any p1, Any p2, Any p3) { return _i(0xF96E9EA876D9DC92, p0, p1, p2, p3); } // 0xf96e9ea876d9dc92B2802 + inline Void PlaystatsFmEventChallenges(Any p0) { return _i(0x6A60E43998228229, p0); } // 0x6a60e43998228229B463 + inline Void PlaystatsFmEventVehicletarget(Any p0) { return _i(0xBFAFDB5FAAA5C5AB, p0); } // 0xbfafdb5faaa5c5abB463 + inline Void PlaystatsFmEventUrbanwarfare(Any p0) { return _i(0x8C9D11605E59D955, p0); } // 0x8c9d11605e59d955B463 + inline Void PlaystatsFmEventCheckpointcollection(Any p0) { return _i(0x3DE3AA516FB126A4, p0); } // 0x3de3aa516fb126a4B463 + inline Void PlaystatsFmEventAtob(Any p0) { return _i(0xBAA2F0490E146BE8, p0); } // 0xbaa2f0490e146be8B463 + inline Void PlaystatsFmEventPennedin(Any p0) { return _i(0x1A7CE7CD3E653485, p0); } // 0x1a7ce7cd3e653485B463 + inline Void PlaystatsFmEventPasstheparcel(Any p0) { return _i(0x419615486BBF1956, p0); } // 0x419615486bbf1956B463 + inline Void PlaystatsFmEventHotproperty(Any p0) { return _i(0x84DFC579C2FC214C, p0); } // 0x84dfc579c2fc214cB463 + inline Void PlaystatsFmEventDeaddrop(Any p0) { return _i(0x0A9C7F36E5D7B683, p0); } // 0x0a9c7f36e5d7b683B463 + inline Void PlaystatsFmEventKingofthecastle(Any p0) { return _i(0x164C5FF663790845, p0); } // 0x164c5ff663790845B463 + inline Void PlaystatsFmEventCriminaldamage(Any p0) { return _i(0xEDBF6C9B0D2C65C8, p0); } // 0xedbf6c9b0d2c65c8B463 + inline Void PlaystatsFmEventCompetitiveurbanwarfare(Any p0) { return _i(0x6551B1F7F6CD46EA, p0); } // 0x6551b1f7f6cd46eaB463 + inline Void PlaystatsFmEventHuntbeast(Any p0) { return _i(0x2CD90358F67D0AA8, p0); } // 0x2cd90358f67d0aa8B463 + inline Void PlaystatsPimenuHideOptions(Any* data) { return _i(0x203B381133817079, data); } // 0x203b381133817079B393 + inline int LeaderboardsGetNumberOfColumns(int p0, Any p1) { return _i(0x117B45156D7EFF2E, p0, p1); } // 0x117b45156d7eff2e0x0a56ee34B323 + inline int LeaderboardsGetColumnId(int p0, int p1, int p2) { return _i(0xC4B5467A1886EA7E, p0, p1, p2); } // 0xc4b5467a1886ea7e0x3821a334B323 + inline int LeaderboardsGetColumnType(int p0, Any p1, Any p2) { return _i(0xBF4FEF46DB7894D3, p0, p1, p2); } // 0xbf4fef46db7894d30x6f2820f4B323 + inline int LeaderboardsReadClearAll() { return _i(0xA34CB6E6F0DF4A0B); } // 0xa34cb6e6f0df4a0b0x233e058aB323 + inline int LeaderboardsReadClear(Any p0, Any p1, Any p2) { return _i(0x7CCE5C737A665701, p0, p1, p2); } // 0x7cce5c737a6657010x7090012fB323 + inline BOOL LeaderboardsReadPending(Any p0, Any p1, Any p2) { return _i(0xAC392C8483342AC2, p0, p1, p2); } // 0xac392c8483342ac20xeeb8bf5cB323 + inline BOOL LeaderboardsReadAnyPending() { return _i(0xA31FD15197B192BD); } // 0xa31fd15197b192bd0x1789437bB323 + inline BOOL LeaderboardsReadSuccessful(Any p0, Any p1, Any p2) { return _i(0x2FB19228983E832C, p0, p1, p2); } // 0x2fb19228983e832c0x3ac5b2f1B323 + inline BOOL Leaderboards2ReadFriendsByRow(Any* p0, Any* p1, Any p2, BOOL p3, Any p4, Any p5) { return _i(0x918B101666F9CB83, p0, p1, p2, p3, p4, p5); } // 0x918b101666f9cb830xbd91b136B323 + inline BOOL Leaderboards2ReadByHandle(Any* p0, Any* p1) { return _i(0xC30713A383BFBF0E, p0, p1); } // 0xc30713a383bfbf0e0x6b553408B323 + inline BOOL Leaderboards2ReadByRank(Any* p0, Any p1, Any p2) { return _i(0xBA2C7DB0C129449A, p0, p1, p2); } // 0xba2c7db0c129449a0x1b03f59fB323 + inline BOOL Leaderboards2ReadByRadius(Any* p0, Any p1, Any* p2) { return _i(0x5CE587FB5A42C8C4, p0, p1, p2); } // 0x5ce587fb5a42c8c40xc5b7e685B323 + inline BOOL Leaderboards2ReadByScoreInt(Any* p0, Any p1, Any p2) { return _i(0x7EEC7E4F6984A16A, p0, p1, p2); } // 0x7eec7e4f6984a16a0xac020c18B323 + inline BOOL Leaderboards2ReadByScoreFloat(Any* p0, float p1, Any p2) { return _i(0xE662C8B759D08F3C, p0, p1, p2); } // 0xe662c8b759d08f3c0xc678b29fB323 + inline BOOL Leaderboards2ReadRankPrediction(Any* p0, Any* p1, Any* p2) { return _i(0xC38DC1E90D22547C, p0, p1, p2); } // 0xc38dc1e90d22547c0x9bec3401B323 + inline BOOL Leaderboards2ReadByPlaform(Any* p0, String gamerHandleCsv, String platformName) { return _i(0xF1AE5DCDBFCA2721, p0, gamerHandleCsv, platformName); } // 0xf1ae5dcdbfca2721B323 + inline BOOL Leaderboards2ReadGetRowDataStart(Any* p0) { return _i(0xA0F93D5465B3094D, p0); } // 0xa0f93d5465b3094d0xc977d6e2B323 + inline Void Leaderboards2ReadGetRowDataEnd() { return _i(0x71B008056E5692D6); } // 0x71b008056e5692d60xf2db6a82B323 + inline BOOL Leaderboards2ReadGetRowDataInfo(Any p0, Any* p1) { return _i(0x34770B9CE0E03B91, p0, p1); } // 0x34770b9ce0e03b910x766a74feB323 + inline int Leaderboards2ReadGetRowDataInt(Any p0, Any p1) { return _i(0x88578F6EC36B4A3A, p0, p1); } // 0x88578f6ec36b4a3a0x6b90e730B323 + inline float Leaderboards2ReadGetRowDataFloat(Any p0, Any p1) { return _i(0x38491439B6BA7F7D, p0, p1); } // 0x38491439b6ba7f7d0x509a286fB323 + inline BOOL Leaderboards2WriteData(Any* p0) { return _i(0xAE2206545888AE49, p0); } // 0xae2206545888ae490x5f9df634B323 + inline Void LeaderboardsWriteAddColumn(Any p0, Any p1, float p2) { return _i(0x0BCA1D2C47B0D269, p0, p1, p2); } // 0x0bca1d2c47b0d2690x7524e27bB323 + inline Void LeaderboardsWriteAddColumnLong(Any p0, Any p1, Any p2) { return _i(0x2E65248609523599, p0, p1, p2); } // 0x2e652486095235990x1c5ccc3aB323 + inline BOOL LeaderboardsCacheDataRow(Any* p0) { return _i(0xB9BB18E2C40142ED, p0); } // 0xb9bb18e2c40142ed0x44f7d82bB323 + inline Void LeaderboardsClearCacheData() { return _i(0xD4B02A6B476E1FDC); } // 0xd4b02a6b476e1fdc0x87f498c1B323 + inline Void LeaderboardsClearCacheDataId(Any p0) { return _i(0x8EC74CEB042E7CFF, p0); } // 0x8ec74ceb042e7cff0x88ae9667B323 + inline BOOL LeaderboardsGetCacheExists(Any p0) { return _i(0x9C51349BE6CDFE2C, p0); } // 0x9c51349be6cdfe2c0xfc8a71f3B323 + inline int LeaderboardsGetCacheTime(Any p0) { return _i(0xF04C1C27DA35F6C8, p0); } // 0xf04c1c27da35f6c80xedf02302B323 + inline int LeaderboardsGetCacheNumberOfRows(Any p0) { return _i(0x58A651CD201D89AD, p0); } // 0x58a651cd201d89ad0xce7cb520B323 + inline BOOL LeaderboardsGetCacheDataRow(Any p0, Any p1, Any* p2) { return _i(0x9120E8DBA3D69273, p0, p1, p2); } // 0x9120e8dba3d692730xa11289ecB323 + inline Void PresenceEventUpdatestatInt(Hash statHash, int value, int p2) { return _i(0x11FF1C80276097ED, statHash, value, p2); } // 0x11ff1c80276097ed0x4ac39c6cB323 + inline Void PresenceEventUpdatestatFloat(Hash statHash, float value, int p2) { return _i(0x30A6614C1F7799B8, statHash, value, p2); } // 0x30a6614c1f7799b80x3e69e7c3B323 + inline Void PresenceEventUpdatestatIntWithString(Hash statHash, int value, int p2, String string) { return _i(0x6483C25849031C4F, statHash, value, p2, string); } // 0x6483c25849031c4f0x2ffd2fa5B323 + inline BOOL GetPlayerHasDrivenAllVehicles() { return _i(0x5EAD2BF6484852E4); } // 0x5ead2bf6484852e40x23d70c39B323 + inline Void SetHasPostedAllVehiclesDriven() { return _i(0xC141B8917E0017EC); } // 0xc141b8917e0017ec0x0ad43306B323 + inline Void SetProfileSettingPrologueComplete() { return _i(0xB475F27C6A994D65); } // 0xb475f27c6a994d650xc7de5c30B323 + // Sets profile setting 939 + inline Void SetProfileSettingSpChopMissionComplete() { return _i(0xC67E2DA1CBE759E2); } // 0xc67e2da1cbe759e2B1734 + // Sets profile setting 933 + inline Void SetProfileSettingCreatorRacesDone(int value) { return _i(0xF1A1803D3476F215, value); } // 0xf1a1803d3476f2150xa3dac790B323 + // Sets profile setting 934 + inline Void SetProfileSettingCreatorDmDone(int value) { return _i(0x38BAAA5DD4C9D19F, value); } // 0x38baaa5dd4c9d19f0x726fae66B323 + // Sets profile setting 935 + inline Void SetProfileSettingCreatorCtfDone(int value) { return _i(0x55384438FC55AD8E, value); } // 0x55384438fc55ad8e0xf03895a4B323 + inline Void SetJobActivityIdStarted(Any p0, int characterSlot) { return _i(0x723C1CE13FBFDB67, p0, characterSlot); } // 0x723c1ce13fbfdb670x4c39cf10B323 + inline Void SetFreemodePrologueDone(Any p0, int characterSlot) { return _i(0x0D01D20616FC73FB, p0, characterSlot); } // 0x0d01d20616fc73fb0x2180ae13B323 + // Sets profile setting 940 and 941 + inline Void SetFreemodeStrandProgressionStatus(int profileSetting, int settingValue) { return _i(0x79D310A861697CC9, profileSetting, settingValue); } // 0x79d310a861697cc9B2699 + inline Void StatNetworkIncrementOnSuicide(Any p0, float p1) { return _i(0x428EAF89E24F6C36, p0, p1); } // 0x428eaf89e24f6c360xee292b91B323 + inline Void StatSetCheatIsActive() { return _i(0x047CBED6F6F8B63C); } // 0x047cbed6f6f8b63c0xa063cabdB323 + inline BOOL Leaderboards2WriteDataForEventType(Any* p0, Any* p1) { return _i(0xC980E62E33DF1D5C, p0, p1); } // 0xc980e62e33df1d5c0x62c19a3dB323 + inline Void ForceCloudMpStatsDownloadAndOverwriteLocalSave() { return _i(0x6F361B8889A792A3); } // 0x6f361b8889a792a30x3b4ef322B323 + inline Void StatMigrateClearForRestart() { return _i(0xC847B43F369AC0B5); } // 0xc847b43f369ac0b5B323 + // platformName must be one of the following: ps3, xbox360, ps4, xboxone + inline BOOL StatMigrateSavegameStart(String platformName) { return _i(0xA5C80D8E768A9E66, platformName); } // 0xa5c80d8e768a9e66B323 + inline int StatMigrateSavegameGetStatus() { return _i(0x9A62EC95AE10E011); } // 0x9a62ec95ae10e011B323 + inline BOOL StatMigrateCheckAlreadyDone() { return _i(0x4C89FE2BDEB3F169); } // 0x4c89fe2bdeb3f169B323 + inline BOOL StatMigrateCheckStart() { return _i(0xC6E0E2616A7576BB); } // 0xc6e0e2616a7576bbB323 + inline int StatMigrateCheckGetIsPlatformAvailable(int p0) { return _i(0x5BD5F255321C4AAF, p0); } // 0x5bd5f255321c4aafB323 + inline int StatMigrateCheckGetPlatformStatus(int p0, Any* p1) { return _i(0xDEAAF77EB3687E97, p0, p1); } // 0xdeaaf77eb3687e97B323 + inline int StatGetSaveMigrationStatus(Any* data) { return _i(0x886913BBEACA68C1, data); } // 0x886913bbeaca68c10xe3f0d62dB323 + inline BOOL StatSaveMigrationCancelPendingOperation() { return _i(0x4FEF53183C3C6414); } // 0x4fef53183c3c6414B323 + inline int StatGetCancelSaveMigrationStatus() { return _i(0x567384DFA67029E6); } // 0x567384dfa67029e6B323 + inline BOOL StatSaveMigrationConsumeContent(Hash contentId, String srcPlatform, String srcGamerHandle) { return _i(0x3270F67EED31FBC1, contentId, srcPlatform, srcGamerHandle); } // 0x3270f67eed31fbc1B323 + inline int StatGetSaveMigrationConsumeContentStatus(int* p0) { return _i(0xCE5AA445ABA8DEE0, p0); } // 0xce5aa445aba8dee0B323 + inline Void StatEnableStatsTracking() { return _i(0x98E2BC1CA26287C3); } // 0x98e2bc1ca26287c3B323 + // Prevents updates to CStatsMgr (e.g., STAT_SET_* natives) + inline Void StatDisableStatsTracking() { return _i(0x629526ABA383BCAA); } // 0x629526aba383bcaaB323 + inline BOOL StatIsStatsTrackingEnabled() { return _i(0xBE3DB208333D9844); } // 0xbe3db208333d9844B463 + // enum StatTrackingType + // { + // LongestWheelie = 1, + // LongestStoppie = 2, + // NoCrashes = 3, + // HighestSpeed = 4, + // _MostFlips = 5, + // _LongestSpin = 6, + // _HighestJumpReached = 7, + // LongestJump = 8, + // _NearMissesNoCrash = 9, + // LongestFallSurvived = 10, + // LowestParachute = 11, + // ReverseDriving = 12, + // LongestFreefall = 13, + // VehiclesStolen = 14, + // _SomeCFireEventCount = 15, + // _Unk16 = 16, + // _LowFlyingTime = 17, + // LowFlying = 18, + // _InvertedFlyingTime = 19, + // InvertedFlying = 20, + // _PlaneSpinCount = 21, + // MeleeKills = 22, // Players + // _LongestSniperKill = 23, + // SniperSkills = 24, // Players + // DrivebyKills = 25, // Players + // HeadshotKills = 26, // Players + // LongestBail = 27, + // _TotalRammedByCar = 28, + // NearMissesPrecise = 29, + // _FreefallTime = 30, + // Unk31 = 31, + // } + // + // enum StatTrackingValueType + // { + // Total, + // Max, + // Min + // } + inline BOOL StatStartRecordStat(int statType, int valueType) { return _i(0x33D72899E24C3365, statType, valueType); } // 0x33d72899e24c3365B463 + inline BOOL StatStopRecordStat() { return _i(0xA761D4AC6115623D); } // 0xa761d4ac6115623dB463 + inline BOOL StatGetRecordedValue(float* value) { return _i(0xF11F01D98113536A, value); } // 0xf11f01d98113536aB463 + inline BOOL StatIsRecordingStat() { return _i(0x8B9CDBD6C566C38C); } // 0x8b9cdbd6c566c38cB944 + // Perform the most near misses with other vehicles in a land vehicle without crashing + inline int StatGetCurrentNearMissNocrashPrecise() { return _i(0xE8853FBCE7D8D0D6); } // 0xe8853fbce7d8d0d6B463 + // Perform the longest wheelie on a motorcycle + inline float StatGetCurrentRearWheelDistance() { return _i(0xA943FD1722E11EFD); } // 0xa943fd1722e11efdB463 + // Perform the longest stoppie on a motorcycle + inline float StatGetCurrentFrontWheelDistance() { return _i(0x84A810B375E69C0E); } // 0x84a810b375e69c0eB463 + // Perform the longest jump in a land vehicle + inline float StatGetCurrentJumpDistance() { return _i(0x9EC8858184CD253A); } // 0x9ec8858184cd253aB463 + // Drive the furthest distance in a land vehicle without crashing + inline float StatGetCurrentDriveNocrashDistance() { return _i(0xBA9749CC94C1FD85); } // 0xba9749cc94c1fd85B463 + // Achieve the highest speed in a land vehicle + inline float StatGetCurrentSpeed() { return _i(0x55A8BECAF28A4EB7); } // 0x55a8becaf28a4eb7B463 + // Reverse the longest distance without crashing + inline float StatGetCurrentDrivingReverseDistance() { return _i(0x32CAC93C9DE73D32); } // 0x32cac93c9de73d32B463 + // Fall the longest distance with a parachute before opening it + inline float StatGetCurrentSkydivingDistance() { return _i(0xAFF47709F1D5DCCE); } // 0xaff47709f1d5dcceB463 + // Fly low to the ground for the longest distance + inline float StatGetChallengeFlyingDist() { return _i(0x6E0A5253375C4584); } // 0x6e0a5253375c4584B463 + inline BOOL StatGetFlyingAltitude(float* outValue) { return _i(0x1A8EA222F9C67DBB, outValue); } // 0x1a8ea222f9c67dbbB463 + // Or non-flyable area + inline BOOL StatIsPlayerVehicleAboveOcean() { return _i(0xF9F2922717B819EC); } // 0xf9f2922717b819ecB505 + // Travel the furthest distance when bailing from a vehicle + inline float StatGetVehicleBailDistance() { return _i(0x0B8B7F74BF061C6D); } // 0x0b8b7f74bf061c6dB463 + // This function is hard-coded to always return 1. + inline BOOL StatRollbackSaveMigration() { return _i(0xB3DA2606774A8E2D); } // 0xb3da2606774a8e2dB323 + // Sets profile setting 866 + inline Void SetHasSpecialeditionContent(int value) { return _i(0xDAC073C7901F9E15, value); } // 0xdac073c7901f9e15B323 + // Sets profile setting 501 + inline Void SetSaveMigrationTransactionIdWarning(int transactionId) { return _i(0xF6792800AC95350D, transactionId); } // 0xf6792800ac95350dB323 + inline Void GetBossGoonUuid(int characterSlot, Any p1, Any p2) { return _i(0x6BC0ACD0673ACEBE, characterSlot, p1, p2); } // 0x6bc0acd0673acebeB573 + inline Void PlaystatsBwBossonbossdeathmatch(Any p0) { return _i(0x8D8ADB562F09A245, p0); } // 0x8d8adb562f09a245B573 + inline Void PlaystatsBwYatchattack(Any p0) { return _i(0xD1A1EE3B4FA8E760, p0); } // 0xd1a1ee3b4fa8e760B573 + inline Void PlaystatsBwHuntTheBoss(Any p0) { return _i(0x88087EE1F28024AE, p0); } // 0x88087ee1f28024aeB573 + inline Void PlaystatsBwSightseer(Any p0) { return _i(0xFCC228E07217FCAC, p0); } // 0xfcc228e07217fcacB573 + inline Void PlaystatsBwAssault(Any p0) { return _i(0x678F86D8FC040BDB, p0); } // 0x678f86d8fc040bdbB573 + inline Void PlaystatsBwBellyOfTheBeast(Any p0) { return _i(0xA6F54BB2FFCA35EA, p0); } // 0xa6f54bb2ffca35eaB573 + inline Void PlaystatsBwHeadHunter(Any p0) { return _i(0x5FF2C33B13A02A11, p0); } // 0x5ff2c33b13a02a11B757 + inline Void PlaystatsBwFragileGoods(Any p0) { return _i(0x282B6739644F4347, p0); } // 0x282b6739644f4347B757 + inline Void PlaystatsBwAirFreight(Any p0) { return _i(0xF06A6F41CB445443, p0); } // 0xf06a6f41cb445443B757 + inline Void PlaystatsBcCarJacking(Any p0) { return _i(0x7B18DA61F6BAE9D5, p0); } // 0x7b18da61f6bae9d5B573 + inline Void PlaystatsBcSmashAndGrab(Any p0) { return _i(0x06EAF70AE066441E, p0); } // 0x06eaf70ae066441eB573 + inline Void PlaystatsBcProtectionRacket(Any p0) { return _i(0x14EDA9EE27BD1626, p0); } // 0x14eda9ee27bd1626B573 + inline Void PlaystatsBcMostWanted(Any p0) { return _i(0x930F504203F561C9, p0); } // 0x930f504203f561c9B573 + inline Void PlaystatsBcFindersKeepers(Any p0) { return _i(0xE3261D791EB44ACB, p0); } // 0xe3261d791eb44acbB573 + inline Void PlaystatsBcPointToPoint(Any p0) { return _i(0x73001E34F85137F8, p0); } // 0x73001e34f85137f8B573 + inline Void PlaystatsBcCashing(Any p0) { return _i(0x53CAE13E9B426993, p0); } // 0x53cae13e9b426993B757 + inline Void PlaystatsBcSalvage(Any p0) { return _i(0x7D36291161859389, p0); } // 0x7d36291161859389B757 + inline Void PlaystatsSpentPiCustomLoadout(int amount) { return _i(0xBE509B0A3693DE8B, amount); } // 0xbe509b0a3693de8bB757 + inline Void PlaystatsBuyContrabandMission(Any* data) { return _i(0xD6781E42755531F7, data); } // 0xd6781e42755531f7B757 + inline Void PlaystatsSellContrabandMission(Any* data) { return _i(0xC729991A9065376E, data); } // 0xc729991a9065376eB757 + inline Void PlaystatsDefendContrabandMission(Any* data) { return _i(0x2605663BD4F23B5D, data); } // 0x2605663bd4f23b5dB757 + inline Void PlaystatsRecoverContrabandMission(Any* data) { return _i(0x04D90BA8207ADA2D, data); } // 0x04d90ba8207ada2dB757 + inline Void PlaystatsHitContrabandDestroyLimit(Any p0) { return _i(0x60EEDC12AF66E846, p0); } // 0x60eedc12af66e846B757 + inline Void StartBeingBoss(Any p0, Any p1, Any p2) { return _i(0x3EBEAC6C3F81F6BD, p0, p1, p2); } // 0x3ebeac6c3f81f6bdB573 + inline Void StartBeingGoon(Any p0, Any p1, Any p2) { return _i(0x96E6D5150DBF1C09, p0, p1, p2); } // 0x96e6d5150dbf1c09B573 + inline Void EndBeingBoss(Any p0, Any p1, Any p2) { return _i(0xA3C53804BDB68ED2, p0, p1, p2); } // 0xa3c53804bdb68ed2B573 + inline Void EndBeingGoon(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x6BCCF9948492FD85, p0, p1, p2, p3, p4); } // 0x6bccf9948492fd85B573 + inline Void HiredLimo(Any p0, Any p1) { return _i(0x792271AB35C356A4, p0, p1); } // 0x792271ab35c356a4B573 + inline Void OrderBossVehicle(Any p0, Any p1, Hash vehicleHash) { return _i(0xCEA553E35C2246E1, p0, p1, vehicleHash); } // 0xcea553e35c2246e1B573 + inline Void ChangeUniform(Any p0, Any p1, Any p2) { return _i(0xD1C9B92BDD3F151D, p0, p1, p2); } // 0xd1c9b92bdd3f151dB573 + inline Void ChangeGoonLookingForWork(Any p0) { return _i(0x44919CC079BB60BF, p0); } // 0x44919cc079bb60bfB573 + inline Void SendMetricGhostingToPlayer(Any p0) { return _i(0x7033EEFD9B28088E, p0); } // 0x7033eefd9b28088eB678 + inline Void SendMetricVipPoach(Any p0, Any p1, Any p2) { return _i(0xAA525DFF66BB82F5, p0, p1, p2); } // 0xaa525dff66bb82f5B757 + inline Void SendMetricPunishBodyguard(Any p0) { return _i(0x015B03EE1C43E6EC, p0); } // 0x015b03ee1c43e6ecB757 + // Allows CEventNetworkStuntPerformed to be triggered. + inline Void PlaystatsStartTrackingStunts() { return _i(0x928DBFB892638EF3); } // 0x928dbfb892638ef3B791 + // Disallows CEventNetworkStuntPerformed to be triggered. + inline Void PlaystatsStopTrackingStunts() { return _i(0x8A800DACCC0DA55D); } // 0x8a800daccc0da55dB791 + inline Void PlaystatsMissionEnded(Any p0) { return _i(0xBF371CD2B64212FD, p0); } // 0xbf371cd2b64212fdB877 + inline Void PlaystatsImpexpMissionEnded(Any p0) { return _i(0x7D8BA05688AD64C7, p0); } // 0x7d8ba05688ad64c7B944 + inline Void PlaystatsChangeMcRole(Any p0, Any p1, Any p2, Any p3, int role, int p5, Any p6) { return _i(0x0B565B0AAE56A0E8, p0, p1, p2, p3, role, p5, p6); } // 0x0b565b0aae56a0e8B877 + inline Void PlaystatsChangeMcOutfit(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x28ECB8AC2F607DB2, p0, p1, p2, p3, p4); } // 0x28ecb8ac2f607db2B877 + inline Void PlaystatsSwitchMcEmblem(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x0A50D2604E05CB94, p0, p1, p2, p3, p4); } // 0x0a50d2604e05cb94B877 + inline Void PlaystatsMcRequestBike(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xCC25A4553DFBF9EA, p0, p1, p2, p3, p4); } // 0xcc25a4553dfbf9eaB877 + inline Void PlaystatsMcKilledRivalMcMember(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xF534D94DFA2EAD26, p0, p1, p2, p3, p4); } // 0xf534d94dfa2ead26B877 + inline Void PlaystatsAbandonedMc(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0xD558BEC0BBA7E8D2, p0, p1, p2, p3, p4); } // 0xd558bec0bba7e8d2B877 + inline Void PlaystatsEarnedMcPoints(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0x501478855A6074CE, p0, p1, p2, p3, p4, p5); } // 0x501478855a6074ceB877 + inline Void PlaystatsMcFormationEnds(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6) { return _i(0x03C2EEBB04B3FB72, p0, p1, p2, p3, p4, p5, p6); } // 0x03c2eebb04b3fb72B877 + inline Void PlaystatsMcClubhouseActivity(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7) { return _i(0x8989CBD7B4E82534, p0, p1, p2, p3, p4, p5, p6, p7); } // 0x8989cbd7b4e82534B877 + inline Void PlaystatsRivalBehavior(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9) { return _i(0x27AA1C973CACFE63, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); } // 0x27aa1c973cacfe63B944 + inline Void PlaystatsCopyRankIntoNewSlot(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6) { return _i(0xB7257BA2550EA10A, p0, p1, p2, p3, p4, p5, p6); } // 0xb7257ba2550ea10aB877 + inline Void PlaystatsDupeDetected(Any* data) { return _i(0x848B66100EE33B05, data); } // 0x848b66100ee33b05B1011 + inline Void PlaystatsBanAlert(int p0) { return _i(0x516FC96EB88EEFE5, p0); } // 0x516fc96eb88eefe5B1011 + inline Void PlaystatsGunrunningMissionEnded(Any* data) { return _i(0x0EACDF8487D5155A, data); } // 0x0eacdf8487d5155aB1103 + inline Void PlaystatsGunrunningRnd(Any p0) { return _i(0xDAF80797FC534BEC, p0); } // 0xdaf80797fc534becB1103 + inline Void PlaystatsBusinessBattleEnded(Any p0) { return _i(0x316DB59CD14C1774, p0); } // 0x316db59cd14c1774B1493 + inline Void PlaystatsWarehouseMissionEnded(Any p0) { return _i(0x2D7A9B577E72385E, p0); } // 0x2d7a9b577e72385eB1493 + inline Void PlaystatsNightclubMissionEnded(Any p0) { return _i(0x830C3A44EB3F2CF9, p0); } // 0x830c3a44eb3f2cf9B1493 + inline Void PlaystatsDjUsage(Any p0, Any p1) { return _i(0xB26F670685631727, p0, p1); } // 0xb26f670685631727B1493 + inline Void PlaystatsMinigameUsage(Any p0, Any p1, Any p2) { return _i(0xC14BD9F5337219B2, p0, p1, p2); } // 0xc14bd9f5337219b2B1493 + inline Void PlaystatsStoneHatchetEnded(Any* data) { return _i(0x35E39E5570358630, data); } // 0x35e39e5570358630B1493 + inline Void PlaystatsSmugglerMissionEnded(Any* data) { return _i(0x320C35147D5B5DDD, data); } // 0x320c35147d5b5dddB1180 + inline Void PlaystatsFmHeistPrepEnded(Any* data) { return _i(0xD8AFB345A9C5CCBB, data); } // 0xd8afb345a9c5ccbbB1290 + inline Void PlaystatsInstancedHeistEnded(Any* data, Any p1, Any p2, Any p3) { return _i(0x1E1497D0D2108115, data, p1, p2, p3); } // 0x1e1497d0d2108115B1290 + inline Void PlaystatsDarCheckpoint(Any* data) { return _i(0x0BC254FF3A911501, data); } // 0x0bc254ff3a911501B1290 + inline Void PlaystatsEnterSessionPack(Any* data) { return _i(0x878FF156D36E9956, data); } // 0x878ff156d36e9956B1290 + inline Void PlaystatsDroneUsage(int p0, int p1, int p2) { return _i(0x66C7BB2416ED3FCE, p0, p1, p2); } // 0x66c7bb2416ed3fceB1493 + inline Void PlaystatsSpinWheel(int p0, int p1, int p2, int p3) { return _i(0x6731DE84A38BFAD0, p0, p1, p2, p3); } // 0x6731de84a38bfad0B1604 + inline Void PlaystatsArenaWarsSpectator(int p0, int p1, int p2, int p3, int p4) { return _i(0x6F4F599753F8200A, p0, p1, p2, p3, p4); } // 0x6f4f599753f8200aB1604 + inline Void PlaystatsArenaWarsEnded(Any* data) { return _i(0xB479D9F0D48A1BC5, data); } // 0xb479d9f0d48a1bc5B1604 + inline Void PlaystatsSwitchPassiveMode(BOOL p0, int p1, int p2, int p3) { return _i(0x35EEC6C2BC821A71, p0, p1, p2, p3); } // 0x35eec6c2bc821a71B1734 + inline Void PlaystatsCollectiblePickedUp(int p0, Hash objectHash, Any p2, Any p3, int moneyAmount, int rpAmount, int chipsAmount, Any p7, int p8, Any p9, Any p10) { return _i(0xCD0A8A9338681CF2, p0, objectHash, p2, p3, moneyAmount, rpAmount, chipsAmount, p7, p8, p9, p10); } // 0xcd0a8a9338681cf2B1734 + inline Void PlaystatsCasinoStoryMissionEnded(Any p0, Any p1) { return _i(0xFCCCAC2BD3C1F180, p0, p1); } // 0xfcccac2bd3c1f180B1734 + inline Void PlaystatsCasinoChip(Any p0) { return _i(0x0999F3F090EC5012, p0); } // 0x0999f3f090ec5012B1734 + inline Void PlaystatsCasinoRoulette(Any p0) { return _i(0x95101C443A84E7F1, p0); } // 0x95101c443a84e7f1B1734 + inline Void PlaystatsCasinoBlackjack(Any p0) { return _i(0x3EAE97309727E7AD, p0); } // 0x3eae97309727e7adB1734 + inline Void PlaystatsCasinoThreeCardPoker(Any p0) { return _i(0xF740FB339D471C35, p0); } // 0xf740fb339d471c35B1734 + inline Void PlaystatsCasinoSlotMachine(Any p0) { return _i(0xEF5EC67D392B830A, p0); } // 0xef5ec67d392b830aB1734 + inline Void PlaystatsCasinoInsideTrack(Any p0) { return _i(0x049F059625058A86, p0); } // 0x049f059625058a86B1734 + inline Void PlaystatsCasinoLuckySeven(Any p0) { return _i(0x0C432C1435F5E4FA, p0); } // 0x0c432c1435f5e4faB1734 + inline Void PlaystatsCasinoRouletteLight(Any p0) { return _i(0x6572ABA3DE1197FC, p0); } // 0x6572aba3de1197fcB1734 + inline Void PlaystatsCasinoBlackjackLight(Any p0) { return _i(0xD5451C7BF151EB6F, p0); } // 0xd5451c7bf151eb6fB1734 + inline Void PlaystatsCasinoThreeCardPokerLight(Any p0) { return _i(0xC9001364B4388F22, p0); } // 0xc9001364b4388f22B1734 + inline Void PlaystatsCasinoSlotMachineLight(Any p0) { return _i(0xE60054A0FAE8227F, p0); } // 0xe60054a0fae8227fB1734 + inline Void PlaystatsCasinoInsideTrackLight(Any p0) { return _i(0x23A3CBCD50D54E47, p0); } // 0x23a3cbcd50d54e47B1734 + inline Void PlaystatsArcadeGame(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6) { return _i(0x533A7D1EA58DF958, p0, p1, p2, p3, p4, p5, p6); } // 0x533a7d1ea58df958B1734 + inline Void PlaystatsArcadeLoveMatch(Any p0, Any p1) { return _i(0x4FCDBD3F0A813C25, p0, p1); } // 0x4fcdbd3f0a813c25B1868 + inline Void PlaystatsFreemodeCasinoMissionEnded(Any* data) { return _i(0x1A0D4A6C336B7BC5, data); } // 0x1a0d4a6c336b7bc5B1734 + inline Void PlaystatsHeist3Drone(Any p0) { return _i(0xDFBD93BF2943E29B, p0); } // 0xdfbd93bf2943e29bB1868 + inline Void PlaystatsHeist3Hack(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0x92FC0EEDFAC04A14, p0, p1, p2, p3, p4, p5); } // 0x92fc0eedfac04a14B1868 + inline Void PlaystatsNpcPhone(Any* p0) { return _i(0x0077F15613D36993, p0); } // 0x0077f15613d36993B1868 + inline Void PlaystatsArcadeCabinet(Any p0) { return _i(0xF9096193DF1F99D4, p0); } // 0xf9096193df1f99d4B1868 + inline Void PlaystatsHeist3Finale(Any p0) { return _i(0x2E0259BABC27A327, p0); } // 0x2e0259babc27a327B1868 + inline Void PlaystatsHeist3Prep(Any p0) { return _i(0x53C31853EC9531FF, p0); } // 0x53c31853ec9531ffB1868 + inline Void PlaystatsMasterControl(Any p0, Any p1, Any p2, Any p3) { return _i(0x810B5FCC52EC7FF0, p0, p1, p2, p3); } // 0x810b5fcc52ec7ff0B1868 + inline Void PlaystatsQuitMode(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x5BF29846C6527C54, p0, p1, p2, p3, p4); } // 0x5bf29846c6527c54B1868 + inline Void PlaystatsMissionVote(Any p0) { return _i(0xC03FAB2C2F92289B, p0); } // 0xc03fab2c2f92289bB1868 + inline Void PlaystatsNjvsVote(Any p0) { return _i(0x5CDAED54B34B0ED0, p0); } // 0x5cdaed54b34b0ed0B1868 + inline Void PlaystatsKillYourself() { return _i(0x4AFF7E02E485E92B); } // 0x4aff7e02e485e92bB1868 + inline Void PlaystatsFmMissionEnd(Any p0, Any p1, Any p2, Any p3) { return _i(0x46A70777BE6CEAB9, p0, p1, p2, p3); } // 0x46a70777be6ceab9B2545 + inline Void PlaystatsHeist4Prep(Any p0) { return _i(0xDFCDB14317A9B361, p0); } // 0xdfcdb14317a9b361B2189 + inline Void PlaystatsHeist4Finale(Any p0) { return _i(0xC1E963C58664B556, p0); } // 0xc1e963c58664b556B2189 + inline Void PlaystatsHeist4Hack(Any p0, Any p1, Any p2, Any p3, Any p4) { return _i(0x2FA3173480008493, p0, p1, p2, p3, p4); } // 0x2fa3173480008493B2189 + inline Void PlaystatsSubWeap(Any p0, Any p1, Any p2, Any p3) { return _i(0xD4367D310F079DB0, p0, p1, p2, p3); } // 0xd4367d310f079db0B2189 + inline Void PlaystatsFastTrvl(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9, Any p10) { return _i(0x4DC416F246A41FC8, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } // 0x4dc416f246a41fc8B2189 + inline Void PlaystatsHubEntry(Any p0) { return _i(0x2818FF6638CB09DE, p0); } // 0x2818ff6638cb09deB2189 + inline Void PlaystatsDjMissionEnded(Any p0) { return _i(0xD6CA58B3B53A0F22, p0); } // 0xd6ca58b3b53a0f22B2189 + inline Void PlaystatsRobberyPrep(Any p0) { return _i(0x1A67DFBF1F5C3835, p0); } // 0x1a67dfbf1f5c3835B2372 + inline Void PlaystatsRobberyFinale(Any p0) { return _i(0xBBA55BE9AAAABF44, p0); } // 0xbba55be9aaaabf44B2372 + inline Void PlaystatsExtraEvent(Any p0) { return _i(0xFA5B74BAB8A7EF99, p0); } // 0xfa5b74bab8a7ef99B2372 + inline Void PlaystatsCarclubPoints(Any p0) { return _i(0xFF14D6FEEC507BBE, p0); } // 0xff14d6feec507bbeB2372 + inline Void PlaystatsCarclubChallenge(Any p0, Any p1, Any p2, Any p3) { return _i(0x1187CB58D7F3BED7, p0, p1, p2, p3); } // 0x1187cb58d7f3bed7B2372 + inline Void PlaystatsCarclubPrize(int p0, Hash vehicleModel) { return _i(0x69C922B677621428, p0, vehicleModel); } // 0x69c922b677621428B2372 + inline Void PlaystatsAwardNav(Any p0, Any p1, Any p2, Any p3) { return _i(0x70F52471E758EBAE, p0, p1, p2, p3); } // 0x70f52471e758ebaeB2545 + inline Void PlaystatsInstMissionEnd(Any p0) { return _i(0xFEA3F7E83C0610FA, p0); } // 0xfea3f7e83c0610faB2545 + inline Void PlaystatsHubExit(Any p0) { return _i(0x5A46ACE5C4661132, p0); } // 0x5a46ace5c4661132B2545 + inline Void PlaystatsVehDel(int bossId1, int bossId2, int bossType, int vehicleID, int reason) { return _i(0x10A691F5756416D0, bossId1, bossId2, bossType, vehicleID, reason); } // 0x10a691f5756416d0B2944 + inline Void PlaystatsInventory(Any p0) { return _i(0x887DAD63CF5B7908, p0); } // 0x887dad63cf5b7908B2699 + inline Void PlaystatsAcidMissionEnd(Any p0) { return _i(0x8A23D1324F6B2BAC, p0); } // 0x8a23d1324f6b2bacB2802 + inline Void PlaystatsAcidRnd(Any p0) { return _i(0xCEACCF0550FDC5BA, p0); } // 0xceaccf0550fdc5baB2802 + inline Void PlaystatsIdle(Any p0, Any p1, Any p2) { return _i(0xEC9553A178E8F1D1, p0, p1, p2); } // 0xec9553a178e8f1d1B2802 + inline Void PlaystatsPlayerStyle(Any p0) { return _i(0x48FAC5DC7AC6EA99, p0); } // 0x48fac5dc7ac6ea99B2802 + inline Void PlaystatsRandomEvent(Any p0) { return _i(0x7EA06F970F999394, p0); } // 0x7ea06f970f999394B2944 + inline Void PlaystatsAlert(Any* data) { return _i(0x5649CA22AF74E019, data); } // 0x5649ca22af74e019B3095 + inline Void PlaystatsAttritionStageEnd(Any p0) { return _i(0xBD642335A732F1A8, p0); } // 0xbd642335a732f1a8B2944 + inline Void PlaystatsShowroomNav(Any p0, Any p1, Hash entity) { return _i(0x961D4157B9B428DB, p0, p1, entity); } // 0x961d4157b9b428dbB2944 + // Data struct contains various tunables related to test drives at Simeons Showroom or Luxury Showcase. + inline Void PlaystatsShowroomOverview(Any* data) { return _i(0x151D6C04C9E2742F, data); } // 0x151d6c04c9e2742fB2944 } namespace STREAMING { - inline Void LoadAllObjectsNow() { return _i(0xBD6E84632DD4CB3F); } // 0xbd6e84632dd4cb3f0xc9dbda90B323 - inline Void LoadScene(float x, float y, float z) { return _i(0x4448EB75B4904BDB, x, y, z); } // 0x4448eb75b4904bdb0xb72403f5B323 - inline BOOL NetworkUpdateLoadScene() { return _i(0xC4582015556D1C46); } // 0xc4582015556d1c460xc76e023cB323 - inline BOOL IsNetworkLoadingScene() { return _i(0x41CA5A33160EA4AB); } // 0x41ca5a33160ea4ab0x6dcfc021B323 - inline Void SetInteriorActive(int interiorID, BOOL toggle) { return _i(0xE37B76C387BE28ED, interiorID, toggle); } // 0xe37b76c387be28ed0xe1013910B323 - // Request a model to be loaded into memory. - // - inline Void RequestModel(Hash model) { return _i(0x963D27A58DF860AC, model); } // 0x963d27a58df860ac0xfff1b500B323 - inline Void RequestMenuPedModel(Hash model) { return _i(0xA0261AEF7ACFC51E, model); } // 0xa0261aef7acfc51e0x48ceb6b4B323 - // Checks if the specified model has loaded into memory. - inline BOOL HasModelLoaded(Hash model) { return _i(0x98A4EB5D89A0C952, model); } // 0x98a4eb5d89a0c9520x62bfdb37B323 - // STREAMING::RequestModelsInRoom(l_13BC, "V_FIB01_cur_elev"); - // STREAMING::RequestModelsInRoom(l_13BC, "limbo"); - // STREAMING::RequestModelsInRoom(l_13BB, "V_Office_gnd_lifts"); - // STREAMING::RequestModelsInRoom(l_13BB, "limbo"); - // STREAMING::RequestModelsInRoom(l_13BC, "v_fib01_jan_elev"); - // STREAMING::RequestModelsInRoom(l_13BC, "limbo"); - inline Void RequestModelsInRoom(Interior interior, String roomName) { return _i(0x8A7A40100EDFEC58, interior, roomName); } // 0x8a7a40100edfec580x939243fbB323 - // Unloads model from memory - inline Void SetModelAsNoLongerNeeded(Hash model) { return _i(0xE532F5D78798DAAB, model); } // 0xe532f5d78798daab0xae0f069eB323 - // Check if model is in cdimage(rpf) - inline BOOL IsModelInCdimage(Hash model) { return _i(0x35B9E0803292B641, model); } // 0x35b9e0803292b6410x1094782fB323 - // Returns whether the specified model exists in the game. - inline BOOL IsModelValid(Hash model) { return _i(0xC0296A2EDF545E92, model); } // 0xc0296a2edf545e920xaf8f8e9dB323 - inline BOOL IsModelAPed(Hash model) { return _i(0x75816577FEA6DAD5, model); } // 0x75816577fea6dad5B1103 - // Returns whether the specified model represents a vehicle. - inline BOOL IsModelAVehicle(Hash model) { return _i(0x19AAC8F07BFEC53E, model); } // 0x19aac8f07bfec53e0xfffc85d4B323 - inline Void RequestCollisionAtCoord(float x, float y, float z) { return _i(0x07503F7948F491A7, x, y, z); } // 0x07503f7948f491a70xcd9805e7B323 - inline Void RequestCollisionForModel(Hash model) { return _i(0x923CB32A3B874FCB, model); } // 0x923cb32a3b874fcb0x3930c042B323 - inline BOOL HasCollisionForModelLoaded(Hash model) { return _i(0x22CCA434E368F03A, model); } // 0x22cca434e368f03a0x41a094f8B323 - // Alias of RequestCollisionAtCoord. - inline Void RequestAdditionalCollisionAtCoord(float x, float y, float z) { return _i(0xC9156DC11411A9EA, x, y, z); } // 0xc9156dc11411a9ea0xc2cc1df2B323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline BOOL DoesAnimDictExist(String animDict) { return _i(0x2DA49C3B79856961, animDict); } // 0x2da49c3b798569610xcd31c872B323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline Void RequestAnimDict(String animDict) { return _i(0xD3BD40951412FEF6, animDict); } // 0xd3bd40951412fef60xdca96950B323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline BOOL HasAnimDictLoaded(String animDict) { return _i(0xD031A9162D01088C, animDict); } // 0xd031a9162d01088c0x05e6763cB323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline Void RemoveAnimDict(String animDict) { return _i(0xF66A602F829E2A06, animDict); } // 0xf66a602f829e2a060x0ae050b5B323 - // Starts loading the specified animation set. An animation set provides movement animations for a ped. See SetPedMovementClipset. - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - // - // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - inline Void RequestAnimSet(String animSet) { return _i(0x6EA47DAE7FAD0EED, animSet); } // 0x6ea47dae7fad0eed0x2988b3fcB323 - // Gets whether the specified animation set has finished loading. An animation set provides movement animations for a ped. See SetPedMovementClipset. - // - // Animation set and clip set are synonymous. - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - // - // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - inline BOOL HasAnimSetLoaded(String animSet) { return _i(0xC4EA073D86FB29B0, animSet); } // 0xc4ea073d86fb29b00x4fff397dB323 - // Unloads the specified animation set. An animation set provides movement animations for a ped. See SetPedMovementClipset. - // - // Animation set and clip set are synonymous. - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - // - // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - inline Void RemoveAnimSet(String animSet) { return _i(0x16350528F93024B3, animSet); } // 0x16350528f93024b30xd04a817aB323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - // - // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - inline Void RequestClipSet(String clipSet) { return _i(0xD2A71E1A77418A49, clipSet); } // 0xd2a71e1a77418a490x546c627aB323 - // Alias for HasAnimSetLoaded. - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - // - // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - inline BOOL HasClipSetLoaded(String clipSet) { return _i(0x318234F4F3738AF3, clipSet); } // 0x318234f4f3738af30x230d5455B323 - // Alias for RemoveAnimSet. - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - // - // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - inline Void RemoveClipSet(String clipSet) { return _i(0x01F73A131C18CD94, clipSet); } // 0x01f73a131c18cd940x1e21f7aaB323 - // Exemple: RequestIpl("TrevorsTrailerTrash"); - // - // Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - inline Void RequestIpl(String iplName) { return _i(0x41B4893843BBDB74, iplName); } // 0x41b4893843bbdb740x3b70d1dbB323 - // Removes an IPL from the map. - // - // Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - // - // Example: - // C#: - // Function.Call(Hash.RemoveIpl, "trevorstrailertidy"); - // - // C++: - // STREAMING::RemoveIpl("trevorstrailertidy"); - // - // iplName = Name of IPL you want to remove. - inline Void RemoveIpl(String iplName) { return _i(0xEE6C5AD3ECE0A82D, iplName); } // 0xee6c5ad3ece0a82d0xdf7cbd36B323 - // Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - inline BOOL IsIplActive(String iplName) { return _i(0x88A741E44A2B3495, iplName); } // 0x88a741e44a2b34950xb2c33714B323 - inline Void SetStreaming(BOOL toggle) { return _i(0x6E0C692677008888, toggle); } // 0x6e0c6926770088880x27ef6cb2B323 - // 0 - default - // 1 - HeistIsland - inline Void LoadGlobalWaterFile(int waterType) { return _i(0x7E3F55ED251B76D3, waterType); } // 0x7e3f55ed251b76d3B2189 - inline int GetGlobalWaterFile() { return _i(0xF741BD853611592D); } // 0xf741bd853611592dB2189 - inline Void SetGamePausesForStreaming(BOOL toggle) { return _i(0x717CD6E6FAEBBEDC, toggle); } // 0x717cd6e6faebbedc0x9211a28aB323 - inline Void SetReducePedModelBudget(BOOL toggle) { return _i(0x77B5F9A36BF96710, toggle); } // 0x77b5f9a36bf967100xafcb2b86B323 - inline Void SetReduceVehicleModelBudget(BOOL toggle) { return _i(0x80C527893080CCF3, toggle); } // 0x80c527893080ccf30xcdb4fb7eB323 - // This is a NOP function. It does nothing at all. - inline Void SetDitchPoliceModels(BOOL toggle) { return _i(0x42CBE54462D92634, toggle); } // 0x42cbe54462d926340x3ea7fce4B323 - inline int GetNumberOfStreamingRequests() { return _i(0x4060057271CEBC89); } // 0x4060057271cebc890xc2ee9a02B323 - // maps script name (thread + 0xD0) by lookup via scriptfx.dat - does nothing when script name is empty - inline Void RequestPtfxAsset() { return _i(0x944955FB2A3935C8); } // 0x944955fb2a3935c80x2c649263B323 - inline BOOL HasPtfxAssetLoaded() { return _i(0xCA7D9B86ECA7481B); } // 0xca7d9b86eca7481b0x3eff96beB323 - inline Void RemovePtfxAsset() { return _i(0x88C6814073DD4A73); } // 0x88c6814073dd4a730xc10f178cB323 - // From the b678d decompiled scripts: - // - // STREAMING::RequestNamedPtfxAsset("core_snow"); - // STREAMING::RequestNamedPtfxAsset("fm_mission_controler"); - // STREAMING::RequestNamedPtfxAsset("proj_xmas_firework"); - // STREAMING::RequestNamedPtfxAsset("scr_apartment_mp"); - // STREAMING::RequestNamedPtfxAsset("scr_biolab_heist"); - // STREAMING::RequestNamedPtfxAsset("scr_indep_fireworks"); - // STREAMING::RequestNamedPtfxAsset("scr_indep_parachute"); - // STREAMING::RequestNamedPtfxAsset("scr_indep_wheelsmoke"); - // STREAMING::RequestNamedPtfxAsset("scr_mp_cig_plane"); - // STREAMING::RequestNamedPtfxAsset("scr_mp_creator"); - // STREAMING::RequestNamedPtfxAsset("scr_mp_tankbattle"); - // STREAMING::RequestNamedPtfxAsset("scr_ornate_heist"); - // STREAMING::RequestNamedPtfxAsset("scr_prison_break_heist_station"); - inline Void RequestNamedPtfxAsset(String fxName) { return _i(0xB80D8756B4668AB6, fxName); } // 0xb80d8756b4668ab60xcfea19a9B323 - inline BOOL HasNamedPtfxAssetLoaded(String fxName) { return _i(0x8702416E512EC454, fxName); } // 0x8702416e512ec4540x9acc6446B323 - inline Void RemoveNamedPtfxAsset(String fxName) { return _i(0x5F61EBBE1A00F96D, fxName); } // 0x5f61ebbe1a00f96d0xc44762a1B323 - inline Void SetVehiclePopulationBudget(int p0) { return _i(0xCB9E1EB3BE2AF4E9, p0); } // 0xcb9e1eb3be2af4e90x1d56993cB323 - // Control how many new (ambient?) peds will spawn in the game world. - // Range for p0 seems to be 0-3, where 0 is none and 3 is the normal level. - inline Void SetPedPopulationBudget(int p0) { return _i(0x8C95333CFC3340F3, p0); } // 0x8c95333cfc3340f30xd2d026cdB323 - inline Void ClearFocus() { return _i(0x31B73D1EA9F01DA2); } // 0x31b73d1ea9f01da20x34d91e7aB323 - // Override the area where the camera will render the terrain. - // p3, p4 and p5 are usually set to 0.0 - // - inline Void SetFocusPosAndVel(float x, float y, float z, float offsetX, float offsetY, float offsetZ) { return _i(0xBB7454BAFF08FE25, x, y, z, offsetX, offsetY, offsetZ); } // 0xbb7454baff08fe250x14680a60B323 - // It seems to make the entity's coords mark the point from which LOD-distances are measured. In my testing, setting a vehicle as the focus entity and moving that vehicle more than 300 distance units away from the player will make the level of detail around the player go down drastically (shadows disappear, textures go extremely low res, etc). The player seems to be the default focus entity. - inline Void SetFocusEntity(Entity entity) { return _i(0x198F77705FA0931D, entity); } // 0x198f77705fa0931d0x18db04acB323 - inline BOOL IsEntityFocus(Entity entity) { return _i(0x2DDFF3FB9075D747, entity); } // 0x2ddff3fb9075d7470xb456d707B323 - inline Void SetRestoreFocusEntity(Entity p0) { return _i(0x0811381EF5062FEC, p0); } // 0x0811381ef5062fecB323 - // Possible p0 values: - // - // "prologue" - // "Prologue_Main" - inline Void SetMapdatacullboxEnabled(String name, BOOL toggle) { return _i(0xAF12610C644A35C9, name, toggle); } // 0xaf12610c644a35c90x403cd434B323 - // This native does absolutely nothing, just a nullsub - inline Void SetAllMapdataCulled(Any p0) { return _i(0x4E52E752C76E7E7A, p0); } // 0x4e52e752c76e7e7a0xa07baeb9B323 - // Always returns zero. - inline int StreamvolCreateSphere(float x, float y, float z, float rad, Any p4, Any p5) { return _i(0x219C7B8D53E429FD, x, y, z, rad, p4, p5); } // 0x219c7b8d53e429fd0x10b6ab36B323 - // Always returns zero. - inline int StreamvolCreateFrustum(float p0, float p1, float p2, float p3, float p4, float p5, float p6, Any p7, Any p8) { return _i(0x1F3F018BC3AFA77C, p0, p1, p2, p3, p4, p5, p6, p7, p8); } // 0x1f3f018bc3afa77c0x72344191B323 - // Always returns zero. - inline int StreamvolCreateLine(float p0, float p1, float p2, float p3, float p4, float p5, Any p6) { return _i(0x0AD9710CEE2F590F, p0, p1, p2, p3, p4, p5, p6); } // 0x0ad9710cee2f590f0xc0157255B323 - inline Void StreamvolDelete(Any unused) { return _i(0x1EE7D8DF4425F053, unused); } // 0x1ee7d8df4425f0530xe80f8abeB323 - inline BOOL StreamvolHasLoaded(Any unused) { return _i(0x7D41E9D2D17C5B2D, unused); } // 0x7d41e9d2d17c5b2d0x1b3521f4B323 - inline BOOL StreamvolIsValid(Any unused) { return _i(0x07C313F94746702C, unused); } // 0x07c313f94746702c0x42cfe9c0B323 - inline BOOL IsStreamvolActive() { return _i(0xBC9823AB80A3DCAC); } // 0xbc9823ab80a3dcac0x56253356B323 - // `radius` value is usually between `3f` and `7000f` in original 1868 scripts. - // `p7` is 0, 1, 2, 3 or 4 used in decompiled scripts, 0 is by far the most common. - // Returns True if success, used only 7 times in decompiled scripts of 1868 - inline BOOL NewLoadSceneStart(float posX, float posY, float posZ, float offsetX, float offsetY, float offsetZ, float radius, int p7) { return _i(0x212A8D0D2BABFAC2, posX, posY, posZ, offsetX, offsetY, offsetZ, radius, p7); } // 0x212a8d0d2babfac20xdf9c38b6B323 - inline BOOL NewLoadSceneStartSphere(float x, float y, float z, float radius, Any p4) { return _i(0xACCFB4ACF53551B0, x, y, z, radius, p4); } // 0xaccfb4acf53551b00xfa037febB323 - inline Void NewLoadSceneStop() { return _i(0xC197616D221FF4A4); } // 0xc197616d221ff4a40x7c05b1f6B323 - inline BOOL IsNewLoadSceneActive() { return _i(0xA41A05B6CB741B85); } // 0xa41a05b6cb741b850xad234b7fB323 - inline BOOL IsNewLoadSceneLoaded() { return _i(0x01B8247A7A8B9AD1); } // 0x01b8247a7a8b9ad10x3ecd839fB323 - inline BOOL IsSafeToStartPlayerSwitch() { return _i(0x71E7B2E657449AAD); } // 0x71e7b2e657449aad0xeaa51103B323 - // // this enum comes directly from R* so don't edit this - // enum ePlayerSwitchTypes - // { - // SWITCH_TYPE_AUTO, - // SWITCH_TYPE_LONG, - // SWITCH_TYPE_MEDIUM, - // SWITCH_TYPE_SHORT - // }; - // - // Use GetIdealPlayerSwitchType for the best switch type. - // - // ---------------------------------------------------- - // - // Examples from the decompiled scripts: - // - // STREAMING::StartPlayerSwitch(l_832._f3, PLAYER::PlayerPedId(), 0, 3); - // STREAMING::StartPlayerSwitch(l_832._f3, PLAYER::PlayerPedId(), 2050, 3); - // STREAMING::StartPlayerSwitch(PLAYER::PlayerPedId(), l_832._f3, 1024, 3); - // STREAMING::StartPlayerSwitch(g_141F27, PLAYER::PlayerPedId(), 513, v_14); - // - // Note: DO NOT, use SWITCH_TYPE_LONG with flag 513. It leaves you stuck in the clouds. You'll have to call StopPlayerSwitch() to return to your ped. - // - // Flag 8 w/ SWITCH_TYPE_LONG will zoom out 3 steps, then zoom in 2/3 steps and stop on the 3rd and just hang there. - // Flag 8 w/ SWITCH_TYPE_MEDIUM will zoom out 1 step, and just hang there. - inline Void StartPlayerSwitch(Ped from, Ped to, int flags, int switchType) { return _i(0xFAA23F2CBA159D67, from, to, flags, switchType); } // 0xfaa23f2cba159d670x0829e975B323 - inline Void StopPlayerSwitch() { return _i(0x95C0A5BBDC189AA1); } // 0x95c0a5bbdc189aa10x2832c010B323 - // Returns true if the player is currently switching, false otherwise. - // (When the camera is in the sky moving from Trevor to Franklin for example) - inline BOOL IsPlayerSwitchInProgress() { return _i(0xD9D2CFFF49FAB35F); } // 0xd9d2cfff49fab35f0x56135accB323 - inline int GetPlayerSwitchType() { return _i(0xB3C94A90D9FC9E62); } // 0xb3c94a90d9fc9e620x280dc015B323 - // x1, y1, z1 -- Coords of your ped model - // x2, y2, z2 -- Coords of the ped you want to switch to - inline int GetIdealPlayerSwitchType(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0xB5D7B26B45720E05, x1, y1, z1, x2, y2, z2); } // 0xb5d7b26b45720e050xd5a450f1B323 - inline int GetPlayerSwitchState() { return _i(0x470555300D10B2A5); } // 0x470555300d10b2a50x39a0e1f2B323 - inline int GetPlayerShortSwitchState() { return _i(0x20F898A5D9782800); } // 0x20f898a5d97828000x9b7ba38fB323 - inline Void SetPlayerShortSwitchStyle(int p0) { return _i(0x5F2013F8BC24EE69, p0); } // 0x5f2013f8bc24ee690xf0bd420dB323 - inline int GetPlayerSwitchJumpCutIndex() { return _i(0x78C0D93253149435); } // 0x78c0d932531494350x02ba7ac2B323 - inline Void SetPlayerSwitchOutro(float cameraCoordX, float cameraCoordY, float cameraCoordZ, float camRotationX, float camRotationY, float camRotationZ, float camFov, float camFarClip, int rotationOrder) { return _i(0xC208B673CE446B61, cameraCoordX, cameraCoordY, cameraCoordZ, camRotationX, camRotationY, camRotationZ, camFov, camFarClip, rotationOrder); } // 0xc208b673ce446b610x47352e14B323 - // All names can be found in playerswitchestablishingshots.meta - inline Void SetPlayerSwitchEstablishingShot(String name) { return _i(0x0FDE9DBFC0A6BC65, name); } // 0x0fde9dbfc0a6bc650x279077b0B323 - inline Void AllowPlayerSwitchPan() { return _i(0x43D1680C6D19A8E9); } // 0x43d1680c6d19a8e90x55cb21f9B323 - inline Void AllowPlayerSwitchOutro() { return _i(0x74DE2E8739086740); } // 0x74de2e87390867400x1084f2f4B323 - inline Void AllowPlayerSwitchAscent() { return _i(0x8E2A065ABDAE6994); } // 0x8e2a065abdae69940x5b1e995dB323 - inline Void AllowPlayerSwitchDescent() { return _i(0xAD5FDF34B81BFE79); } // 0xad5fdf34b81bfe790x4b4b9a13B323 - inline BOOL IsSwitchReadyForDescent() { return _i(0xDFA80CB25D0A19B3); } // 0xdfa80cb25d0a19b30x408f7148B323 - inline Void EnableSwitchPauseBeforeDescent() { return _i(0xD4793DFF3AF2ABCD); } // 0xd4793dff3af2abcd0x4062ff73B323 - inline Void DisableSwitchOutroFx() { return _i(0xBD605B8E0E18B3BB); } // 0xbd605b8e0e18b3bb0x59cc312dB323 - // doesn't act normally when used on mount chilliad - // Flags is a bitflag: - // 2^n - Enabled Functionality: - // 0 - Skip camera rotate up - // 3 - Wait for SetPlayerSwitchEstablishingShot / hang at last step. You will still need to run 0x74DE2E8739086740 to exit "properly" and then StopPlayerSwitch - // 6 - Invert Switch Direction (false = out, true = in) - // 8 - Hang above ped - // - // switchType: 0 - 3 - // 0: 1 step towards ped - // 1: 3 steps out from ped - // 2: 1 step out from ped - // 3: 1 step towards ped - inline Void SwitchToMultiFirstpart(Ped ped, int flags, int switchType) { return _i(0xAAB3200ED59016BC, ped, flags, switchType); } // 0xaab3200ed59016bc0xfb4d062dB323 - inline Void SwitchToMultiSecondpart(Ped ped) { return _i(0xD8295AF639FD9CB8, ped); } // 0xd8295af639fd9cb80x2349373bB323 - inline BOOL IsSwitchToMultiFirstpartFinished() { return _i(0x933BBEEB8C61B5F4); } // 0x933bbeeb8c61b5f40x74c16879B323 - inline int GetPlayerSwitchInterpOutDuration() { return _i(0x08C2D6C52A3104BB); } // 0x08c2d6c52a3104bb0x569847e3B323 - inline int GetPlayerSwitchInterpOutCurrentTime() { return _i(0x5B48A06DD0E792A5); } // 0x5b48a06dd0e792a50xc7a3d279B323 - inline BOOL IsSwitchSkippingDescent() { return _i(0x5B74EA8CFD5E3E7E); } // 0x5b74ea8cfd5e3e7e0x90f64284B323 - inline Void SetSceneStreamingTracksCamPosThisFrame() { return _i(0x1E9057A74FD73E23); } // 0x1e9057a74fd73e23B323 - inline float GetLodscale() { return _i(0x0C15B0E443B2349D); } // 0x0c15b0e443b2349d0x7154b6fdB323 - // This allows you to override "extended distance scaling" setting. Needs to be called each frame. - // Max scaling seems to be 200.0, normal is 1.0 - // See https://gfycat.com/DetailedHauntingIncatern - inline Void OverrideLodscaleThisFrame(float scaling) { return _i(0xA76359FC80B2438E, scaling); } // 0xa76359fc80b2438e0xe5612c1aB323 - inline Void RemapLodscaleRangeThisFrame(float p0, float p1, float p2, float p3) { return _i(0xBED8CA5FF5E04113, p0, p1, p2, p3); } // 0xbed8ca5ff5e041130x9cd6a451B323 - inline Void SuppressHdMapStreamingThisFrame() { return _i(0x472397322E92A856); } // 0x472397322e92a8560x4267da87B323 - inline Void SetRenderHdOnly(BOOL toggle) { return _i(0x40AEFD1A244741F2, toggle); } // 0x40aefd1a244741f20x9fa4af99B323 - inline Void ForceAllowTimeBasedFadingThisFrame() { return _i(0x03F1A106BDA7DD3E); } // 0x03f1a106bda7dd3eB323 - inline Void IplGroupSwapStart(String iplName1, String iplName2) { return _i(0x95A7DABDDBB78AE7, iplName1, iplName2); } // 0x95a7dabddbb78ae70x9ef0a9cfB323 - inline Void IplGroupSwapCancel() { return _i(0x63EB2B972A218CAC); } // 0x63eb2b972a218cac0xf2cdd6a8B323 - inline BOOL IplGroupSwapIsReady() { return _i(0xFB199266061F820A); } // 0xfb199266061f820a0x17b0a1cdB323 - inline Void IplGroupSwapFinish() { return _i(0xF4A0DADB70F57FA6); } // 0xf4a0dadb70f57fa60x3da7aa5dB323 - inline BOOL IplGroupSwapIsActive() { return _i(0x5068F488DDB54DD8); } // 0x5068f488ddb54dd80xdab4bac0B323 - // This native is used to attribute the SRL that BeginSrl is going to load. This is usually used for 'in-game' cinematics (not cutscenes but camera stuff) instead of SetFocusPosAndVel because it loads a specific area of the map which is pretty useful when the camera moves from distant areas. - // For instance, GTA:O opening cutscene. - // https://pastebin.com/2EeKVeLA : a list of SRL found in srllist.meta - // https://pastebin.com/zd9XYUWY here is the content of a SRL file opened with codewalker. - inline Void PrefetchSrl(String srl) { return _i(0x3D245789CE12982C, srl); } // 0x3d245789ce12982c0x37be2fbbB323 - // Returns true when the srl from BeginSrl is loaded. - inline BOOL IsSrlLoaded() { return _i(0xD0263801A4C5B0BB); } // 0xd0263801a4c5b0bb0x670fa2a6B323 - inline Void BeginSrl() { return _i(0x9BADDC94EF83B823); } // 0x9baddc94ef83b8230x24f49427B323 - // Clear the current srl and stop rendering the area selected by PrefetchSrl and started with BeginSrl. - inline Void EndSrl() { return _i(0x0A41540E63C9EE17); } // 0x0a41540e63c9ee170x1977c56aB323 - inline Void SetSrlTime(float p0) { return _i(0xA74A541C6884E7B8, p0); } // 0xa74a541c6884e7b80x30f8a487B323 - inline Void SetSrlPostCutsceneCamera(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0xEF39EE20C537E98C, p0, p1, p2, p3, p4, p5); } // 0xef39ee20c537e98c0x814d0752B323 - inline Void SetSrlReadaheadTimes(Any p0, Any p1, Any p2, Any p3) { return _i(0xBEB2D9A1D9A8F55A, p0, p1, p2, p3); } // 0xbeb2d9a1d9a8f55a0x62f02485B323 - inline Void SetSrlLongJumpMode(BOOL p0) { return _i(0x20C6C7E4EB082A7F, p0); } // 0x20c6c7e4eb082a7f0xa6459caaB323 - inline Void SetSrlForcePrestream(Any p0) { return _i(0xF8155A7F03DDFC8E, p0); } // 0xf8155a7f03ddfc8e0xf8f515e4B323 - inline Void SetHdArea(float x, float y, float z, float radius) { return _i(0xB85F26619073E775, x, y, z, radius); } // 0xb85f26619073e7750x80baa035B323 - inline Void ClearHdArea() { return _i(0xCE58B1CFB9290813); } // 0xce58b1cfb92908130x7cac6fa0B323 - inline Void InitCreatorBudget() { return _i(0xB5A4DB34FE89B88A); } // 0xb5a4db34fe89b88a0xe243b2afB323 - inline Void ShutdownCreatorBudget() { return _i(0xCCE26000E9A6FAD7); } // 0xcce26000e9a6fad70x897a510fB323 - inline BOOL AddModelToCreatorBudget(Hash modelHash) { return _i(0x0BC3144DEB678666, modelHash); } // 0x0bc3144deb6786660xc0e83320B323 - inline Void RemoveModelFromCreatorBudget(Hash modelHash) { return _i(0xF086AD9354FAC3A3, modelHash); } // 0xf086ad9354fac3a30x1c576388B323 - // 0.0 = no memory used - // 1.0 = all memory used - // - // Maximum model memory (as defined in common\data\missioncreatordata.meta) is 100 MiB - inline float GetUsedCreatorBudget() { return _i(0x3D3D8B3BE5A83D35); } // 0x3d3d8b3be5a83d350x3e9c4cbeB323 - // Enables the specified island. For more information, see islandhopper.meta - inline Void SetIslandEnabled(String name, BOOL toggle) { return _i(0x9A9D1BA639675CF1, name, toggle); } // 0x9a9d1ba639675cf1B2189 + inline Void LoadAllObjectsNow() { return _i(0xBD6E84632DD4CB3F); } // 0xbd6e84632dd4cb3f0xc9dbda90B323 + inline Void LoadScene(float x, float y, float z) { return _i(0x4448EB75B4904BDB, x, y, z); } // 0x4448eb75b4904bdb0xb72403f5B323 + inline BOOL NetworkUpdateLoadScene() { return _i(0xC4582015556D1C46); } // 0xc4582015556d1c460xc76e023cB323 + inline BOOL IsNetworkLoadingScene() { return _i(0x41CA5A33160EA4AB); } // 0x41ca5a33160ea4ab0x6dcfc021B323 + inline Void SetInteriorActive(int interiorID, BOOL toggle) { return _i(0xE37B76C387BE28ED, interiorID, toggle); } // 0xe37b76c387be28ed0xe1013910B323 + // Request a model to be loaded into memory. + // + inline Void RequestModel(Hash model) { return _i(0x963D27A58DF860AC, model); } // 0x963d27a58df860ac0xfff1b500B323 + inline Void RequestMenuPedModel(Hash model) { return _i(0xA0261AEF7ACFC51E, model); } // 0xa0261aef7acfc51e0x48ceb6b4B323 + // Checks if the specified model has loaded into memory. + inline BOOL HasModelLoaded(Hash model) { return _i(0x98A4EB5D89A0C952, model); } // 0x98a4eb5d89a0c9520x62bfdb37B323 + // STREAMING::RequestModelsInRoom(l_13BC, "V_FIB01_cur_elev"); + // STREAMING::RequestModelsInRoom(l_13BC, "limbo"); + // STREAMING::RequestModelsInRoom(l_13BB, "V_Office_gnd_lifts"); + // STREAMING::RequestModelsInRoom(l_13BB, "limbo"); + // STREAMING::RequestModelsInRoom(l_13BC, "v_fib01_jan_elev"); + // STREAMING::RequestModelsInRoom(l_13BC, "limbo"); + inline Void RequestModelsInRoom(Interior interior, String roomName) { return _i(0x8A7A40100EDFEC58, interior, roomName); } // 0x8a7a40100edfec580x939243fbB323 + // Unloads model from memory + inline Void SetModelAsNoLongerNeeded(Hash model) { return _i(0xE532F5D78798DAAB, model); } // 0xe532f5d78798daab0xae0f069eB323 + // Check if model is in cdimage(rpf) + inline BOOL IsModelInCdimage(Hash model) { return _i(0x35B9E0803292B641, model); } // 0x35b9e0803292b6410x1094782fB323 + // Returns whether the specified model exists in the game. + inline BOOL IsModelValid(Hash model) { return _i(0xC0296A2EDF545E92, model); } // 0xc0296a2edf545e920xaf8f8e9dB323 + inline BOOL IsModelAPed(Hash model) { return _i(0x75816577FEA6DAD5, model); } // 0x75816577fea6dad5B1103 + // Returns whether the specified model represents a vehicle. + inline BOOL IsModelAVehicle(Hash model) { return _i(0x19AAC8F07BFEC53E, model); } // 0x19aac8f07bfec53e0xfffc85d4B323 + inline Void RequestCollisionAtCoord(float x, float y, float z) { return _i(0x07503F7948F491A7, x, y, z); } // 0x07503f7948f491a70xcd9805e7B323 + inline Void RequestCollisionForModel(Hash model) { return _i(0x923CB32A3B874FCB, model); } // 0x923cb32a3b874fcb0x3930c042B323 + inline BOOL HasCollisionForModelLoaded(Hash model) { return _i(0x22CCA434E368F03A, model); } // 0x22cca434e368f03a0x41a094f8B323 + // Alias of RequestCollisionAtCoord. + inline Void RequestAdditionalCollisionAtCoord(float x, float y, float z) { return _i(0xC9156DC11411A9EA, x, y, z); } // 0xc9156dc11411a9ea0xc2cc1df2B323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline BOOL DoesAnimDictExist(String animDict) { return _i(0x2DA49C3B79856961, animDict); } // 0x2da49c3b798569610xcd31c872B323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline Void RequestAnimDict(String animDict) { return _i(0xD3BD40951412FEF6, animDict); } // 0xd3bd40951412fef60xdca96950B323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline BOOL HasAnimDictLoaded(String animDict) { return _i(0xD031A9162D01088C, animDict); } // 0xd031a9162d01088c0x05e6763cB323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline Void RemoveAnimDict(String animDict) { return _i(0xF66A602F829E2A06, animDict); } // 0xf66a602f829e2a060x0ae050b5B323 + // Starts loading the specified animation set. An animation set provides movement animations for a ped. See SetPedMovementClipset. + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + // + // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json + inline Void RequestAnimSet(String animSet) { return _i(0x6EA47DAE7FAD0EED, animSet); } // 0x6ea47dae7fad0eed0x2988b3fcB323 + // Gets whether the specified animation set has finished loading. An animation set provides movement animations for a ped. See SetPedMovementClipset. + // + // Animation set and clip set are synonymous. + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + // + // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json + inline BOOL HasAnimSetLoaded(String animSet) { return _i(0xC4EA073D86FB29B0, animSet); } // 0xc4ea073d86fb29b00x4fff397dB323 + // Unloads the specified animation set. An animation set provides movement animations for a ped. See SetPedMovementClipset. + // + // Animation set and clip set are synonymous. + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + // + // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json + inline Void RemoveAnimSet(String animSet) { return _i(0x16350528F93024B3, animSet); } // 0x16350528f93024b30xd04a817aB323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + // + // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json + inline Void RequestClipSet(String clipSet) { return _i(0xD2A71E1A77418A49, clipSet); } // 0xd2a71e1a77418a490x546c627aB323 + // Alias for HasAnimSetLoaded. + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + // + // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json + inline BOOL HasClipSetLoaded(String clipSet) { return _i(0x318234F4F3738AF3, clipSet); } // 0x318234f4f3738af30x230d5455B323 + // Alias for RemoveAnimSet. + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + // + // Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json + inline Void RemoveClipSet(String clipSet) { return _i(0x01F73A131C18CD94, clipSet); } // 0x01f73a131c18cd940x1e21f7aaB323 + // Exemple: RequestIpl("TrevorsTrailerTrash"); + // + // Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json + inline Void RequestIpl(String iplName) { return _i(0x41B4893843BBDB74, iplName); } // 0x41b4893843bbdb740x3b70d1dbB323 + // Removes an IPL from the map. + // + // Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json + // + // Example: + // C#: + // Function.Call(Hash.RemoveIpl, "trevorstrailertidy"); + // + // C++: + // STREAMING::RemoveIpl("trevorstrailertidy"); + // + // iplName = Name of IPL you want to remove. + inline Void RemoveIpl(String iplName) { return _i(0xEE6C5AD3ECE0A82D, iplName); } // 0xee6c5ad3ece0a82d0xdf7cbd36B323 + // Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json + inline BOOL IsIplActive(String iplName) { return _i(0x88A741E44A2B3495, iplName); } // 0x88a741e44a2b34950xb2c33714B323 + inline Void SetStreaming(BOOL toggle) { return _i(0x6E0C692677008888, toggle); } // 0x6e0c6926770088880x27ef6cb2B323 + // 0 - default + // 1 - HeistIsland + inline Void LoadGlobalWaterFile(int waterType) { return _i(0x7E3F55ED251B76D3, waterType); } // 0x7e3f55ed251b76d3B2189 + inline int GetGlobalWaterFile() { return _i(0xF741BD853611592D); } // 0xf741bd853611592dB2189 + inline Void SetGamePausesForStreaming(BOOL toggle) { return _i(0x717CD6E6FAEBBEDC, toggle); } // 0x717cd6e6faebbedc0x9211a28aB323 + inline Void SetReducePedModelBudget(BOOL toggle) { return _i(0x77B5F9A36BF96710, toggle); } // 0x77b5f9a36bf967100xafcb2b86B323 + inline Void SetReduceVehicleModelBudget(BOOL toggle) { return _i(0x80C527893080CCF3, toggle); } // 0x80c527893080ccf30xcdb4fb7eB323 + // This is a NOP function. It does nothing at all. + inline Void SetDitchPoliceModels(BOOL toggle) { return _i(0x42CBE54462D92634, toggle); } // 0x42cbe54462d926340x3ea7fce4B323 + inline int GetNumberOfStreamingRequests() { return _i(0x4060057271CEBC89); } // 0x4060057271cebc890xc2ee9a02B323 + // maps script name (thread + 0xD0) by lookup via scriptfx.dat - does nothing when script name is empty + inline Void RequestPtfxAsset() { return _i(0x944955FB2A3935C8); } // 0x944955fb2a3935c80x2c649263B323 + inline BOOL HasPtfxAssetLoaded() { return _i(0xCA7D9B86ECA7481B); } // 0xca7d9b86eca7481b0x3eff96beB323 + inline Void RemovePtfxAsset() { return _i(0x88C6814073DD4A73); } // 0x88c6814073dd4a730xc10f178cB323 + // From the b678d decompiled scripts: + // + // STREAMING::RequestNamedPtfxAsset("core_snow"); + // STREAMING::RequestNamedPtfxAsset("fm_mission_controler"); + // STREAMING::RequestNamedPtfxAsset("proj_xmas_firework"); + // STREAMING::RequestNamedPtfxAsset("scr_apartment_mp"); + // STREAMING::RequestNamedPtfxAsset("scr_biolab_heist"); + // STREAMING::RequestNamedPtfxAsset("scr_indep_fireworks"); + // STREAMING::RequestNamedPtfxAsset("scr_indep_parachute"); + // STREAMING::RequestNamedPtfxAsset("scr_indep_wheelsmoke"); + // STREAMING::RequestNamedPtfxAsset("scr_mp_cig_plane"); + // STREAMING::RequestNamedPtfxAsset("scr_mp_creator"); + // STREAMING::RequestNamedPtfxAsset("scr_mp_tankbattle"); + // STREAMING::RequestNamedPtfxAsset("scr_ornate_heist"); + // STREAMING::RequestNamedPtfxAsset("scr_prison_break_heist_station"); + inline Void RequestNamedPtfxAsset(String fxName) { return _i(0xB80D8756B4668AB6, fxName); } // 0xb80d8756b4668ab60xcfea19a9B323 + inline BOOL HasNamedPtfxAssetLoaded(String fxName) { return _i(0x8702416E512EC454, fxName); } // 0x8702416e512ec4540x9acc6446B323 + inline Void RemoveNamedPtfxAsset(String fxName) { return _i(0x5F61EBBE1A00F96D, fxName); } // 0x5f61ebbe1a00f96d0xc44762a1B323 + inline Void SetVehiclePopulationBudget(int p0) { return _i(0xCB9E1EB3BE2AF4E9, p0); } // 0xcb9e1eb3be2af4e90x1d56993cB323 + // Control how many new (ambient?) peds will spawn in the game world. + // Range for p0 seems to be 0-3, where 0 is none and 3 is the normal level. + inline Void SetPedPopulationBudget(int p0) { return _i(0x8C95333CFC3340F3, p0); } // 0x8c95333cfc3340f30xd2d026cdB323 + inline Void ClearFocus() { return _i(0x31B73D1EA9F01DA2); } // 0x31b73d1ea9f01da20x34d91e7aB323 + // Override the area where the camera will render the terrain. + // p3, p4 and p5 are usually set to 0.0 + // + inline Void SetFocusPosAndVel(float x, float y, float z, float offsetX, float offsetY, float offsetZ) { return _i(0xBB7454BAFF08FE25, x, y, z, offsetX, offsetY, offsetZ); } // 0xbb7454baff08fe250x14680a60B323 + // It seems to make the entity's coords mark the point from which LOD-distances are measured. In my testing, setting a vehicle as the focus entity and moving that vehicle more than 300 distance units away from the player will make the level of detail around the player go down drastically (shadows disappear, textures go extremely low res, etc). The player seems to be the default focus entity. + inline Void SetFocusEntity(Entity entity) { return _i(0x198F77705FA0931D, entity); } // 0x198f77705fa0931d0x18db04acB323 + inline BOOL IsEntityFocus(Entity entity) { return _i(0x2DDFF3FB9075D747, entity); } // 0x2ddff3fb9075d7470xb456d707B323 + inline Void SetRestoreFocusEntity(Entity p0) { return _i(0x0811381EF5062FEC, p0); } // 0x0811381ef5062fecB323 + // Possible p0 values: + // + // "prologue" + // "Prologue_Main" + inline Void SetMapdatacullboxEnabled(String name, BOOL toggle) { return _i(0xAF12610C644A35C9, name, toggle); } // 0xaf12610c644a35c90x403cd434B323 + // This native does absolutely nothing, just a nullsub + inline Void SetAllMapdataCulled(Any p0) { return _i(0x4E52E752C76E7E7A, p0); } // 0x4e52e752c76e7e7a0xa07baeb9B323 + // Always returns zero. + inline int StreamvolCreateSphere(float x, float y, float z, float rad, Any p4, Any p5) { return _i(0x219C7B8D53E429FD, x, y, z, rad, p4, p5); } // 0x219c7b8d53e429fd0x10b6ab36B323 + // Always returns zero. + inline int StreamvolCreateFrustum(float p0, float p1, float p2, float p3, float p4, float p5, float p6, Any p7, Any p8) { return _i(0x1F3F018BC3AFA77C, p0, p1, p2, p3, p4, p5, p6, p7, p8); } // 0x1f3f018bc3afa77c0x72344191B323 + // Always returns zero. + inline int StreamvolCreateLine(float p0, float p1, float p2, float p3, float p4, float p5, Any p6) { return _i(0x0AD9710CEE2F590F, p0, p1, p2, p3, p4, p5, p6); } // 0x0ad9710cee2f590f0xc0157255B323 + inline Void StreamvolDelete(Any unused) { return _i(0x1EE7D8DF4425F053, unused); } // 0x1ee7d8df4425f0530xe80f8abeB323 + inline BOOL StreamvolHasLoaded(Any unused) { return _i(0x7D41E9D2D17C5B2D, unused); } // 0x7d41e9d2d17c5b2d0x1b3521f4B323 + inline BOOL StreamvolIsValid(Any unused) { return _i(0x07C313F94746702C, unused); } // 0x07c313f94746702c0x42cfe9c0B323 + inline BOOL IsStreamvolActive() { return _i(0xBC9823AB80A3DCAC); } // 0xbc9823ab80a3dcac0x56253356B323 + // `radius` value is usually between `3f` and `7000f` in original 1868 scripts. + // `p7` is 0, 1, 2, 3 or 4 used in decompiled scripts, 0 is by far the most common. + // Returns True if success, used only 7 times in decompiled scripts of 1868 + inline BOOL NewLoadSceneStart(float posX, float posY, float posZ, float offsetX, float offsetY, float offsetZ, float radius, int p7) { return _i(0x212A8D0D2BABFAC2, posX, posY, posZ, offsetX, offsetY, offsetZ, radius, p7); } // 0x212a8d0d2babfac20xdf9c38b6B323 + inline BOOL NewLoadSceneStartSphere(float x, float y, float z, float radius, Any p4) { return _i(0xACCFB4ACF53551B0, x, y, z, radius, p4); } // 0xaccfb4acf53551b00xfa037febB323 + inline Void NewLoadSceneStop() { return _i(0xC197616D221FF4A4); } // 0xc197616d221ff4a40x7c05b1f6B323 + inline BOOL IsNewLoadSceneActive() { return _i(0xA41A05B6CB741B85); } // 0xa41a05b6cb741b850xad234b7fB323 + inline BOOL IsNewLoadSceneLoaded() { return _i(0x01B8247A7A8B9AD1); } // 0x01b8247a7a8b9ad10x3ecd839fB323 + inline BOOL IsSafeToStartPlayerSwitch() { return _i(0x71E7B2E657449AAD); } // 0x71e7b2e657449aad0xeaa51103B323 + // // this enum comes directly from R* so don't edit this + // enum ePlayerSwitchTypes + // { + // SWITCH_TYPE_AUTO, + // SWITCH_TYPE_LONG, + // SWITCH_TYPE_MEDIUM, + // SWITCH_TYPE_SHORT + // }; + // + // Use GetIdealPlayerSwitchType for the best switch type. + // + // ---------------------------------------------------- + // + // Examples from the decompiled scripts: + // + // STREAMING::StartPlayerSwitch(l_832._f3, PLAYER::PlayerPedId(), 0, 3); + // STREAMING::StartPlayerSwitch(l_832._f3, PLAYER::PlayerPedId(), 2050, 3); + // STREAMING::StartPlayerSwitch(PLAYER::PlayerPedId(), l_832._f3, 1024, 3); + // STREAMING::StartPlayerSwitch(g_141F27, PLAYER::PlayerPedId(), 513, v_14); + // + // Note: DO NOT, use SWITCH_TYPE_LONG with flag 513. It leaves you stuck in the clouds. You'll have to call StopPlayerSwitch() to return to your ped. + // + // Flag 8 w/ SWITCH_TYPE_LONG will zoom out 3 steps, then zoom in 2/3 steps and stop on the 3rd and just hang there. + // Flag 8 w/ SWITCH_TYPE_MEDIUM will zoom out 1 step, and just hang there. + inline Void StartPlayerSwitch(Ped from, Ped to, int flags, int switchType) { return _i(0xFAA23F2CBA159D67, from, to, flags, switchType); } // 0xfaa23f2cba159d670x0829e975B323 + inline Void StopPlayerSwitch() { return _i(0x95C0A5BBDC189AA1); } // 0x95c0a5bbdc189aa10x2832c010B323 + // Returns true if the player is currently switching, false otherwise. + // (When the camera is in the sky moving from Trevor to Franklin for example) + inline BOOL IsPlayerSwitchInProgress() { return _i(0xD9D2CFFF49FAB35F); } // 0xd9d2cfff49fab35f0x56135accB323 + inline int GetPlayerSwitchType() { return _i(0xB3C94A90D9FC9E62); } // 0xb3c94a90d9fc9e620x280dc015B323 + // x1, y1, z1 -- Coords of your ped model + // x2, y2, z2 -- Coords of the ped you want to switch to + inline int GetIdealPlayerSwitchType(float x1, float y1, float z1, float x2, float y2, float z2) { return _i(0xB5D7B26B45720E05, x1, y1, z1, x2, y2, z2); } // 0xb5d7b26b45720e050xd5a450f1B323 + inline int GetPlayerSwitchState() { return _i(0x470555300D10B2A5); } // 0x470555300d10b2a50x39a0e1f2B323 + inline int GetPlayerShortSwitchState() { return _i(0x20F898A5D9782800); } // 0x20f898a5d97828000x9b7ba38fB323 + inline Void SetPlayerShortSwitchStyle(int p0) { return _i(0x5F2013F8BC24EE69, p0); } // 0x5f2013f8bc24ee690xf0bd420dB323 + inline int GetPlayerSwitchJumpCutIndex() { return _i(0x78C0D93253149435); } // 0x78c0d932531494350x02ba7ac2B323 + inline Void SetPlayerSwitchOutro(float cameraCoordX, float cameraCoordY, float cameraCoordZ, float camRotationX, float camRotationY, float camRotationZ, float camFov, float camFarClip, int rotationOrder) { return _i(0xC208B673CE446B61, cameraCoordX, cameraCoordY, cameraCoordZ, camRotationX, camRotationY, camRotationZ, camFov, camFarClip, rotationOrder); } // 0xc208b673ce446b610x47352e14B323 + // All names can be found in playerswitchestablishingshots.meta + inline Void SetPlayerSwitchEstablishingShot(String name) { return _i(0x0FDE9DBFC0A6BC65, name); } // 0x0fde9dbfc0a6bc650x279077b0B323 + inline Void AllowPlayerSwitchPan() { return _i(0x43D1680C6D19A8E9); } // 0x43d1680c6d19a8e90x55cb21f9B323 + inline Void AllowPlayerSwitchOutro() { return _i(0x74DE2E8739086740); } // 0x74de2e87390867400x1084f2f4B323 + inline Void AllowPlayerSwitchAscent() { return _i(0x8E2A065ABDAE6994); } // 0x8e2a065abdae69940x5b1e995dB323 + inline Void AllowPlayerSwitchDescent() { return _i(0xAD5FDF34B81BFE79); } // 0xad5fdf34b81bfe790x4b4b9a13B323 + inline BOOL IsSwitchReadyForDescent() { return _i(0xDFA80CB25D0A19B3); } // 0xdfa80cb25d0a19b30x408f7148B323 + inline Void EnableSwitchPauseBeforeDescent() { return _i(0xD4793DFF3AF2ABCD); } // 0xd4793dff3af2abcd0x4062ff73B323 + inline Void DisableSwitchOutroFx() { return _i(0xBD605B8E0E18B3BB); } // 0xbd605b8e0e18b3bb0x59cc312dB323 + // doesn't act normally when used on mount chilliad + // Flags is a bitflag: + // 2^n - Enabled Functionality: + // 0 - Skip camera rotate up + // 3 - Wait for SetPlayerSwitchEstablishingShot / hang at last step. You will still need to run 0x74DE2E8739086740 to exit "properly" and then StopPlayerSwitch + // 6 - Invert Switch Direction (false = out, true = in) + // 8 - Hang above ped + // + // switchType: 0 - 3 + // 0: 1 step towards ped + // 1: 3 steps out from ped + // 2: 1 step out from ped + // 3: 1 step towards ped + inline Void SwitchToMultiFirstpart(Ped ped, int flags, int switchType) { return _i(0xAAB3200ED59016BC, ped, flags, switchType); } // 0xaab3200ed59016bc0xfb4d062dB323 + inline Void SwitchToMultiSecondpart(Ped ped) { return _i(0xD8295AF639FD9CB8, ped); } // 0xd8295af639fd9cb80x2349373bB323 + inline BOOL IsSwitchToMultiFirstpartFinished() { return _i(0x933BBEEB8C61B5F4); } // 0x933bbeeb8c61b5f40x74c16879B323 + inline int GetPlayerSwitchInterpOutDuration() { return _i(0x08C2D6C52A3104BB); } // 0x08c2d6c52a3104bb0x569847e3B323 + inline int GetPlayerSwitchInterpOutCurrentTime() { return _i(0x5B48A06DD0E792A5); } // 0x5b48a06dd0e792a50xc7a3d279B323 + inline BOOL IsSwitchSkippingDescent() { return _i(0x5B74EA8CFD5E3E7E); } // 0x5b74ea8cfd5e3e7e0x90f64284B323 + inline Void SetSceneStreamingTracksCamPosThisFrame() { return _i(0x1E9057A74FD73E23); } // 0x1e9057a74fd73e23B323 + inline float GetLodscale() { return _i(0x0C15B0E443B2349D); } // 0x0c15b0e443b2349d0x7154b6fdB323 + // This allows you to override "extended distance scaling" setting. Needs to be called each frame. + // Max scaling seems to be 200.0, normal is 1.0 + // See https://gfycat.com/DetailedHauntingIncatern + inline Void OverrideLodscaleThisFrame(float scaling) { return _i(0xA76359FC80B2438E, scaling); } // 0xa76359fc80b2438e0xe5612c1aB323 + inline Void RemapLodscaleRangeThisFrame(float p0, float p1, float p2, float p3) { return _i(0xBED8CA5FF5E04113, p0, p1, p2, p3); } // 0xbed8ca5ff5e041130x9cd6a451B323 + inline Void SuppressHdMapStreamingThisFrame() { return _i(0x472397322E92A856); } // 0x472397322e92a8560x4267da87B323 + inline Void SetRenderHdOnly(BOOL toggle) { return _i(0x40AEFD1A244741F2, toggle); } // 0x40aefd1a244741f20x9fa4af99B323 + inline Void ForceAllowTimeBasedFadingThisFrame() { return _i(0x03F1A106BDA7DD3E); } // 0x03f1a106bda7dd3eB323 + inline Void IplGroupSwapStart(String iplName1, String iplName2) { return _i(0x95A7DABDDBB78AE7, iplName1, iplName2); } // 0x95a7dabddbb78ae70x9ef0a9cfB323 + inline Void IplGroupSwapCancel() { return _i(0x63EB2B972A218CAC); } // 0x63eb2b972a218cac0xf2cdd6a8B323 + inline BOOL IplGroupSwapIsReady() { return _i(0xFB199266061F820A); } // 0xfb199266061f820a0x17b0a1cdB323 + inline Void IplGroupSwapFinish() { return _i(0xF4A0DADB70F57FA6); } // 0xf4a0dadb70f57fa60x3da7aa5dB323 + inline BOOL IplGroupSwapIsActive() { return _i(0x5068F488DDB54DD8); } // 0x5068f488ddb54dd80xdab4bac0B323 + // This native is used to attribute the SRL that BeginSrl is going to load. This is usually used for 'in-game' cinematics (not cutscenes but camera stuff) instead of SetFocusPosAndVel because it loads a specific area of the map which is pretty useful when the camera moves from distant areas. + // For instance, GTA:O opening cutscene. + // https://pastebin.com/2EeKVeLA : a list of SRL found in srllist.meta + // https://pastebin.com/zd9XYUWY here is the content of a SRL file opened with codewalker. + inline Void PrefetchSrl(String srl) { return _i(0x3D245789CE12982C, srl); } // 0x3d245789ce12982c0x37be2fbbB323 + // Returns true when the srl from BeginSrl is loaded. + inline BOOL IsSrlLoaded() { return _i(0xD0263801A4C5B0BB); } // 0xd0263801a4c5b0bb0x670fa2a6B323 + inline Void BeginSrl() { return _i(0x9BADDC94EF83B823); } // 0x9baddc94ef83b8230x24f49427B323 + // Clear the current srl and stop rendering the area selected by PrefetchSrl and started with BeginSrl. + inline Void EndSrl() { return _i(0x0A41540E63C9EE17); } // 0x0a41540e63c9ee170x1977c56aB323 + inline Void SetSrlTime(float p0) { return _i(0xA74A541C6884E7B8, p0); } // 0xa74a541c6884e7b80x30f8a487B323 + inline Void SetSrlPostCutsceneCamera(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0xEF39EE20C537E98C, p0, p1, p2, p3, p4, p5); } // 0xef39ee20c537e98c0x814d0752B323 + inline Void SetSrlReadaheadTimes(Any p0, Any p1, Any p2, Any p3) { return _i(0xBEB2D9A1D9A8F55A, p0, p1, p2, p3); } // 0xbeb2d9a1d9a8f55a0x62f02485B323 + inline Void SetSrlLongJumpMode(BOOL p0) { return _i(0x20C6C7E4EB082A7F, p0); } // 0x20c6c7e4eb082a7f0xa6459caaB323 + inline Void SetSrlForcePrestream(Any p0) { return _i(0xF8155A7F03DDFC8E, p0); } // 0xf8155a7f03ddfc8e0xf8f515e4B323 + inline Void SetHdArea(float x, float y, float z, float radius) { return _i(0xB85F26619073E775, x, y, z, radius); } // 0xb85f26619073e7750x80baa035B323 + inline Void ClearHdArea() { return _i(0xCE58B1CFB9290813); } // 0xce58b1cfb92908130x7cac6fa0B323 + inline Void InitCreatorBudget() { return _i(0xB5A4DB34FE89B88A); } // 0xb5a4db34fe89b88a0xe243b2afB323 + inline Void ShutdownCreatorBudget() { return _i(0xCCE26000E9A6FAD7); } // 0xcce26000e9a6fad70x897a510fB323 + inline BOOL AddModelToCreatorBudget(Hash modelHash) { return _i(0x0BC3144DEB678666, modelHash); } // 0x0bc3144deb6786660xc0e83320B323 + inline Void RemoveModelFromCreatorBudget(Hash modelHash) { return _i(0xF086AD9354FAC3A3, modelHash); } // 0xf086ad9354fac3a30x1c576388B323 + // 0.0 = no memory used + // 1.0 = all memory used + // + // Maximum model memory (as defined in common\data\missioncreatordata.meta) is 100 MiB + inline float GetUsedCreatorBudget() { return _i(0x3D3D8B3BE5A83D35); } // 0x3d3d8b3be5a83d350x3e9c4cbeB323 + // Enables the specified island. For more information, see islandhopper.meta + inline Void SetIslandEnabled(String name, BOOL toggle) { return _i(0x9A9D1BA639675CF1, name, toggle); } // 0x9a9d1ba639675cf1B2189 } namespace TASK { - // Stand still (?) - inline Void TaskPause(Ped ped, int ms) { return _i(0xE73A266DB0CA9042, ped, ms); } // 0xe73a266db0ca90420x17a64668B323 - // Makes the specified ped stand still for (time) milliseconds. - inline Void TaskStandStill(Ped ped, int time) { return _i(0x919BE13EED931959, ped, time); } // 0x919be13eed9319590x6f80965dB323 - // Definition is wrong. This has 4 parameters (Not sure when they were added. v350 has 2, v678 has 4). - // - // v350: Ped ped, bool unused - // v678: Ped ped, bool unused, bool flag1, bool flag2 - // - // flag1 = super jump, flag2 = do nothing if flag1 is false and doubles super jump height if flag1 is true. - inline Void TaskJump(Ped ped, BOOL usePlayerLaunchForce, BOOL doSuperJump, BOOL useFullSuperJumpForce) { return _i(0x0AE4086104E067B1, ped, usePlayerLaunchForce, doSuperJump, useFullSuperJumpForce); } // 0x0ae4086104e067b10x0356e3ceB323 - inline Void TaskCower(Ped ped, int duration) { return _i(0x3EB1FE9E8E908E15, ped, duration); } // 0x3eb1fe9e8e908e150x9cf1c19bB323 - // In the scripts, p3 was always -1. - // - // p3 seems to be duration or timeout of turn animation. - // Also facingPed can be 0 or -1 so ped will just raise hands up. - inline Void TaskHandsUp(Ped ped, int duration, Ped facingPed, int timeToFacePed, int flags) { return _i(0xF2EAB31979A7F910, ped, duration, facingPed, timeToFacePed, flags); } // 0xf2eab31979a7f9100x8dcc19c5B323 - inline Void UpdateTaskHandsUpDuration(Ped ped, int duration) { return _i(0xA98FCAFD7893C834, ped, duration); } // 0xa98fcafd7893c8340x3aa39be9B323 - // The given ped will try to open the nearest door to 'seat'. - // Example: telling the ped to open the door for the driver seat does not necessarily mean it will open the driver door, it may choose to open the passenger door instead if that one is closer. - inline Void TaskOpenVehicleDoor(Ped ped, Vehicle vehicle, int timeOut, int seat, float speed) { return _i(0x965791A9A488A062, ped, vehicle, timeOut, seat, speed); } // 0x965791a9a488a0620x8ee06bf4B323 - // speed 1.0 = walk, 2.0 = run - // p5 1 = normal, 3 = teleport to vehicle, 16 = teleport directly into vehicle - // p6 is always 0 - // - // Usage of seat - // -1 = driver - // 0 = passenger - // 1 = left back seat - // 2 = right back seat - // 3 = outside left - // 4 = outside right - inline Void TaskEnterVehicle(Ped ped, Vehicle vehicle, int timeout, int seat, float speed, int flag, String overrideEntryClipsetName) { return _i(0xC20E50AA46D09CA8, ped, vehicle, timeout, seat, speed, flag, overrideEntryClipsetName); } // 0xc20e50aa46d09ca80xb8689b4eB323 - // Flags from decompiled scripts: - // 0 = normal exit and closes door. - // 1 = normal exit and closes door. - // 16 = teleports outside, door kept closed. - // 64 = normal exit and closes door, maybe a bit slower animation than 0. - // 256 = normal exit but does not close the door. - // 4160 = ped is throwing himself out, even when the vehicle is still. - // 262144 = ped moves to passenger seat first, then exits normally - // - // Others to be tried out: 320, 512, 131072. - inline Void TaskLeaveVehicle(Ped ped, Vehicle vehicle, int flags) { return _i(0xD3DBCE61A490BE02, ped, vehicle, flags); } // 0xd3dbce61a490be020x7b1141c6B323 - inline Void TaskGetOffBoat(Ped ped, Vehicle boat) { return _i(0x9C00E77AF14B2DFF, ped, boat); } // 0x9c00e77af14b2dff0x4293601fB323 - inline Void TaskSkyDive(Ped ped, BOOL instant) { return _i(0x601736CFE536B0A0, ped, instant); } // 0x601736cfe536b0a00xd3874afaB323 - // Second parameter is unused. - // - // second parameter was for jetpack in the early stages of gta and the hard coded code is now removed - inline Void TaskParachute(Ped ped, BOOL giveParachuteItem, BOOL instant) { return _i(0xD2F1C53C97EE81AB, ped, giveParachuteItem, instant); } // 0xd2f1c53c97ee81ab0xec3060a2B323 - // makes ped parachute to coords x y z. Works well with PATHFIND::GetSafeCoordForPed - inline Void TaskParachuteToTarget(Ped ped, float x, float y, float z) { return _i(0xB33E291AFA6BD03A, ped, x, y, z); } // 0xb33e291afa6bd03a0xe0104d6cB323 - inline Void SetParachuteTaskTarget(Ped ped, float x, float y, float z) { return _i(0xC313379AF0FCEDA7, ped, x, y, z); } // 0xc313379af0fceda70x6ed3ad81B323 - inline Void SetParachuteTaskThrust(Ped ped, float thrust) { return _i(0x0729BAC1B8C64317, ped, thrust); } // 0x0729bac1b8c643170xd07c8aaaB323 - // minHeightAboveGround: the minimum height above ground the heli must be at before the ped can start rappelling - // - // Only appears twice in the scripts. - // - // TASK::TaskRappelFromHeli(PLAYER::PlayerPedId(), 10.0f); - // TASK::TaskRappelFromHeli(a_0, 10.0f); - inline Void TaskRappelFromHeli(Ped ped, float minHeightAboveGround) { return _i(0x09693B0312F91649, ped, minHeightAboveGround); } // 0x09693b0312f916490x2c7adb93B323 - // info about driving modes: https://gtaforums.com/topic/822314-guide-driving-styles/ - inline Void TaskVehicleDriveToCoord(Ped ped, Vehicle vehicle, float x, float y, float z, float speed, Any p6, Hash vehicleModel, int drivingMode, float stopRange, float straightLineDistance) { return _i(0xE2A2AA2F659D77A7, ped, vehicle, x, y, z, speed, p6, vehicleModel, drivingMode, stopRange, straightLineDistance); } // 0xe2a2aa2f659d77a70xe4ac0387B323 - inline Void TaskVehicleDriveToCoordLongrange(Ped ped, Vehicle vehicle, float x, float y, float z, float speed, int driveMode, float stopRange) { return _i(0x158BB33F920D360C, ped, vehicle, x, y, z, speed, driveMode, stopRange); } // 0x158bb33f920d360c0x1490182aB323 - inline Void TaskVehicleDriveWander(Ped ped, Vehicle vehicle, float speed, int drivingStyle) { return _i(0x480142959D337D00, ped, vehicle, speed, drivingStyle); } // 0x480142959d337d000x36ec0eb0B323 - // p6 always -1 - // p7 always 10.0 - // p8 always 1 - inline Void TaskFollowToOffsetOfEntity(Ped ped, Entity entity, float offsetX, float offsetY, float offsetZ, float movementSpeed, int timeout, float stoppingRange, BOOL persistFollowing) { return _i(0x304AE42E357B8C7E, ped, entity, offsetX, offsetY, offsetZ, movementSpeed, timeout, stoppingRange, persistFollowing); } // 0x304ae42e357b8c7e0x2df5a6acB323 - inline Void TaskGoStraightToCoord(Ped ped, float x, float y, float z, float speed, int timeout, float targetHeading, float distanceToSlide) { return _i(0xD76B57B44F1E6F8B, ped, x, y, z, speed, timeout, targetHeading, distanceToSlide); } // 0xd76b57b44f1e6f8b0x80a9e7a7B323 - inline Void TaskGoStraightToCoordRelativeToEntity(Ped ped, Entity entity, float x, float y, float z, float moveBlendRatio, int time) { return _i(0x61E360B7E040D12E, ped, entity, x, y, z, moveBlendRatio, time); } // 0x61e360b7e040d12e0xd26cac68B323 - // Makes the specified ped achieve the specified heading. - // - // pedHandle: The handle of the ped to assign the task to. - // heading: The desired heading. - // timeout: The time, in milliseconds, to allow the task to complete. If the task times out, it is cancelled, and the ped will stay at the heading it managed to reach in the time. - inline Void TaskAchieveHeading(Ped ped, float heading, int timeout) { return _i(0x93B93A37987F1F3D, ped, heading, timeout); } // 0x93b93a37987f1f3d0x0a0e9b42B323 - // MulleKD19: Clears the current point route. Call this before TaskExtendRoute and TaskFollowPointRoute. - inline Void TaskFlushRoute() { return _i(0x841142A1376E9006); } // 0x841142a1376e90060x34219154B323 - // MulleKD19: Adds a new point to the current point route. Call TaskFlushRoute before the first call to this. Call TaskFollowPointRoute to make the Ped go the route. - // - // A maximum of 8 points can be added. - inline Void TaskExtendRoute(float x, float y, float z) { return _i(0x1E7889778264843A, x, y, z); } // 0x1e7889778264843a0x43271f69B323 - // MulleKD19: Makes the ped go on the created point route. - // - // ped: The ped to give the task to. - // speed: The speed to move at in m/s. - // int: Unknown. Can be 0, 1, 2 or 3. - // - // Example: - // TaskFlushRoute(); - // TaskExtendRoute(0f, 0f, 70f); - // TaskExtendRoute(10f, 0f, 70f); - // TaskExtendRoute(10f, 10f, 70f); - // TaskFollowPointRoute(GetPlayerPed(), 1f, 0); - inline Void TaskFollowPointRoute(Ped ped, float speed, int mode) { return _i(0x595583281858626E, ped, speed, mode); } // 0x595583281858626e0xb837c816B323 - // The entity will move towards the target until time is over (duration) or get in target's range (distance). p5 and p6 are unknown, but you could leave p5 = 1073741824 or 100 or even 0 (didn't see any difference but on the decompiled scripts, they use 1073741824 mostly) and p6 = 0 - // - // Note: I've only tested it on entity -> ped and target -> vehicle. It could work differently on other entities, didn't try it yet. - // - // Example: TASK::TaskGoToEntity(pedHandle, vehicleHandle, 5000, 4.0, 100, 1073741824, 0) - // - // Ped will run towards the vehicle for 5 seconds and stop when time is over or when he gets 4 meters(?) around the vehicle (with duration = -1, the task duration will be ignored). - // - // enum EGOTO_ENTITY_SCRIPT_FLAGS - // { - // EGOTO_ENTITY_NEVER_SLOW_FOR_PATH_LENGTH = 0x01, - // }; - inline Void TaskGoToEntity(Entity entity, Entity target, int duration, float distance, float moveBlendRatio, float slowDownDistance, int flags) { return _i(0x6A071245EB0D1882, entity, target, duration, distance, moveBlendRatio, slowDownDistance, flags); } // 0x6a071245eb0d18820x374827c2B323 - // Makes the specified ped flee the specified distance from the specified position. - inline Void TaskSmartFleeCoord(Ped ped, float x, float y, float z, float distance, int time, BOOL preferPavements, BOOL quitIfOutOfRange) { return _i(0x94587F17E9C365D5, ped, x, y, z, distance, time, preferPavements, quitIfOutOfRange); } // 0x94587f17e9c365d50xb2e686fcB323 - // Makes a ped run away from another ped (fleeTarget). - // - // distance = ped will flee this distance. - // fleeTime = ped will flee for this amount of time, set to "-1" to flee forever - inline Void TaskSmartFleePed(Ped ped, Ped fleeTarget, float safeDistance, int fleeTime, BOOL preferPavements, BOOL updateToNearestHatedPed) { return _i(0x22B0D0E37CCB840D, ped, fleeTarget, safeDistance, fleeTime, preferPavements, updateToNearestHatedPed); } // 0x22b0d0e37ccb840d0xe52eb560B323 - inline Void TaskReactAndFleePed(Ped ped, Ped fleeTarget) { return _i(0x72C896464915D1B1, ped, fleeTarget); } // 0x72c896464915d1b10x8a632bd8B323 - inline Void TaskShockingEventReact(Ped ped, int eventHandle) { return _i(0x452419CBD838065B, ped, eventHandle); } // 0x452419cbd838065b0x9bd00acfB323 - inline Void TaskWanderInArea(Ped ped, float x, float y, float z, float radius, float minimalLength, float timeBetweenWalks) { return _i(0xE054346CA3A0F315, ped, x, y, z, radius, minimalLength, timeBetweenWalks); } // 0xe054346ca3a0f3150xc6981fb9B323 - // Makes ped walk around the area. - // - // set p1 to 10.0f and p2 to 10 if you want the ped to walk anywhere without a duration. - inline Void TaskWanderStandard(Ped ped, float heading, int flags) { return _i(0xBB9CE077274F6A1B, ped, heading, flags); } // 0xbb9ce077274f6a1b0xaf59151aB323 - inline Void TaskWanderSpecific(Ped ped, String conditionalAnimGroupStr, String conditionalAnimStr, float heading) { return _i(0x6919A2F136426098, ped, conditionalAnimGroupStr, conditionalAnimStr, heading); } // 0x6919a2f136426098B1868 - // Modes: - // 0 - ignore heading - // 1 - park forward - // 2 - park backwards - // - // Depending on the angle of approach, the vehicle can park at the specified heading or at its exact opposite (-180) angle. - // - // Radius seems to define how close the vehicle has to be -after parking- to the position for this task considered completed. If the value is too small, the vehicle will try to park again until it's exactly where it should be. 20.0 Works well but lower values don't, like the radius is measured in centimeters or something. - inline Void TaskVehiclePark(Ped ped, Vehicle vehicle, float x, float y, float z, float heading, int mode, float radius, BOOL keepEngineOn) { return _i(0x0F3E34E968EA374E, ped, vehicle, x, y, z, heading, mode, radius, keepEngineOn); } // 0x0f3e34e968ea374e0x5c85ff90B323 - // known "killTypes" are: "AR_stealth_kill_knife" and "AR_stealth_kill_a". - inline Void TaskStealthKill(Ped killer, Ped target, Hash stealthKillActionResultHash, float desiredMoveBlendRatio, int stealthFlags) { return _i(0xAA5DC05579D60BD9, killer, target, stealthKillActionResultHash, desiredMoveBlendRatio, stealthFlags); } // 0xaa5dc05579d60bd90x0d64c2faB323 - inline Void TaskPlantBomb(Ped ped, float x, float y, float z, float heading) { return _i(0x965FEC691D55E9BF, ped, x, y, z, heading); } // 0x965fec691d55e9bf0x33457535B323 - // If no timeout, set timeout to -1. - inline Void TaskFollowNavMeshToCoord(Ped ped, float x, float y, float z, float moveBlendRatio, int time, float targetRadius, int flags, float targetHeading) { return _i(0x15D3A79D4E44B913, ped, x, y, z, moveBlendRatio, time, targetRadius, flags, targetHeading); } // 0x15d3a79d4e44b9130xfe4a10d9B323 - inline Void TaskFollowNavMeshToCoordAdvanced(Ped ped, float x, float y, float z, float moveBlendRatio, int time, float targetRadius, int flags, float slideToCoordHeading, float maxSlopeNavigable, float clampMaxSearchDistance, float targetHeading) { return _i(0x17F58B88D085DBAC, ped, x, y, z, moveBlendRatio, time, targetRadius, flags, slideToCoordHeading, maxSlopeNavigable, clampMaxSearchDistance, targetHeading); } // 0x17f58b88d085dbac0x6bf6e296B323 - inline Void SetPedPathCanUseClimbovers(Ped ped, BOOL Toggle) { return _i(0x8E06A6FE76C9EFF4, ped, Toggle); } // 0x8e06a6fe76c9eff40xb7b7d442B323 - inline Void SetPedPathCanUseLadders(Ped ped, BOOL Toggle) { return _i(0x77A5B103C87F476E, ped, Toggle); } // 0x77a5b103c87f476e0x53a879eeB323 - inline Void SetPedPathCanDropFromHeight(Ped ped, BOOL Toggle) { return _i(0xE361C5C71C431A4F, ped, Toggle); } // 0xe361c5c71c431a4f0x394b7ac9B323 - // Default modifier is 1.0, minimum is 0.0 and maximum is 10.0. - inline Void SetPedPathClimbCostModifier(Ped ped, float modifier) { return _i(0x88E32DB8C1A4AA4B, ped, modifier); } // 0x88e32db8c1a4aa4b0x55e06443B323 - inline Void SetPedPathMayEnterWater(Ped ped, BOOL mayEnterWater) { return _i(0xF35425A4204367EC, ped, mayEnterWater); } // 0xf35425a4204367ec0x9c606ee3B323 - inline Void SetPedPathPreferToAVoidWater(Ped ped, BOOL aVoidWater) { return _i(0x38FE1EC73743793C, ped, aVoidWater); } // 0x38fe1ec73743793c0x0ea39a29B323 - inline Void SetPedPathAVoidFire(Ped ped, BOOL aVoidFire) { return _i(0x4455517B28441E60, ped, aVoidFire); } // 0x4455517b28441e600xdcc5b934B323 - // Needs to be looped! And yes, it does work and is not a hash collision. - // Birds will try to reach the given height. - inline Void SetGlobalMinBirdFlightHeight(float height) { return _i(0x6C6B148586F934F7, height); } // 0x6c6b148586f934f70x2afb14b8B323 - // Looks like the last parameter returns true if the path has been calculated, while the first returns the remaining distance to the end of the path. - // Return value of native is the same as GetNavmeshRouteResult - // Looks like the native returns an int for the path's state: - // 1 - ??? - // 2 - ??? - // 3 - Finished Generating - inline int GetNavmeshRouteDistanceRemaining(Ped ped, float* distanceRemaining, BOOL* isPathReady) { return _i(0xC6F5C0BCDC74D62D, ped, distanceRemaining, isPathReady); } // 0xc6f5c0bcdc74d62d0xd9281778B323 - // See GetNavmeshRouteDistanceRemaining for more details. - inline int GetNavmeshRouteResult(Ped ped) { return _i(0x632E831F382A0FA8, ped); } // 0x632e831f382a0fa80x96491602B323 - inline BOOL IsControlledVehicleUnableToGetToRoad(Ped ped) { return _i(0x3E38E28A1D80DDF6, ped); } // 0x3e38e28a1d80ddf60x54856309B323 - // example from fm_mission_controller - // - // TASK::TaskGoToCoordAnyMeans(l_649, sub_f7e86(-1, 0), 1.0, 0, 0, 786603, 0xbf800000); - // - inline Void TaskGoToCoordAnyMeans(Ped ped, float x, float y, float z, float moveBlendRatio, Vehicle vehicle, BOOL useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets) { return _i(0x5BC448CB78FA3E88, ped, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets); } // 0x5bc448cb78fa3e880xf91df93bB323 - inline Void TaskGoToCoordAnyMeansExtraParams(Ped ped, float x, float y, float z, float moveBlendRatio, Vehicle vehicle, BOOL useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float warpTimerMS) { return _i(0x1DD45F9ECFDB1BC9, ped, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, warpTimerMS); } // 0x1dd45f9ecfdb1bc90x094b75efB323 - inline Void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(Ped ped, float x, float y, float z, float moveBlendRatio, Vehicle vehicle, BOOL useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float cruiseSpeed, float targetArriveDist) { return _i(0xB8ECD61F531A7B02, ped, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, cruiseSpeed, targetArriveDist); } // 0xb8ecd61f531a7b020x86dc03f9B323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - // - // float speed > normal speed is 8.0f - // ---------------------- - // - // float speedMultiplier > multiply the playback speed - // ---------------------- - // - // int duration: time in millisecond - // ---------------------- - // -1 _ _ _ _ _ _ _> Default (see flag) - // 0 _ _ _ _ _ _ _ > Not play at all - // Small value _ _ > Slow down animation speed - // Other _ _ _ _ _ > freeze player control until specific time (ms) has - // _ _ _ _ _ _ _ _ _ passed. (No effect if flag is set to be - // _ _ _ _ _ _ _ _ _ controllable.) - // - // int flag: - // ---------------------- - // enum eAnimationFlags - // { - // ANIM_FLAG_NORMAL = 0, - // ANIM_FLAG_REPEAT = 1, - // ANIM_FLAG_STOP_LAST_FRAME = 2, - // ANIM_FLAG_UPPERBODY = 16, - // ANIM_FLAG_ENABLE_PLAYER_CONTROL = 32, - // ANIM_FLAG_CANCELABLE = 120, - // }; - // Odd number : loop infinitely - // Even number : Freeze at last frame - // Multiple of 4: Freeze at last frame but controllable - // - // 01 to 15 > Full body - // 10 to 31 > Upper body - // 32 to 47 > Full body > Controllable - // 48 to 63 > Upper body > Controllable - // ... - // 001 to 255 > Normal - // 256 to 511 > Garbled - // ... - // - // playbackRate: - // - // values are between 0.0 and 1.0 - // - // - // lockX: - // - // 0 in most cases 1 for rcmepsilonism8 and rcmpaparazzo_3 - // > 1 for mini@sprunk - // - // - // lockY: - // - // 0 in most cases - // 1 for missfam5_yoga, missfra1mcs_2_crew_react - // - // - // lockZ: - // - // 0 for single player - // Can be 1 but only for MP - inline Void TaskPlayAnim(Ped ped, String animDictionary, String animationName, float blendInSpeed, float blendOutSpeed, int duration, int flag, float playbackRate, BOOL lockX, BOOL lockY, BOOL lockZ) { return _i(0xEA47FE3719165B94, ped, animDictionary, animationName, blendInSpeed, blendOutSpeed, duration, flag, playbackRate, lockX, lockY, lockZ); } // 0xea47fe3719165b940x5ab552c6B323 - // It's similar to TaskPlayAnim, except the first 6 floats let you specify the initial position and rotation of the task. (Ped gets teleported to the position). - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline Void TaskPlayAnimAdvanced(Ped ped, String animDict, String animName, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, float animEnterSpeed, float animExitSpeed, int duration, Any flag, float animTime, int rotOrder, int ikFlags) { return _i(0x83CDB10EA29B370B, ped, animDict, animName, posX, posY, posZ, rotX, rotY, rotZ, animEnterSpeed, animExitSpeed, duration, flag, animTime, rotOrder, ikFlags); } // 0x83cdb10ea29b370b0x3ddeb0e6B323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline Void StopAnimTask(Entity entity, String animDictionary, String animationName, float blendDelta) { return _i(0x97FF36A1D40EA00A, entity, animDictionary, animationName, blendDelta); } // 0x97ff36a1d40ea00a0x2b520a57B323 - // From fm_mission_controller.c: - // reserve_network_mission_objects(get_num_reserved_mission_objects(0) + 1); - // vVar28 = {0.094f, 0.02f, -0.005f}; - // vVar29 = {-92.24f, 63.64f, 150.24f}; - // func_253(&uVar30, joaat("prop_ld_case_01"), Global_1592429.imm_34757[iParam1 <268>], 1, 1, 0, 1); - // set_entity_lod_dist(net_to_ent(uVar30), 500); - // attach_entity_to_entity(net_to_ent(uVar30), iParam0, get_ped_bone_index(iParam0, 28422), vVar28, vVar29, 1, 0, 0, 0, 2, 1); - // Var31.imm_4 = 1065353216; - // Var31.imm_5 = 1065353216; - // Var31.imm_9 = 1065353216; - // Var31.imm_10 = 1065353216; - // Var31.imm_14 = 1065353216; - // Var31.imm_15 = 1065353216; - // Var31.imm_17 = 1040187392; - // Var31.imm_18 = 1040187392; - // Var31.imm_19 = -1; - // Var32.imm_4 = 1065353216; - // Var32.imm_5 = 1065353216; - // Var32.imm_9 = 1065353216; - // Var32.imm_10 = 1065353216; - // Var32.imm_14 = 1065353216; - // Var32.imm_15 = 1065353216; - // Var32.imm_17 = 1040187392; - // Var32.imm_18 = 1040187392; - // Var32.imm_19 = -1; - // Var31 = 1; - // Var31.imm_1 = "weapons@misc@jerrycan@mp_male"; - // Var31.imm_2 = "idle"; - // Var31.imm_20 = 1048633; - // Var31.imm_4 = 0.5f; - // Var31.imm_16 = get_hash_key("BONEMASK_ARMONLY_R"); - // task_scripted_animation(iParam0, &Var31, &Var32, &Var32, 0f, 0.25f); - // set_model_as_no_longer_needed(joaat("prop_ld_case_01")); - // remove_anim_dict("anim@heists@biolab@"); - inline Void TaskScriptedAnimation(Ped ped, int* priorityLowData, int* priorityMidData, int* priorityHighData, float blendInDelta, float blendOutDelta) { return _i(0x126EF75F1E17ABE5, ped, priorityLowData, priorityMidData, priorityHighData, blendInDelta, blendOutDelta); } // 0x126ef75f1e17abe50xfc2dcf47B323 - inline Void PlayEntityScriptedAnim(Entity entity, int* priorityLowData, int* priorityMidData, int* priorityHighData, float blendInDelta, float blendOutDelta) { return _i(0x77A1EEC547E7FCF1, entity, priorityLowData, priorityMidData, priorityHighData, blendInDelta, blendOutDelta); } // 0x77a1eec547e7fcf10x02f72ae5B323 - // Looks like p1 may be a flag, still need to do some research, though. - inline Void StopAnimPlayback(Entity entity, int priority, BOOL secondary) { return _i(0xEE08C992D238C5D1, entity, priority, secondary); } // 0xee08c992d238c5d10xe5f16398B323 - inline Void SetAnimWeight(Entity entity, float weight, int priority, int index, BOOL secondary) { return _i(0x207F1A47C0342F48, entity, weight, priority, index, secondary); } // 0x207f1a47c0342f480x17229d98B323 - inline Void SetAnimPhase(Entity entity, float phase, int priority, BOOL secondary) { return _i(0xDDF3CB5A0A4C0B49, entity, phase, priority, secondary); } // 0xddf3cb5a0a4c0b490xb621e7e4B2372 - inline Void SetAnimRate(Entity entity, float rate, int priority, BOOL secondary) { return _i(0x032D49C5E359C847, entity, rate, priority, secondary); } // 0x032d49c5e359c8470x6db46584B323 - inline Void SetAnimLooped(Entity entity, BOOL looped, int priority, BOOL secondary) { return _i(0x70033C3CC29A1FF4, entity, looped, priority, secondary); } // 0x70033c3cc29a1ff40x095d61a4B323 - // Example from the scripts: - // TASK::TaskPlayPhoneGestureAnimation(PLAYER::PlayerPedId(), v_3, v_2, v_4, 0.25, 0.25, 0, 0); - // - // ========================================================= - // ^^ No offense, but Idk how that would really help anyone. - // - // As for the animDict & animation, they're both store in a global in all 5 scripts. So if anyone would be so kind as to read that global and comment what strings they use. Thanks. - // - // Known boneMaskTypes' - // "BONEMASK_HEADONLY" - // "BONEMASK_HEAD_NECK_AND_ARMS" - // "BONEMASK_HEAD_NECK_AND_L_ARM" - // "BONEMASK_HEAD_NECK_AND_R_ARM" - // - // p4 known args - 0.0f, 0.5f, 0.25f - // p5 known args - 0.0f, 0.25f - // p6 known args - 1 if a global if check is passed. - // p7 known args - 1 if a global if check is passed. - // - // The values found above, I found within the 5 scripts this is ever called in. (fmmc_launcher, fm_deathmatch_controller, fm_impromptu_dm_controller, fm_mission_controller, and freemode). - // ========================================================= - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline Void TaskPlayPhoneGestureAnimation(Ped ped, String animDict, String animation, String boneMaskType, float blendInDuration, float blendOutDuration, BOOL isLooping, BOOL holdLastFrame) { return _i(0x8FBB6758B3B3E9EC, ped, animDict, animation, boneMaskType, blendInDuration, blendOutDuration, isLooping, holdLastFrame); } // 0x8fbb6758b3b3e9ec0x1582162cB323 - inline Void TaskStopPhoneGestureAnimation(Ped ped, float blendOutOverride) { return _i(0x3FA00D4F4641BFAE, ped, blendOutOverride); } // 0x3fa00d4f4641bfae0x5a32d4b4B323 - inline BOOL IsPlayingPhoneGestureAnim(Ped ped) { return _i(0xB8EBB1E9D3588C10, ped); } // 0xb8ebb1e9d3588c100x500b6805B323 - inline float GetPhoneGestureAnimCurrentTime(Ped ped) { return _i(0x47619ABE8B268C60, ped); } // 0x47619abe8b268c600x7b72afd1B323 - inline float GetPhoneGestureAnimTotalTime(Ped ped) { return _i(0x1EE0F68A7C25DEC6, ped); } // 0x1ee0f68a7c25dec60xef8c3959B323 - // Most probably plays a specific animation on vehicle. For example getting chop out of van etc... - // - // Here's how its used - - // - // TASK::TaskVehiclePlayAnim(l_325, "rcmnigel1b", "idle_speedo"); - // - // TASK::TaskVehiclePlayAnim(l_556[0/*1*/], "missfra0_chop_drhome", "InCar_GetOutofBack_Speedo"); - // - // FYI : Speedo is the name of van in which chop was put in the mission. - inline Void TaskVehiclePlayAnim(Vehicle vehicle, String animationSet, String animationName) { return _i(0x69F5C3BD0F3EBD89, vehicle, animationSet, animationName); } // 0x69f5c3bd0f3ebd890x2b28f598B323 - // enum eScriptLookatFlags - // { - // SLF_SLOW_TURN_RATE = 1, // turn the head toward the target slowly - // SLF_FAST_TURN_RATE = 2, // turn the head toward the target quickly - // SLF_EXTEND_YAW_LIMIT = 4, // wide yaw head limits - // SLF_EXTEND_PITCH_LIMIT = 8, // wide pitch head limit - // SLF_WIDEST_YAW_LIMIT = 16, // widest yaw head limit - // SLF_WIDEST_PITCH_LIMIT = 32, // widest pitch head limit - // SLF_NARROW_YAW_LIMIT = 64, // narrow yaw head limits - // SLF_NARROW_PITCH_LIMIT = 128, // narrow pitch head limit - // SLF_NARROWEST_YAW_LIMIT = 256, // narrowest yaw head limit - // SLF_NARROWEST_PITCH_LIMIT = 512, // narrowest pitch head limit - // SLF_USE_TORSO = 1024, // use the torso aswell as the neck and head (currently disabled) - // SLF_WHILE_NOT_IN_FOV = 2048, // keep tracking the target even if they are not in the hard coded FOV - // SLF_USE_CAMERA_FOCUS = 4096, // use the camera as the target - // SLF_USE_EYES_ONLY = 8192, // only track the target with the eyes - // SLF_USE_LOOK_DIR = 16384, // use information in look dir DOF - // SLF_FROM_SCRIPT = 32768, // internal use only - // SLF_USE_REF_DIR_ABSOLUTE = 65536 // use absolute reference direction mode for solver - // }; - inline Void TaskLookAtCoord(Entity entity, float x, float y, float z, int duration, int flags, int priority) { return _i(0x6FA46612594F7973, entity, x, y, z, duration, flags, priority); } // 0x6fa46612594f79730x7b784dd8B323 - // For flags, please refer to TaskLookAtCoord. - inline Void TaskLookAtEntity(Ped ped, Entity lookAt, int duration, int flags, int priority) { return _i(0x69F4BE8C8CC4796C, ped, lookAt, duration, flags, priority); } // 0x69f4be8c8cc4796c0x991d6619B323 - inline Void TaskClearLookAt(Ped ped) { return _i(0x0F804F1DB19B9689, ped); } // 0x0f804f1db19b96890x60eb4054B323 - inline Void OpenSequenceTask(int* taskSequenceId) { return _i(0xE8854A4326B9E12B, taskSequenceId); } // 0xe8854a4326b9e12b0xaba6923eB323 - inline Void CloseSequenceTask(int taskSequenceId) { return _i(0x39E72BC99E6360CB, taskSequenceId); } // 0x39e72bc99e6360cb0x1a7cebd0B323 - inline Void TaskPerformSequence(Ped ped, int taskSequenceId) { return _i(0x5ABA3986D90D8A3B, ped, taskSequenceId); } // 0x5aba3986d90d8a3b0x4d9fbd11B323 - inline Void TaskPerformSequenceLocally(Ped ped, int taskSequenceId) { return _i(0x8C33220C8D78CA0D, ped, taskSequenceId); } // 0x8c33220c8d78ca0dB944 - inline Void ClearSequenceTask(int* taskSequenceId) { return _i(0x3841422E9C488D8C, taskSequenceId); } // 0x3841422e9c488d8c0x47ed03ceB323 - inline Void SetSequenceToRepeat(int taskSequenceId, BOOL repeat) { return _i(0x58C70CF3A41E4AE7, taskSequenceId, repeat); } // 0x58c70cf3a41e4ae70xcddf1508B323 - // returned values: - // 0 to 7 = task that's currently in progress, 0 meaning the first one. - // -1 no task sequence in progress. - inline int GetSequenceProgress(Ped ped) { return _i(0x00A9010CFE1E3533, ped); } // 0x00a9010cfe1e35330xa3419909B323 - // Task index enum: https://alloc8or.re/gta5/doc/enums/eTaskTypeIndex.txt - inline BOOL GetIsTaskActive(Ped ped, int taskIndex) { return _i(0xB0760331C7AA4155, ped, taskIndex); } // 0xb0760331c7aa41550x86fddf55B323 - // Gets the status of a script-assigned task. - // taskHash: https://alloc8or.re/gta5/doc/enums/eScriptTaskHash.txt - inline int GetScriptTaskStatus(Ped ped, Hash taskHash) { return _i(0x77F1BEB8863288D5, ped, taskHash); } // 0x77f1beb8863288d50xb2477b23B323 - // https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt - inline int GetActiveVehicleMissionType(Vehicle vehicle) { return _i(0x534AEBA6E5ED4CAB, vehicle); } // 0x534aeba6e5ed4cab0xafa914efB323 - // Flags are the same flags used in TaskLeaveVehicle - inline Void TaskLeaveAnyVehicle(Ped ped, int delayTime, int flags) { return _i(0x504D54DF3F6F2247, ped, delayTime, flags); } // 0x504d54df3f6f22470xdbdd79faB323 - inline Void TaskAimGunScripted(Ped ped, Hash scriptTask, BOOL disableBlockingClip, BOOL instantBlendToAim) { return _i(0x7A192BE16D373D00, ped, scriptTask, disableBlockingClip, instantBlendToAim); } // 0x7a192be16d373d000x9d296bcdB323 - inline Void TaskAimGunScriptedWithTarget(Ped ped, Ped target, float x, float y, float z, int gunTaskType, BOOL disableBlockingClip, BOOL forceAim) { return _i(0x8605AF0DE8B3A5AC, ped, target, x, y, z, gunTaskType, disableBlockingClip, forceAim); } // 0x8605af0de8b3a5ac0xfd517ce3B323 - inline Void UpdateTaskAimGunScriptedTarget(Ped ped, Ped target, float x, float y, float z, BOOL disableBlockingClip) { return _i(0x9724FB59A3E72AD0, ped, target, x, y, z, disableBlockingClip); } // 0x9724fb59a3e72ad00x67e73525B323 - inline String GET_CLIP_SET_FOR_SCRIPTED_GUN_TASK(int gunTaskType) { return _i(0x3A8CADC7D37AACC5, gunTaskType); } // 0x3A8CADC7D37AACC5 0x249EB4EB b323 - // duration: the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped - inline Void TaskAimGunAtEntity(Ped ped, Entity entity, int duration, BOOL instantBlendToAim) { return _i(0x9B53BB6E8943AF53, ped, entity, duration, instantBlendToAim); } // 0x9b53bb6e8943af530xbe32b3b6B323 - // duration: the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped - inline Void TaskTurnPedToFaceEntity(Ped ped, Entity entity, int duration) { return _i(0x5AD23D40115353AC, ped, entity, duration); } // 0x5ad23d40115353ac0x3c37c767B323 - inline Void TaskAimGunAtCoord(Ped ped, float x, float y, float z, int time, BOOL instantBlendToAim, BOOL playAnimIntro) { return _i(0x6671F3EEC681BDA1, ped, x, y, z, time, instantBlendToAim, playAnimIntro); } // 0x6671f3eec681bda10xfbf44ad3B323 - // Firing Pattern Hash Information: https://pastebin.com/Px036isB - inline Void TaskShootAtCoord(Ped ped, float x, float y, float z, int duration, Hash firingPattern) { return _i(0x46A6CC01E0826106, ped, x, y, z, duration, firingPattern); } // 0x46a6cc01e08261060x601c22e3B323 - // Makes the specified ped shuffle to the next vehicle seat. - // The ped MUST be in a vehicle and the vehicle parameter MUST be the ped's current vehicle. - inline Void TaskShuffleToNextVehicleSeat(Ped ped, Vehicle vehicle, BOOL useAlternateShuffle) { return _i(0x7AA80209BDA643EB, ped, vehicle, useAlternateShuffle); } // 0x7aa80209bda643eb0xbeaf8f67B323 - inline Void ClearPedTasks(Ped ped) { return _i(0xE1EF3C1216AFF2CD, ped); } // 0xe1ef3c1216aff2cd0xde3316abB323 - inline Void ClearPedSecondaryTask(Ped ped) { return _i(0x176CECF6F920D707, ped); } // 0x176cecf6f920d7070xa635f451B323 - inline Void TaskEveryoneLeaveVehicle(Vehicle vehicle) { return _i(0x7F93691AB4B92272, vehicle); } // 0x7f93691ab4b922720xc1971f30B323 - // enum ESEEK_ENTITY_OFFSET_FLAGS - // { - // ESEEK_OFFSET_ORIENTATES_WITH_ENTITY = 0x01, - // ESEEK_KEEP_TO_PAVEMENTS = 0x02 - // }; - inline Void TaskGotoEntityOffset(Ped ped, Entity entity, int time, float seekRadius, float seekAngleDeg, float moveBlendRatio, int gotoEntityOffsetFlags) { return _i(0xE39B4FF4FDEBDE27, ped, entity, time, seekRadius, seekAngleDeg, moveBlendRatio, gotoEntityOffsetFlags); } // 0xe39b4ff4fdebde270x1a17a85eB323 - inline Void TaskGotoEntityOffsetXy(Ped ped, Entity entity, int duration, float targetRadius, float offsetX, float offsetY, float moveBlendRatio, int gotoEntityOffsetFlags) { return _i(0x338E7EF52B6095A9, ped, entity, duration, targetRadius, offsetX, offsetY, moveBlendRatio, gotoEntityOffsetFlags); } // 0x338e7ef52b6095a90xbc1e3d0aB323 - // duration in milliseconds - inline Void TaskTurnPedToFaceCoord(Ped ped, float x, float y, float z, int duration) { return _i(0x1DDA930A0AC38571, ped, x, y, z, duration); } // 0x1dda930a0ac385710x30463d73B323 - // '1 - brake - // '3 - brake + reverse - // '4 - turn left 90 + braking - // '5 - turn right 90 + braking - // '6 - brake strong (handbrake?) until time ends - // '7 - turn left + accelerate - // '8 - turn right + accelerate - // '9 - weak acceleration - // '10 - turn left + restore wheel pos to center in the end - // '11 - turn right + restore wheel pos to center in the end - // '13 - turn left + go reverse - // '14 - turn left + go reverse - // '16 - crash the game after like 2 seconds :) - // '17 - keep actual state, game crashed after few tries - // '18 - game crash - // '19 - strong brake + turn left/right - // '20 - weak brake + turn left then turn right - // '21 - weak brake + turn right then turn left - // '22 - brake + reverse - // '23 - accelerate fast - // '24 - brake - // '25 - brake turning left then when almost stopping it turns left more - // '26 - brake turning right then when almost stopping it turns right more - // '27 - brake until car stop or until time ends - // '28 - brake + strong reverse acceleration - // '30 - performs a burnout (brake until stop + brake and accelerate) - // '31 - accelerate + handbrake - // '32 - accelerate very strong - // - // Seems to be this: - // Works on NPCs, but overrides their current task. If inside a task sequence (and not being the last task), "time" will work, otherwise the task will be performed forever until tasked with something else - inline Void TaskVehicleTempAction(Ped driver, Vehicle vehicle, int action, int time) { return _i(0xC429DCEEB339E129, driver, vehicle, action, time); } // 0xc429dceeb339e1290x0679dfb8B323 - // missionType: https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt - inline Void TaskVehicleMission(Ped driver, Vehicle vehicle, Vehicle vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, BOOL DriveAgainstTraffic) { return _i(0x659427E0EF36BCDE, driver, vehicle, vehicleTarget, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); } // 0x659427e0ef36bcde0x20609e56B323 - // See TaskVehicleMission - inline Void TaskVehicleMissionPedTarget(Ped ped, Vehicle vehicle, Ped pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, BOOL DriveAgainstTraffic) { return _i(0x9454528DF15D657A, ped, vehicle, pedTarget, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic); } // 0x9454528df15d657a0xc81c4677B323 - // See TaskVehicleMission - inline Void TaskVehicleMissionCoorsTarget(Ped ped, Vehicle vehicle, float x, float y, float z, int mission, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, BOOL DriveAgainstTraffic) { return _i(0xF0AF20AA7731F8C3, ped, vehicle, x, y, z, mission, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); } // 0xf0af20aa7731f8c30x6719c109B323 - // Makes a ped follow the targetVehicle with in between. - // - // note: minDistance is ignored if drivingstyle is aVoiding traffic, but Rushed is fine. - // - // Mode: The mode defines the relative position to the targetVehicle. The ped will try to position its vehicle there. - // -1 = behind - // 0 = ahead - // 1 = left - // 2 = right - // 3 = back left - // 4 = back right - // - // if the target is closer than noRoadsDistance, the driver will ignore pathing/roads and follow you directly. - // - // Driving Styles guide: gtaforums.com/topic/822314-guide-driving-styles/ - inline Void TaskVehicleEscort(Ped ped, Vehicle vehicle, Vehicle targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance) { return _i(0x0FA6E4B75F302400, ped, vehicle, targetVehicle, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance); } // 0x0fa6e4b75f3024000x9fdcb250B323 - // Makes a ped in a vehicle follow an entity (ped, vehicle, etc.) - // - // drivingStyle: http://gtaforums.com/topic/822314-guide-driving-styles/ - inline Void TaskVehicleFollow(Ped driver, Vehicle vehicle, Entity targetEntity, float speed, int drivingStyle, int minDistance) { return _i(0xFC545A9F0626E3B6, driver, vehicle, targetEntity, speed, drivingStyle, minDistance); } // 0xfc545a9f0626e3b60xa8b917d7B323 - // chases targetEnt fast and aggressively - // -- - // Makes ped (needs to be in vehicle) chase targetEnt. - inline Void TaskVehicleChase(Ped driver, Entity targetEnt) { return _i(0x3C08A8E30363B353, driver, targetEnt); } // 0x3c08a8e30363b3530x55634798B323 - // pilot, vehicle and altitude are rather self-explanatory. - // - // p4: is unused variable in the function. - // - // entityToFollow: you can provide a Vehicle entity or a Ped entity, the heli will protect them. - // - // 'targetSpeed': The pilot will dip the nose AS MUCH AS POSSIBLE so as to reach this value AS FAST AS POSSIBLE. As such, you'll want to modulate it as opposed to calling it via a hard-wired, constant #. - // - // 'radius' isn't just "stop within radius of X of target" like with ground vehicles. In this case, the pilot will fly an entire circle around 'radius' and continue to do so. - // - // NOT CONFIRMED: p7 appears to be a FlyingStyle enum. Still investigating it as of this writing, but playing around with values here appears to result in different -behavior- as opposed to offsetting coordinates, altitude, target speed, etc. - // - // NOTE: If the pilot finds enemies, it will engage them until it kills them, but will return to protect the ped/vehicle given shortly thereafter. - inline Void TaskVehicleHeliProtect(Ped pilot, Vehicle vehicle, Entity entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags) { return _i(0x1E09C32048FEFD1C, pilot, vehicle, entityToFollow, targetSpeed, drivingFlags, radius, altitude, heliFlags); } // 0x1e09c32048fefd1c0x0cb415eeB323 - // Flag 8: Medium-aggressive boxing tactic with a bit of PIT - // Flag 1: Aggressive ramming of suspect - // Flag 2: Ram attempts - // Flag 32: Stay back from suspect, no tactical contact. Convoy-like. - // Flag 16: Ramming, seems to be slightly less aggressive than 1-2. - inline Void SetTaskVehicleChaseBehaviorFlag(Ped ped, int flag, BOOL set) { return _i(0xCC665AAC360D31E7, ped, flag, set); } // 0xcc665aac360d31e70x2a83083fB323 - inline Void SetTaskVehicleChaseIdealPursuitDistance(Ped ped, float distance) { return _i(0x639B642FACBE4EDD, ped, distance); } // 0x639b642facbe4edd0x04fd3ee7B323 - // Ped pilot should be in a heli. - // EntityToFollow can be a vehicle or Ped. - // - // x,y,z appear to be how close to the EntityToFollow the heli should be. Scripts use 0.0, 0.0, 80.0. Then the heli tries to position itself 80 units above the EntityToFollow. If you reduce it to -5.0, it tries to go below (if the EntityToFollow is a heli or plane) - // - // - // NOTE: If the pilot finds enemies, it will engage them, then remain there idle, not continuing to chase the Entity given. - inline Void TaskHeliChase(Ped pilot, Entity entityToFollow, float x, float y, float z) { return _i(0xAC83B1DB38D0ADA0, pilot, entityToFollow, x, y, z); } // 0xac83b1db38d0ada00xac290a21B323 - inline Void TaskPlaneChase(Ped pilot, Entity entityToFollow, float x, float y, float z) { return _i(0x2D2386F273FF7A25, pilot, entityToFollow, x, y, z); } // 0x2d2386f273ff7a250x12fa1c28B323 - inline Void TaskPlaneLand(Ped pilot, Vehicle plane, float runwayStartX, float runwayStartY, float runwayStartZ, float runwayEndX, float runwayEndY, float runwayEndZ) { return _i(0xBF19721FA34D32C0, pilot, plane, runwayStartX, runwayStartY, runwayStartZ, runwayEndX, runwayEndY, runwayEndZ); } // 0xbf19721fa34d32c00x5f7e23eaB323 - inline Void ClearDefaultPrimaryTask(Ped ped) { return _i(0x6100B3CEFD43452E, ped); } // 0x6100b3cefd43452eB2189 - // This native is very useful when switching the player to a ped inside a vehicle that has a task assigned prior to the player switch. - // It is necessary to clear the ped's tasks AND call this native with the vehicle the player is switching into in order to allow the player to control the vehicle after the player switches. - inline Void ClearPrimaryVehicleTask(Vehicle vehicle) { return _i(0xDBBC7A2432524127, vehicle); } // 0xdbbc7a2432524127B1290 - inline Void ClearVehicleCrashTask(Vehicle vehicle) { return _i(0x53DDC75BC3AC0A90, vehicle); } // 0x53ddc75bc3ac0a90B1290 - inline Void TaskPlaneGotoPreciseVtol(Ped ped, Vehicle vehicle, float x, float y, float z, int flightHeight, int minHeightAboveTerrain, BOOL useDesiredOrientation, float desiredOrientation, BOOL autopilot) { return _i(0xF7F9DCCA89E7505B, ped, vehicle, x, y, z, flightHeight, minHeightAboveTerrain, useDesiredOrientation, desiredOrientation, autopilot); } // 0xf7f9dcca89e7505bB1290 - // Used in am_vehicle_spawn.ysc and am_mp_submarine.ysc. - // - // p0 is always 0, p5 is always 1 - // - // p1 is the vehicle handle of the submarine. Submarine must have a driver, but the ped handle is not passed to the native. - // - // Speed can be set by calling SetDriveTaskCruiseSpeed after - inline Void TaskSubmarineGotoAndStop(Ped ped, Vehicle submarine, float x, float y, float z, BOOL autopilot) { return _i(0xC22B40579A498CA4, ped, submarine, x, y, z, autopilot); } // 0xc22b40579a498ca4B2189 - // Must have targetVehicle, targetPed, OR destination X/Y/Z set - // Will follow targeted vehicle/ped, or fly to destination - // Set whichever is not being used to 0 - // - // - // Mission mode type: - // - 4, 7: Forces heli to snap to the heading if set, flies to destination or tracks specified entity (mode 4 only works for coordinates, 7 works for coordinates OR ped/vehicle) - // - 6: Attacks the target ped/vehicle with mounted weapons. If radius is set, will maintain that distance from target. - // - 8: Makes the heli flee from the ped/vehicle/coordinate - // - 9: Circles around target ped/vehicle, snaps to angle if set. Behavior flag (last parameter) of 2048 switches from counter-clockwise to clockwise circling. Does not work with coordinate destination. - // - 10, 11: Follows ped/vehicle target and imitates target heading. Only works with ped/vehicle target, not coord target - // - 19: Heli lands at specified coordinate, ignores heading (lands facing whatever direction it is facing when the task is started) - // - 20: Makes the heli land when near target ped. It won't resume chasing. - // - 21: Emulates a helicopter crash - // - 23: makes the heli circle erratically around ped - // - // - // Heli will fly at maxSpeed (up to actual maximum speed defined by the model's handling config) - // You can use SetDriveTaskCruiseSpeed to modulate the speed based on distance to the target without having to re-invoke the task native. Setting to 8.0 when close to the destination results in a much smoother approach. - // - // If minHeight and maxHeight are set, heli will fly between those specified elevations, relative to ground level and any obstructions/buildings below. You can specify -1 for either if you only want to specify one. Usually it is easiest to leave maxHeight at -1, and specify a reasonable minHeight to ensure clearance over any obstacles. Note this MUST be passed as an INT, not a FLOAT. - // - // Radius affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - // - // Heading is -1.0 for default behavior, which will point the nose of the helicopter towards the destination. Set a heading and the heli will lock to that direction when near its destination/target, but may still turn towards the destination when flying at higher speed from a further distance. - // - // Behavior Flags is a bitwise value that modifies the AI behavior. Not clear what all flags do, but here are some guesses/notes: - // 1: Forces heading to face E - // 2: Unknown - // 4: Tight circles around coordinate destination - // 8: Unknown - // 16: Circles around coordinate destination facing towards destination - // 32: Flys to normally, then lands at coordinate destination and stays on the ground (using mission type 4) - // 64: Ignores obstacles when flying, will follow at specified minHeight above ground level but will not aVoid buildings, vehicles, etc. - // 128: Unknown - // 256: Unknown - // 512: Unknown - // 1024: Unknown - // 2048: Reverses direction of circling (mission type 9) to clockwise - // 4096: Hugs closer to the ground, maintains minHeight from ground generally, but barely clears buildings and dips down more between buildings instead of taking a more efficient/safe route - // 8192: Unknown - // - // Unk3 is a float value, you may see -1082130432 for this value in decompiled native scripts, this is the equivalent to -1.0f. Seems to affect acceleration/aggressiveness, but not sure exactly how it works. Higher value seems to result in lower acceleration/less aggressive flying. Almost always -1.0 in native scripts, occasionally 20.0 or 50.0. Setting to 400.0 seems to work well for making the pilot not overshoot the destination when using coordinate destination. - // - // Notes updated by PNWParksFan, May 2021 - // - inline Void TaskHeliMission(Ped pilot, Vehicle aircraft, Vehicle targetVehicle, Ped targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) { return _i(0xDAD029E187A2BEB4, pilot, aircraft, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); } // 0xdad029e187a2beb40x0c143e97B323 - inline Void TaskHeliEscortHeli(Ped pilot, Vehicle heli1, Vehicle heli2, float offsetX, float offsetY, float offsetZ) { return _i(0xB385523325077210, pilot, heli1, heli2, offsetX, offsetY, offsetZ); } // 0xb385523325077210B1290 - // EXAMPLE USAGE: - // - // Fly around target (Precautiously, keeps high altitude): - // Function.Call(Hash.TaskPlaneMission, pilot, selectedAirplane, 0, 0, Target.X, Target.Y, Target.Z, 4, 100f, 0f, 90f, 0, 200f); - // - // Fly around target (Dangerously, keeps VERY low altitude): - // Function.Call(Hash.TaskPlaneMission, pilot, selectedAirplane, 0, 0, Target.X, Target.Y, Target.Z, 4, 100f, 0f, 90f, 0, -500f); - // - // Fly directly into target: - // Function.Call(Hash.TaskPlaneMission, pilot, selectedAirplane, 0, 0, Target.X, Target.Y, Target.Z, 4, 100f, 0f, 90f, 0, -5000f); - // - // EXPANDED INFORMATION FOR ADVANCED USAGE (custom pilot) - // - // 'physicsSpeed': (THIS IS NOT YOUR ORDINARY SPEED PARAMETER: READ!!) - // Think of this -first- as a radius value, not a true speed value. The ACTUAL effective speed of the plane will be that of the maximum speed permissible to successfully fly in a -circle- with a radius of 'physicsSpeed'. This also means that the plane must complete a circle before it can begin its "bombing run", its straight line pass towards the target. p9 appears to influence the angle at which a "bombing run" begins, although I can't confirm yet. - // - // VERY IMPORTANT: A "bombing run" will only occur if a plane can successfully determine a possible navigable route (the slower the value of 'physicsSpeed', the more precise the pilot can be due to less influence of physics on flightpath). Otherwise, the pilot will continue to patrol around Destination (be it a dynamic Entity position vector or a fixed world coordinate vector.) - // - // 0 = Plane's physics are almost entirely frozen, plane appears to "orbit" around precise destination point - // 1-299 = Blend of "frozen, small radius" vs. normal vs. "accelerated, hyperfast, large radius" - // 300+ = Vehicle behaves entirely like a normal gameplay plane. - // - // 'patrolBlend' (The lower the value, the more the Destination is treated as a "fly AT" rather than a "fly AROUND point".) - // - // Scenario: Destination is an Entity on ground level, wide open field - // -5000 = Pilot kamikazes directly into Entity - // -1000 = Pilot flies extremely low -around- Entity, very prone to crashing - // -200 = Pilot flies lower than average around Entity. - // 0 = Pilot flies around Entity, normal altitude - // 200 = Pilot flies an extra eighty units or so higher than 0 while flying around Destination (this doesn't seem to correlate directly into distance units.) - // - // -- Valid mission types found in the exe: -- - // - // 0 = None - // 1 = Unk - // 2 = CTaskVehicleRam - // 3 = CTaskVehicleBlock - // 4 = CTaskVehicleGoToPlane - // 5 = CTaskVehicleStop - // 6 = CTaskVehicleAttack - // 7 = CTaskVehicleFollow - // 8 = CTaskVehicleFleeAirborne - // 9= CTaskVehicleCircle - // 10 = CTaskVehicleEscort - // 15 = CTaskVehicleFollowRecording - // 16 = CTaskVehiclePoliceBehaviour - // 17 = CTaskVehicleCrash - inline Void TaskPlaneMission(Ped pilot, Vehicle aircraft, Vehicle targetVehicle, Ped targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, BOOL precise) { return _i(0x23703CD154E83B88, pilot, aircraft, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); } // 0x23703cd154e83b880x1d007e65B323 - inline Void TaskPlaneTaxi(Ped pilot, Vehicle aircraft, float x, float y, float z, float cruiseSpeed, float targetReached) { return _i(0x92C360B5F15D2302, pilot, aircraft, x, y, z, cruiseSpeed, targetReached); } // 0x92c360b5f15d2302B1103 - // You need to call PED::SetBlockingOfNonTemporaryEvents after TaskBoatMission in order for the task to execute. - // - // Working example - // float vehicleMaxSpeed = VEHICLE::GetVehicleEstimatedMaxSpeed(ENTITY::GetEntityModel(pedVehicle)); - // TASK::TaskBoatMission(pedDriver, pedVehicle, 0, 0, waypointCoord.x, waypointCoord.y, waypointCoord.z, 4, vehicleMaxSpeed, 786469, -1.0, 7); - // PED::SetBlockingOfNonTemporaryEvents(pedDriver, 1); - // - // P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation - inline Void TaskBoatMission(Ped pedDriver, Vehicle vehicle, Vehicle targetVehicle, Ped targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, Any boatFlags) { return _i(0x15C86013127CE63F, pedDriver, vehicle, targetVehicle, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); } // 0x15c86013127ce63f0x5865b031B323 - // Example: - // - // TASK::TaskDriveBy(l_467[1/*22*/], PLAYER::PlayerPedId(), 0, 0.0, 0.0, 2.0, 300.0, 100, 0, ${firing_pattern_burst_fire_driveby}); - // - // - // - // - // Needs working example. Doesn't seem to do anything. - // - // I marked p2 as targetVehicle as all these shooting related tasks seem to have that in common. - // I marked p6 as distanceToShoot as if you think of GTA's Logic with the native SET_VEHICLE_SHOOT natives, it won't shoot till it gets within a certain distance of the target. - // I marked p7 as pedAccuracy as it seems it's mostly 100 (Completely Accurate), 75, 90, etc. Although this could be the ammo count within the gun, but I highly doubt it. I will change this comment once I find out if it's ammo count or not. - inline Void TaskDriveBy(Ped driverPed, Ped targetPed, Vehicle targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, BOOL pushUnderneathDrivingTaskIfDriving, Hash firingPattern) { return _i(0x2F8AF0E82773A171, driverPed, targetPed, targetVehicle, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern); } // 0x2f8af0e82773a1710x2b84d1c4B323 - // For p1 & p2 (Ped, Vehicle). I could be wrong, as the only time this native is called in scripts is once and both are 0, but I assume this native will work like SetMountedWeaponTarget in which has the same exact amount of parameters and the 1st and last 3 parameters are right and the same for both natives. - inline Void SetDrivebyTaskTarget(Ped shootingPed, Ped targetPed, Vehicle targetVehicle, float x, float y, float z) { return _i(0xE5B302114D8162EE, shootingPed, targetPed, targetVehicle, x, y, z); } // 0xe5b302114d8162ee0xda6a6fc1B323 - inline Void ClearDrivebyTaskUnderneathDrivingTask(Ped ped) { return _i(0xC35B5CDB2824CF69, ped); } // 0xc35b5cdb2824cf690x9b76f7e6B323 - inline BOOL IsDrivebyTaskUnderneathDrivingTask(Ped ped) { return _i(0x8785E6E40C7A8818, ped); } // 0x8785e6e40c7a88180xb23f46e6B323 - // Forces the ped to use the mounted weapon. - // Returns false if task is not possible. - inline BOOL ControlMountedWeapon(Ped ped) { return _i(0xDCFE42068FE0135A, ped); } // 0xdcfe42068fe0135a0x500d9244B323 - // Note: Look in decompiled scripts and the times that p1 and p2 aren't 0. They are filled with vars. If you look through out that script what other natives those vars are used in, you can tell p1 is a ped and p2 is a vehicle. Which most likely means if you want the mounted weapon to target a ped set targetVehicle to 0 or vice-versa. - inline Void SetMountedWeaponTarget(Ped shootingPed, Ped targetPed, Vehicle targetVehicle, float x, float y, float z, int taskMode, BOOL ignoreTargetVehDeadCheck) { return _i(0xCCD892192C6D2BB9, shootingPed, targetPed, targetVehicle, x, y, z, taskMode, ignoreTargetVehDeadCheck); } // 0xccd892192c6d2bb90x98713c68B323 - inline BOOL IsMountedWeaponTaskUnderneathDrivingTask(Ped ped) { return _i(0xA320EF046186FA3B, ped); } // 0xa320ef046186fa3b0x291e938cB323 - // Actually has 3 params, not 2. - // - // p0: Ped - // p1: int (or bool?) - // p2: int - inline Void TaskUseMobilePhone(Ped ped, BOOL usePhone, int desiredPhoneMode) { return _i(0xBD2A8EC3AF4DE7DB, ped, usePhone, desiredPhoneMode); } // 0xbd2a8ec3af4de7db0x225a38c8B323 - inline Void TaskUseMobilePhoneTimed(Ped ped, int duration) { return _i(0x5EE02954A14C69DB, ped, duration); } // 0x5ee02954a14c69db0xc99c19f5B323 - // p2 tend to be 16, 17 or 1 - // p3 to p7 tend to be 0.0 - inline Void TaskChatToPed(Ped ped, Ped target, int flags, float goToLocationX, float goToLocationY, float goToLocationZ, float headingDegs, float idleTime) { return _i(0x8C338E0263E4FD19, ped, target, flags, goToLocationX, goToLocationY, goToLocationZ, headingDegs, idleTime); } // 0x8c338e0263e4fd190xa2be1821B323 - // Seat Numbers - // ------------------------------- - // Driver = -1 - // Any = -2 - // Left-Rear = 1 - // Right-Front = 0 - // Right-Rear = 2 - // Extra seats = 3-14(This may differ from vehicle type e.g. Firetruck Rear Stand, Ambulance Rear) - inline Void TaskWarpPedIntoVehicle(Ped ped, Vehicle vehicle, int seat) { return _i(0x9A7D091411C5F684, ped, vehicle, seat); } // 0x9a7d091411c5f6840x65d4a35dB323 - // //this part of the code is to determine at which entity the player is aiming, for example if you want to create a mod where you give orders to peds - // Entity aimedentity; - // Player player = PLAYER::PlayerId(); - // PLAYER::_GET_AIMED_ENTITY(player, &aimedentity); - // - // //bg is an array of peds - // TASK::TaskShootAtEntity(bg[i], aimedentity, 5000, MISC::GetHashKey("FIRING_PATTERN_FULL_AUTO")); - // - // in practical usage, getting the entity the player is aiming at and then task the peds to shoot at the entity, at a button press event would be better. - // - // Firing Pattern Hash Information: https://pastebin.com/Px036isB - inline Void TaskShootAtEntity(Entity entity, Entity target, int duration, Hash firingPattern) { return _i(0x08DA95E8298AE772, entity, target, duration, firingPattern); } // 0x08da95e8298ae7720xac0631c9B323 - // Climbs or vaults the nearest thing. - // usePlayerLaunchForce is unused. - inline Void TaskClimb(Ped ped, BOOL usePlayerLaunchForce) { return _i(0x89D9FCC2435112F1, ped, usePlayerLaunchForce); } // 0x89d9fcc2435112f10x90847790B323 - inline Void TaskClimbLadder(Ped ped, BOOL fast) { return _i(0xB6C987F9285A3814, ped, fast); } // 0xb6c987f9285a38140x35bb4ee0B323 - // Attaches a ped to a rope and allows player control to rappel down a wall. Disables all collisions while on the rope. - // p10: Usually 1 in the scripts, clipSet: Clipset to use for the task, minZ: Minimum Z that the player can descend to, ropeHandle: Rope to attach this task to created with AddRope - inline Void TaskRappelDownWallUsingClipsetOverride(Ped ped, float x1, float y1, float z1, float x2, float y2, float z2, float minZ, int ropeHandle, String clipSet, Any p10) { return _i(0xEAF66ACDDC794793, ped, x1, y1, z1, x2, y2, z2, minZ, ropeHandle, clipSet, p10); } // 0xeaf66acddc794793B1868 - inline int GetTaskRappelDownWallState(Ped ped) { return _i(0x9D252648778160DF, ped); } // 0x9d252648778160dfB1868 - // Immediately stops the pedestrian from whatever it's doing. They stop fighting, animations, etc. they forget what they were doing. - inline Void ClearPedTasksImmediately(Ped ped) { return _i(0xAAA34F8A7CB32098, ped); } // 0xaaa34f8a7cb320980xbc045625B323 - inline Void TaskPerformSequenceFromProgress(Ped ped, int taskIndex, int progress1, int progress2) { return _i(0x89221B16730234F0, ped, taskIndex, progress1, progress2); } // 0x89221b16730234f00xfa60601bB323 - // This native does absolutely nothing, just a nullsub - // - // R* Comment: - // SetNextDesiredMoveState - Function is deprecated - do not use anymore - inline Void SetNextDesiredMoveState(float nextMoveState) { return _i(0xF1B9F16E89E2C93A, nextMoveState); } // 0xf1b9f16e89e2c93a0x4e937d57B323 - inline Void SetPedDesiredMoveBlendRatio(Ped ped, float newMoveBlendRatio) { return _i(0x1E982AC8716912C5, ped, newMoveBlendRatio); } // 0x1e982ac8716912c50xc65fc712B323 - inline float GetPedDesiredMoveBlendRatio(Ped ped) { return _i(0x8517D4A6CA8513ED, ped); } // 0x8517d4a6ca8513ed0x5fefab72B323 - // eg - // - // TASK::TaskGotoEntityAiming(v_2, PLAYER::PlayerPedId(), 5.0, 25.0); - // - // ped = Ped you want to perform this task. - // target = the Entity they should aim at. - // distanceToStopAt = distance from the target, where the ped should stop to aim. - // StartAimingDist = distance where the ped should start to aim. - inline Void TaskGotoEntityAiming(Ped ped, Entity target, float distanceToStopAt, float StartAimingDist) { return _i(0xA9DA48FAB8A76C12, ped, target, distanceToStopAt, StartAimingDist); } // 0xa9da48fab8a76c120xf1c493cfB323 - // p1 is always GetHashKey("empty") in scripts, for the rare times this is used - inline Void TaskSetDecisionMaker(Ped ped, Hash decisionMakerId) { return _i(0xEB8517DDA73720DA, ped, decisionMakerId); } // 0xeb8517dda73720da0x830ad50cB323 - inline Void TaskSetSphereDefensiveArea(Ped ped, float x, float y, float z, float radius) { return _i(0x933C06518B52A9A4, ped, x, y, z, radius); } // 0x933c06518b52a9a40x9f3c5d6aB323 - inline Void TaskClearDefensiveArea(Ped ped) { return _i(0x95A6C46A31D1917D, ped); } // 0x95a6c46a31d1917d0x7a05bf0dB323 - inline Void TaskPedSlideToCoord(Ped ped, float x, float y, float z, float heading, float speed) { return _i(0xD04FE6765D990A06, ped, x, y, z, heading, speed); } // 0xd04fe6765d990a060x225380efB323 - inline Void TaskPedSlideToCoordHdgRate(Ped ped, float x, float y, float z, float heading, float speed, float headingChangeRate) { return _i(0x5A4A6A6D3DC64F52, ped, x, y, z, heading, speed, headingChangeRate); } // 0x5a4a6a6d3dc64f520x38a995c1B323 - inline ScrHandle AddCoverPoint(float x, float y, float z, float direction, int usage, int height, int arc, BOOL isPriority) { return _i(0xD5C12A75C7B9497F, x, y, z, direction, usage, height, arc, isPriority); } // 0xd5c12a75c7b9497f0xa0af0b98B323 - inline Void RemoveCoverPoint(ScrHandle coverpoint) { return _i(0xAE287C923D891715, coverpoint); } // 0xae287c923d8917150x0776888bB323 - // Checks if there is a cover point at position - inline BOOL DoesScriptedCoverPointExistAtCoords(float x, float y, float z) { return _i(0xA98B8E3C088E5A31, x, y, z); } // 0xa98b8e3c088e5a310x29f97a71B323 - inline Vector3 GetScriptedCoverPointCoords(ScrHandle coverpoint) { return _i(0x594A1028FC2A3E85, coverpoint); } // 0x594a1028fc2a3e850xc6b6ccc1B323 - inline Void AddScriptedCoverArea(float x, float y, float z, float radius) { return _i(0x28B7B9BFDAF274AA, x, y, z, radius); } // 0x28b7b9bfdaf274aaB2545 - // Makes the specified ped attack the target ped. - // p2 should be 0 - // p3 should be 16 - inline Void TaskCombatPed(Ped ped, Ped targetPed, int combatFlags, int threatResponseFlags) { return _i(0xF166E48407BAC484, ped, targetPed, combatFlags, threatResponseFlags); } // 0xf166e48407bac4840xcb0d8932B323 - inline Void TaskCombatPedTimed(Ped ped, Ped target, int time, int flags) { return _i(0x944F30DCB7096BDE, ped, target, time, flags); } // 0x944f30dcb7096bde0xf5ca2a45B323 - inline Void TaskSeekCoverFromPos(Ped ped, float x, float y, float z, int duration, BOOL allowPeekingAndFiring) { return _i(0x75AC2B60386D89F2, ped, x, y, z, duration, allowPeekingAndFiring); } // 0x75ac2b60386d89f20x83f18ee9B323 - inline Void TaskSeekCoverFromPed(Ped ped, Ped target, int duration, BOOL allowPeekingAndFiring) { return _i(0x84D32B3BEC531324, ped, target, duration, allowPeekingAndFiring); } // 0x84d32b3bec5313240xc1ec907eB323 - // p5 is always -1 - inline Void TaskSeekCoverToCoverPoint(Ped ped, ScrHandle coverpoint, float x, float y, float z, int time, BOOL allowPeekingAndFiring) { return _i(0xD43D95C7A869447F, ped, coverpoint, x, y, z, time, allowPeekingAndFiring); } // 0xd43d95c7a869447f0x3d026b29B323 - // p8 causes the ped to take the shortest route to the cover position. It may have something to do with navmesh or pathfinding mechanics. - // - // from michael2: - // TASK::TaskSeekCoverToCoords(ped, 967.5164794921875, -2121.603515625, 30.479299545288086, 978.94677734375, -2125.84130859375, 29.4752, -1, 1); - // - // - // appears to be shorter variation - // from michael3: - // TASK::TaskSeekCoverToCoords(ped, -2231.011474609375, 263.6326599121094, 173.60195922851562, -1, 0); - inline Void TaskSeekCoverToCoords(Ped ped, float x1, float y1, float z1, float x2, float y2, float z2, int timeout, BOOL shortRoute) { return _i(0x39246A6958EF072C, ped, x1, y1, z1, x2, y2, z2, timeout, shortRoute); } // 0x39246a6958ef072c0xfffe754eB323 - inline Void TaskPutPedDirectlyIntoCover(Ped ped, float x, float y, float z, int time, BOOL allowPeekingAndFiring, float blendInDuration, BOOL forceInitialFacingDirection, BOOL forceFaceLeft, int identifier, BOOL doEntry) { return _i(0x4172393E6BE1FECE, ped, x, y, z, time, allowPeekingAndFiring, blendInDuration, forceInitialFacingDirection, forceFaceLeft, identifier, doEntry); } // 0x4172393e6be1fece0xc9f00e68B323 - inline Void TaskWarpPedDirectlyIntoCover(Ped ped, int time, BOOL allowPeekingAndFiring, BOOL forceInitialFacingDirection, BOOL forceFaceLeft, int identifier) { return _i(0x6E01E9E8D89F8276, ped, time, allowPeekingAndFiring, forceInitialFacingDirection, forceFaceLeft, identifier); } // 0x6e01e9e8d89f8276B2545 - // p1 is 1, 2, or 3 in scripts - inline Void TaskExitCover(Ped ped, int exitType, float x, float y, float z) { return _i(0x79B258E397854D29, ped, exitType, x, y, z); } // 0x79b258e397854d290xc829fac9B323 - // from armenian3.c4 - // - // TASK::TaskPutPedDirectlyIntoMelee(PlayerPed, armenianPed, 0.0, -1.0, 0.0, 0); - // - inline Void TaskPutPedDirectlyIntoMelee(Ped ped, Ped meleeTarget, float blendInDuration, float timeInMelee, float strafePhaseSync, int aiCombatFlags) { return _i(0x1C6CD14A876FFE39, ped, meleeTarget, blendInDuration, timeInMelee, strafePhaseSync, aiCombatFlags); } // 0x1c6cd14a876ffe390x79e1d27dB323 - // used in sequence task - // - // both parameters seems to be always 0 - inline Void TaskToggleDuck(Ped ped, int toggleType) { return _i(0xAC96609B9995EDF8, ped, toggleType); } // 0xac96609b9995edf80x61cfbcbfB323 - // From re_prisonvanbreak: - // - // TASK::TaskGuardCurrentPosition(l_DD, 35.0, 35.0, 1); - inline Void TaskGuardCurrentPosition(Ped ped, float maxPatrolProximity, float defensiveAreaRadius, BOOL setDefensiveArea) { return _i(0x4A58A47A72E3FCB4, ped, maxPatrolProximity, defensiveAreaRadius, setDefensiveArea); } // 0x4a58a47a72e3fcb40x2fb099e9B323 - inline Void TaskGuardAssignedDefensiveArea(Ped ped, float x, float y, float z, float heading, float maxPatrolProximity, int timer) { return _i(0xD2A207EEBDF9889B, ped, x, y, z, heading, maxPatrolProximity, timer); } // 0xd2a207eebdf9889b0x7af0133dB323 - inline Void TaskGuardSphereDefensiveArea(Ped ped, float defendPositionX, float defendPositionY, float defendPositionZ, float heading, float maxPatrolProximity, int time, float x, float y, float z, float defensiveAreaRadius) { return _i(0xC946FE14BE0EB5E2, ped, defendPositionX, defendPositionY, defendPositionZ, heading, maxPatrolProximity, time, x, y, z, defensiveAreaRadius); } // 0xc946fe14be0eb5e20x86b76cb7B323 - // scenarioName example: "WORLD_HUMAN_GUARD_STAND" - inline Void TaskStandGuard(Ped ped, float x, float y, float z, float heading, String scenarioName) { return _i(0xAE032F8BBA959E90, ped, x, y, z, heading, scenarioName); } // 0xae032f8bba959e900xd130f636B323 - inline Void SetDriveTaskCruiseSpeed(Ped driver, float cruiseSpeed) { return _i(0x5C9B84BD7D31D908, driver, cruiseSpeed); } // 0x5c9b84bd7d31d9080x3cec07b1B323 - inline Void SetDriveTaskMaxCruiseSpeed(Ped ped, float speed) { return _i(0x404A5AA9B9F0B746, ped, speed); } // 0x404a5aa9b9f0b7460x7fdf6131B323 - // This native is used to set the driving style for specific ped. - // - // Driving styles id seems to be: - // 786468 - // 262144 - // 786469 - // - // http://gtaforums.com/topic/822314-guide-driving-styles/ - inline Void SetDriveTaskDrivingStyle(Ped ped, int drivingStyle) { return _i(0xDACE1BE37D88AF67, ped, drivingStyle); } // 0xdace1be37d88af670x59c5fad7B323 - inline Void AddCoverBlockingArea(float startX, float startY, float startZ, float endX, float endY, float endZ, BOOL blockObjects, BOOL blockVehicles, BOOL blockMap, BOOL blockPlayer) { return _i(0x45C597097DD7CB81, startX, startY, startZ, endX, endY, endZ, blockObjects, blockVehicles, blockMap, blockPlayer); } // 0x45c597097dd7cb810x3536946fB323 - inline Void RemoveAllCoverBlockingAreas() { return _i(0xDB6708C0B46F56D8); } // 0xdb6708c0b46f56d80xcf9221a7B323 - inline Void RemoveCoverBlockingAreasAtPosition(float x, float y, float z) { return _i(0xFA83CA6776038F64, x, y, z); } // 0xfa83ca6776038f64B1493 - inline Void RemoveSpecificCoverBlockingAreas(float startX, float startY, float startZ, float endX, float endY, float endZ, BOOL blockObjects, BOOL blockVehicles, BOOL blockMap, BOOL blockPlayer) { return _i(0x1F351CF1C6475734, startX, startY, startZ, endX, endY, endZ, blockObjects, blockVehicles, blockMap, blockPlayer); } // 0x1f351cf1c6475734B505 - // Plays a scenario on a Ped at their current location. - // - // unkDelay - Usually 0 or -1, doesn't seem to have any effect. Might be a delay between sequences. - // playEnterAnim - Plays the "Enter" anim if true, otherwise plays the "Exit" anim. Scenarios that don't have any "Enter" anims won't play if this is set to true. - // - // ---- - // - // From "am_hold_up.ysc.c4" at line 339: - // - // TASK::TaskStartScenarioInPlace(NETWORK::NetToPed(l_8D._f4), sub_adf(), 0, 1); - // - // I'm unsure of what the last two parameters are, however sub_adf() randomly returns 1 of 3 scenarios, those being: - // WORLD_HUMAN_SMOKING - // WORLD_HUMAN_HANG_OUT_STREET - // WORLD_HUMAN_STAND_MOBILE - // - // This makes sense, as these are what I commonly see when going by a liquor store. - // ------------------------- - // List of scenarioNames: https://pastebin.com/6mrYTdQv - // (^ Thank you so fucking much for this) - // - // Also these: - // WORLD_FISH_FLEE - // DRIVE - // WORLD_HUMAN_HIKER - // WORLD_VEHICLE_ATTRACTOR - // WORLD_VEHICLE_BICYCLE_MOUNTAIN - // WORLD_VEHICLE_BIKE_OFF_ROAD_RACE - // WORLD_VEHICLE_BIKER - // WORLD_VEHICLE_CONSTRUCTION_PASSENGERS - // WORLD_VEHICLE_CONSTRUCTION_SOLO - // WORLD_VEHICLE_DRIVE_PASSENGERS - // WORLD_VEHICLE_DRIVE_SOLO - // WORLD_VEHICLE_EMPTY - // WORLD_VEHICLE_PARK_PARALLEL - // WORLD_VEHICLE_PARK_PERPENDICULAR_NOSE_IN - // WORLD_VEHICLE_POLICE_BIKE - // WORLD_VEHICLE_POLICE_CAR - // WORLD_VEHICLE_POLICE_NEXT_TO_CAR - // WORLD_VEHICLE_SALTON_DIRT_BIKE - // WORLD_VEHICLE_TRUCK_LOGS - // - // Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json - inline Void TaskStartScenarioInPlace(Ped ped, String scenarioName, int unkDelay, BOOL playEnterAnim) { return _i(0x142A02425FF02BD9, ped, scenarioName, unkDelay, playEnterAnim); } // 0x142a02425ff02bd90xe50d6ddeB323 - // Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json - // - // Also a few more listed at TASK::TaskStartScenarioInPlace just above. - // --------------- - // The first parameter in every scenario has always been a Ped of some sort. The second like TaskStartScenarioInPlace is the name of the scenario. - // - // The next 4 parameters were harder to decipher. After viewing "hairdo_shop_mp.ysc.c4", and being confused from seeing the case in other scripts, they passed the first three of the arguments as one array from a function, and it looked like it was obviously x, y, and z. - // - // I haven't seen the sixth parameter go to or over 360, making me believe that it is rotation, but I really can't confirm anything. - // - // I have no idea what the last 3 parameters are, but I'll try to find out. - // - // -going on the last 3 parameters, they appear to always be "0, 0, 1" - // - // p6 -1 also used in scrips - // - // p7 used for sitting scenarios - // - // p8 teleports ped to position - inline Void TaskStartScenarioAtPosition(Ped ped, String scenarioName, float x, float y, float z, float heading, int duration, BOOL sittingScenario, BOOL teleport) { return _i(0xFA4EFC79F69D4F07, ped, scenarioName, x, y, z, heading, duration, sittingScenario, teleport); } // 0xfa4efc79f69d4f070xaa2c4ac2B323 - // Updated variables - // - // An alternative to TASK::TaskUseNearestScenarioToCoordWarp. Makes the ped walk to the scenario instead. - inline Void TaskUseNearestScenarioToCoord(Ped ped, float x, float y, float z, float distance, int duration) { return _i(0x277F471BA9DB000B, ped, x, y, z, distance, duration); } // 0x277f471ba9db000b0x9c50fbf0B323 - inline Void TaskUseNearestScenarioToCoordWarp(Ped ped, float x, float y, float z, float radius, int timeToLeave) { return _i(0x58E2E0F23F6B76C3, ped, x, y, z, radius, timeToLeave); } // 0x58e2e0f23f6b76c30x1be9d65cB323 - // p5 is always 0 in scripts - inline Void TaskUseNearestScenarioChainToCoord(Ped ped, float x, float y, float z, float maxRange, int timeToLeave) { return _i(0x9FDA1B3D7E7028B3, ped, x, y, z, maxRange, timeToLeave); } // 0x9fda1b3d7e7028b30xe32ffb22B323 - // p5 is always -1 or 0 in scripts - inline Void TaskUseNearestScenarioChainToCoordWarp(Ped ped, float x, float y, float z, float radius, int timeToLeave) { return _i(0x97A28E63F0BA5631, ped, x, y, z, radius, timeToLeave); } // 0x97a28e63f0ba56310xbab4c0aeB323 - inline BOOL DoesScenarioExistInArea(float x, float y, float z, float radius, BOOL mustBeFree) { return _i(0x5A59271FFADD33C1, x, y, z, radius, mustBeFree); } // 0x5a59271ffadd33c10xfa7f5047B323 - inline BOOL DoesScenarioOfTypeExistInArea(float x, float y, float z, String scenarioName, float radius, BOOL mustBeFree) { return _i(0x0A9D0C2A3BBC86C1, x, y, z, scenarioName, radius, mustBeFree); } // 0x0a9d0c2a3bbc86c10x0fb138a5B323 - inline BOOL IsScenarioOccupied(float x, float y, float z, float maxRange, BOOL onlyUsersActuallyAtScenario) { return _i(0x788756D73AC2E07C, x, y, z, maxRange, onlyUsersActuallyAtScenario); } // 0x788756d73ac2e07c0x697fc008B323 - inline BOOL PedHasUseScenarioTask(Ped ped) { return _i(0x295E3CCEC879CCD7, ped); } // 0x295e3ccec879ccd70x9be9c691B323 - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline Void PlayAnimOnRunningScenario(Ped ped, String animDict, String animName) { return _i(0x748040460F8DF5DC, ped, animDict, animName); } // 0x748040460f8df5dc0x1984a5d1B323 - // Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json - // Occurrences in the b617d scripts: - // - // "ARMY_GUARD", - // "ARMY_HELI", - // "Cinema_Downtown", - // "Cinema_Morningwood", - // "Cinema_Textile", - // "City_Banks", - // "Countryside_Banks", - // "DEALERSHIP", - // "GRAPESEED_PLANES", - // "KORTZ_SECURITY", - // "LOST_BIKERS", - // "LSA_Planes", - // "LSA_Planes", - // "MP_POLICE", - // "Observatory_Bikers", - // "POLICE_POUND1", - // "POLICE_POUND2", - // "POLICE_POUND3", - // "POLICE_POUND4", - // "POLICE_POUND5" - // "QUARRY", - // "SANDY_PLANES", - // "SCRAP_SECURITY", - // "SEW_MACHINE", - // "SOLOMON_GATE", - // "Triathlon_1_Start", - // "Triathlon_2_Start", - // "Triathlon_3_Start" - // - // Sometimes used with IsScenarioGroupEnabled: - // if (TASK::DoesScenarioGroupExist("Observatory_Bikers") && (!TASK::IsScenarioGroupEnabled("Observatory_Bikers"))) { - // else if (TASK::IsScenarioGroupEnabled("BLIMP")) { - // - inline BOOL DoesScenarioGroupExist(String scenarioGroup) { return _i(0xF9034C136C9E00D3, scenarioGroup); } // 0xf9034c136c9e00d30x5f072eb9B323 - // Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json - // Occurrences in the b617d scripts: - // - // "ARMY_GUARD", - // "ARMY_HELI", - // "BLIMP", - // "Cinema_Downtown", - // "Cinema_Morningwood", - // "Cinema_Textile", - // "City_Banks", - // "Countryside_Banks", - // "DEALERSHIP", - // "KORTZ_SECURITY", - // "LSA_Planes", - // "MP_POLICE", - // "Observatory_Bikers", - // "POLICE_POUND1", - // "POLICE_POUND2", - // "POLICE_POUND3", - // "POLICE_POUND4", - // "POLICE_POUND5", - // "Rampage1", - // "SANDY_PLANES", - // "SCRAP_SECURITY", - // "SEW_MACHINE", - // "SOLOMON_GATE" - // - // Sometimes used with DoesScenarioGroupExist: - // if (TASK::DoesScenarioGroupExist("Observatory_Bikers") && (!TASK::IsScenarioGroupEnabled("Observatory_Bikers"))) { - // else if (TASK::IsScenarioGroupEnabled("BLIMP")) { - inline BOOL IsScenarioGroupEnabled(String scenarioGroup) { return _i(0x367A09DED4E05B99, scenarioGroup); } // 0x367a09ded4e05b990x90991122B323 - // Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json - // Occurrences in the b617d scripts: https://pastebin.com/Tvg2PRHU - inline Void SetScenarioGroupEnabled(String scenarioGroup, BOOL enabled) { return _i(0x02C8E5B49848664E, scenarioGroup, enabled); } // 0x02c8e5b49848664e0x116997b1B323 - inline Void ResetScenarioGroupsEnabled() { return _i(0xDD902D0349AFAD3A); } // 0xdd902d0349afad3a0xbf55025dB323 - // Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json - // Groups found in the scripts used with this native: - // - // "AMMUNATION", - // "QUARRY", - // "Triathlon_1", - // "Triathlon_2", - // "Triathlon_3" - inline Void SetExclusiveScenarioGroup(String scenarioGroup) { return _i(0x535E97E1F7FC0C6A, scenarioGroup); } // 0x535e97e1f7fc0c6a0x59db8f26B323 - inline Void ResetExclusiveScenarioGroup() { return _i(0x4202BBCB8684563D); } // 0x4202bbcb8684563d0x17f9dfe8B323 - // Full list of scenario types used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json - // Occurrences in the b617d scripts: - // "PROP_HUMAN_SEAT_CHAIR", - // "WORLD_HUMAN_DRINKING", - // "WORLD_HUMAN_HANG_OUT_STREET", - // "WORLD_HUMAN_SMOKING", - // "WORLD_MOUNTAIN_LION_WANDER", - // "WORLD_HUMAN_DRINKING" - // - // Sometimes used together with MISC::IsStringNullOrEmpty in the scripts. - // - // scenarioType could be the same as scenarioName, used in for example TASK::TaskStartScenarioAtPosition. - // - inline BOOL IsScenarioTypeEnabled(String scenarioType) { return _i(0x3A815DB3EA088722, scenarioType); } // 0x3a815db3ea0887220xae37e969B323 - // Full list of scenario types used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json - // seems to enable/disable specific scenario-types from happening in the game world. - // - // Here are some scenario types from the scripts: - // "WORLD_MOUNTAIN_LION_REST" - // "WORLD_MOUNTAIN_LION_WANDER" - // "DRIVE" - // "WORLD_VEHICLE_POLICE_BIKE" - // "WORLD_VEHICLE_POLICE_CAR" - // "WORLD_VEHICLE_POLICE_NEXT_TO_CAR" - // "WORLD_VEHICLE_DRIVE_SOLO" - // "WORLD_VEHICLE_BIKER" - // "WORLD_VEHICLE_DRIVE_PASSENGERS" - // "WORLD_VEHICLE_SALTON_DIRT_BIKE" - // "WORLD_VEHICLE_BICYCLE_MOUNTAIN" - // "PROP_HUMAN_SEAT_CHAIR" - // "WORLD_VEHICLE_ATTRACTOR" - // "WORLD_HUMAN_LEANING" - // "WORLD_HUMAN_HANG_OUT_STREET" - // "WORLD_HUMAN_DRINKING" - // "WORLD_HUMAN_SMOKING" - // "WORLD_HUMAN_GUARD_STAND" - // "WORLD_HUMAN_CLIPBOARD" - // "WORLD_HUMAN_HIKER" - // "WORLD_VEHICLE_EMPTY" - // "WORLD_VEHICLE_BIKE_OFF_ROAD_RACE" - // "WORLD_HUMAN_PAPARAZZI" - // "WORLD_VEHICLE_PARK_PERPENDICULAR_NOSE_IN" - // "WORLD_VEHICLE_PARK_PARALLEL" - // "WORLD_VEHICLE_CONSTRUCTION_SOLO" - // "WORLD_VEHICLE_CONSTRUCTION_PASSENGERS" - // "WORLD_VEHICLE_TRUCK_LOGS" - // - // scenarioType could be the same as scenarioName, used in for example TASK::TaskStartScenarioAtPosition. - inline Void SetScenarioTypeEnabled(String scenarioType, BOOL toggle) { return _i(0xEB47EC4E34FB7EE1, scenarioType, toggle); } // 0xeb47ec4e34fb7ee10xdb18e5deB323 - inline Void ResetScenarioTypesEnabled() { return _i(0x0D40EE2A7F2B2D6D); } // 0x0d40ee2a7f2b2d6d0xf58fdeb4B323 - inline BOOL IsPedActiveInScenario(Ped ped) { return _i(0xAA135F9482C82CC3, ped); } // 0xaa135f9482c82cc30x05038f1aB323 - // Used only once (am_mp_property_int) - // - // ped was PlayerPedId() - // - // Related to CTaskAmbientClips. - inline BOOL IsPedPlayingBaseClipInScenario(Ped ped) { return _i(0x621C6E4729388E41, ped); } // 0x621c6e4729388e410xa0da6b1dB323 - // Appears only in fm_mission_controller and used only 3 times. - // - // ped was always PlayerPedId() - // p1 was always true - // p2 was always true - inline Void SetPedCanPlayAmbientIdles(Ped ped, BOOL blockIdleClips, BOOL removeIdleClipIfPlaying) { return _i(0x8FD89A6240813FD0, ped, blockIdleClips, removeIdleClipIfPlaying); } // 0x8fd89a6240813fd00xb5ad044eB323 - // Despite its name, it only attacks ONE hated target. The one closest to the specified position. - inline Void TaskCombatHatedTargetsInArea(Ped ped, float x, float y, float z, float radius, int combatFlags) { return _i(0x4CF5F55DAC3280A0, ped, x, y, z, radius, combatFlags); } // 0x4cf5f55dac3280a00xdf099e18B323 - // Despite its name, it only attacks ONE hated target. The one closest hated target. - // - // p2 seems to be always 0 - inline Void TaskCombatHatedTargetsAroundPed(Ped ped, float radius, int combatFlags) { return _i(0x7BF835BB9E2698C8, ped, radius, combatFlags); } // 0x7bf835bb9e2698c80x2e7064e4B323 - inline Void TaskCombatHatedTargetsAroundPedTimed(Ped ped, float radius, int time, int combatFlags) { return _i(0x2BBA30B854534A0C, ped, radius, time, combatFlags); } // 0x2bba30b854534a0c0xf127ad6aB323 - // In every case of this native, I've only seen the first parameter passed as 0, although I believe it's a Ped after seeing tasks around it using 0. That's because it's used in a Sequence Task. - // - // The last 3 parameters are definitely coordinates after seeing them passed in other scripts, and even being used straight from the player's coordinates. - // --- - // It seems that - in the decompiled scripts - this native was used on a ped who was in a vehicle to throw a projectile out the window at the player. This is something any ped will naturally do if they have a throwable and they are doing driveby-combat (although not very accurately). - // It is possible, however, that this is how SWAT throws smoke grenades at the player when in cover. - // ---------------------------------------------------- - // The first comment is right it definately is the ped as if you look in script finale_heist2b.c line 59628 in Xbox Scripts atleast you will see task_throw_projectile and the first param is Local_559[2 <14>] if you look above it a little bit line 59622 give_weapon_to_ped uses the same exact param Local_559[2 <14>] and we all know the first param of that native is ped. So it guaranteed has to be ped. 0 just may mean to use your ped by default for some reason. - inline Void TaskThrowProjectile(Ped ped, float x, float y, float z, int ignoreCollisionEntityIndex, BOOL createInvincibleProjectile) { return _i(0x7285951DBF6B5A51, ped, x, y, z, ignoreCollisionEntityIndex, createInvincibleProjectile); } // 0x7285951dbf6b5a510xf65c20a7B323 - inline Void TaskSwapWeapon(Ped ped, BOOL drawWeapon) { return _i(0xA21C51255B205245, ped, drawWeapon); } // 0xa21c51255b2052450xdaf4f8fcB323 - // The 2nd param (drawWeapon) is not implemented. - // - // ----------------------------------------------------------------------- - // - // The only occurrence I found in a R* script ("assassin_construction.ysc.c4"): - // - // if (((v_3 < v_4) && (TASK::GetScriptTaskStatus(PLAYER::PlayerPedId(), 0x6a67a5cc) != 1)) && (v_5 > v_3)) { - // TASK::TaskReloadWeapon(PLAYER::PlayerPedId(), 1); - // } - inline Void TaskReloadWeapon(Ped ped, BOOL drawWeapon) { return _i(0x62D2916F56B9CD2D, ped, drawWeapon); } // 0x62d2916f56b9cd2d0xca6e91fdB323 - inline BOOL IsPedGettingUp(Ped ped) { return _i(0x2A74E1D5F2F00EEC, ped); } // 0x2a74e1d5f2f00eec0x320813e6B323 - // EX: Function.Call(Ped1, Ped2, Time, 0); - // - // The last parameter is always 0 for some reason I do not know. The first parameter is the pedestrian who will writhe to the pedestrian in the other parameter. The third paremeter is how long until the Writhe task ends. When the task ends, the ped will die. If set to -1, he will not die automatically, and the task will continue until something causes it to end. This can be being touched by an entity, being shot, explosion, going into ragdoll, having task cleared. Anything that ends the current task will kill the ped at this point. - // - // - // - // Third parameter does not appear to be time. The last parameter is not implemented (It's not used, regardless of value). - inline Void TaskWrithe(Ped ped, Ped target, int minFireLoops, int startState, BOOL forceShootOnGround, int shootFromGroundTimer) { return _i(0xCDDC2B77CE54AC6E, ped, target, minFireLoops, startState, forceShootOnGround, shootFromGroundTimer); } // 0xcddc2b77ce54ac6e0x0fdc54fcB323 - // This native checks if a ped is on the ground, in pain from a (gunshot) wound. - // Returns `true` if the ped is in writhe, `false` otherwise. - inline BOOL IsPedInWrithe(Ped ped) { return _i(0xDEB6D52126E7D640, ped); } // 0xdeb6d52126e7d6400x09e61921B323 - // patrolRoutes found in the b617d scripts: - // "miss_Ass0", - // "miss_Ass1", - // "miss_Ass2", - // "miss_Ass3", - // "miss_Ass4", - // "miss_Ass5", - // "miss_Ass6", - // "MISS_PATROL_6", - // "MISS_PATROL_7", - // "MISS_PATROL_8", - // "MISS_PATROL_9", - // "miss_Tower_01", - // "miss_Tower_02", - // "miss_Tower_03", - // "miss_Tower_04", - // "miss_Tower_05", - // "miss_Tower_06", - // "miss_Tower_07", - // "miss_Tower_08", - // "miss_Tower_10" - inline Void OpenPatrolRoute(String patrolRoute) { return _i(0xA36BFB5EE89F3D82, patrolRoute); } // 0xa36bfb5ee89f3d820xf33f83caB323 - inline Void ClosePatrolRoute() { return _i(0xB043ECA801B8CBC1); } // 0xb043eca801b8cbc10x67305e59B323 - // Example: - // TASK::AddPatrolRouteNode(2, "WORLD_HUMAN_GUARD_STAND", -193.4915, -2378.864990234375, 10.9719, -193.4915, -2378.864990234375, 10.9719, 3000); - // - // p0 is between 0 and 4 in the scripts. - // - // p1 is "WORLD_HUMAN_GUARD_STAND" or "StandGuard". - // - // p2, p3 and p4 is only one parameter sometimes in the scripts. Most likely a Vector3 hence p2, p3 and p4 are coordinates. - // Examples: - // TASK::AddPatrolRouteNode(1, "WORLD_HUMAN_GUARD_STAND", l_739[7/*3*/], 0.0, 0.0, 0.0, 0); - // - // TASK::AddPatrolRouteNode(1, "WORLD_HUMAN_GUARD_STAND", l_B0[17/*44*/]._f3, l_B0[17/*44*/]._f3, 2000); - // - // p5, p6 and p7 are for example set to: 1599.0406494140625, 2713.392578125, 44.4309. - // - // p8 is an int, often random set to for example: MISC::GetRandomIntInRange(5000, 10000). - inline Void AddPatrolRouteNode(int nodeId, String nodeType, float posX, float posY, float posZ, float headingX, float headingY, float headingZ, int duration) { return _i(0x8EDF950167586B7C, nodeId, nodeType, posX, posY, posZ, headingX, headingY, headingZ, duration); } // 0x8edf950167586b7c0x21b48f10B323 - inline Void AddPatrolRouteLink(int nodeId1, int nodeId2) { return _i(0x23083260DEC3A551, nodeId1, nodeId2); } // 0x23083260dec3a5510xd8761bb3B323 - inline Void CreatePatrolRoute() { return _i(0xAF8A443CCC8018DC); } // 0xaf8a443ccc8018dc0x0a6c7864B323 - // From the b617d scripts: - // - // TASK::DeletePatrolRoute("miss_merc0"); - // TASK::DeletePatrolRoute("miss_merc1"); - // TASK::DeletePatrolRoute("miss_merc2"); - // TASK::DeletePatrolRoute("miss_dock"); - inline Void DeletePatrolRoute(String patrolRoute) { return _i(0x7767DD9D65E91319, patrolRoute); } // 0x7767dd9d65e913190x2a4e6706B323 - inline BOOL GetPatrolTaskInfo(Ped ped, int* timeLeftAtNode, int* nodeId) { return _i(0x52F734CEBE20DFBA, ped, timeLeftAtNode, nodeId); } // 0x52f734cebe20dfbaB2545 - // After looking at some scripts the second parameter seems to be an id of some kind. Here are some I found from some R* scripts: - // - // "miss_Tower_01" (this went from 01 - 10) - // "miss_Ass0" (0, 4, 6, 3) - // "MISS_PATROL_8" - // - // I think they're patrol routes, but I'm not sure. And I believe the 3rd parameter is a BOOL, but I can't confirm other than only seeing 0 and 1 being passed. - // - // - // As far as I can see the patrol routes names such as "miss_Ass0" have been defined earlier in the scripts. This leads me to believe we can defined our own new patrol routes by following the same approach. - // From the scripts - // - // TASK::OpenPatrolRoute("miss_Ass0"); - // TASK::AddPatrolRouteNode(0, "WORLD_HUMAN_GUARD_STAND", l_738[0/*3*/], -139.4076690673828, -993.4732055664062, 26.2754, MISC::GetRandomIntInRange(5000, 10000)); - // TASK::AddPatrolRouteNode(1, "WORLD_HUMAN_GUARD_STAND", l_738[1/*3*/], -116.1391830444336, -987.4984130859375, 26.38541030883789, MISC::GetRandomIntInRange(5000, 10000)); - // TASK::AddPatrolRouteNode(2, "WORLD_HUMAN_GUARD_STAND", l_738[2/*3*/], -128.46847534179688, -979.0340576171875, 26.2754, MISC::GetRandomIntInRange(5000, 10000)); - // TASK::AddPatrolRouteLink(0, 1); - // TASK::AddPatrolRouteLink(1, 2); - // TASK::AddPatrolRouteLink(2, 0); - // TASK::ClosePatrolRoute(); - // TASK::CreatePatrolRoute(); - // - // - inline Void TaskPatrol(Ped ped, String patrolRouteName, int alertState, BOOL canChatToPeds, BOOL useHeadLookAt) { return _i(0xBDA5DF49D080FE4E, ped, patrolRouteName, alertState, canChatToPeds, useHeadLookAt); } // 0xbda5df49d080fe4e0xb92e5af6B323 - // Makes the ped run to take cover - inline Void TaskStayInCover(Ped ped) { return _i(0xE5DA8615A6180789, ped); } // 0xe5da8615a61807890xa27a9413B323 - // x, y, z: offset in world coords from some entity. - inline Void AddVehicleSubtaskAttackCoord(Ped ped, float x, float y, float z) { return _i(0x5CF0D8F9BBA0DD75, ped, x, y, z); } // 0x5cf0d8f9bba0dd750x50779a2cB323 - inline Void AddVehicleSubtaskAttackPed(Ped ped, Ped target) { return _i(0x85F462BADC7DA47F, ped, target); } // 0x85f462badc7da47f0x80461113B323 - inline Void TaskVehicleShootAtPed(Ped ped, Ped target, float fireTolerance) { return _i(0x10AB107B887214D8, ped, target, fireTolerance); } // 0x10ab107b887214d80x59677ba0B323 - inline Void TaskVehicleAimAtPed(Ped ped, Ped target) { return _i(0xE41885592B08B097, ped, target); } // 0xe41885592b08b0970x920ae6dbB323 - inline Void TaskVehicleShootAtCoord(Ped ped, float x, float y, float z, float fireTolerance) { return _i(0x5190796ED39C9B6D, ped, x, y, z, fireTolerance); } // 0x5190796ed39c9b6d0xa7aaa4d6B323 - inline Void TaskVehicleAimAtCoord(Ped ped, float x, float y, float z) { return _i(0x447C1E9EF844BC0F, ped, x, y, z); } // 0x447c1e9ef844bc0f0x010f47ceB323 - // Differs from TASK_VEHICLE_DRIVE_TO_COORDS in that it will pick the shortest possible road route without taking one-way streets and other "road laws" into consideration. - // - // WARNING: - // A behaviorFlag value of 0 will result in a clunky, stupid driver! - // - // Recommended settings: - // speed = 30.0f, - // behaviorFlag = 156, - // stoppingRange = 5.0f; - // - // If you simply want to have your driver move to a fixed location, call it only once, or, when necessary in the event of interruption. - // - // If using this to continually follow a Ped who is on foot: You will need to run this in a tick loop. Call it in with the Ped's updated coordinates every 20 ticks or so and you will have one hell of a smart, fast-reacting NPC driver -- provided he doesn't get stuck. If your update frequency is too fast, the Ped may not have enough time to figure his way out of being stuck, and thus, remain stuck. One way around this would be to implement an "anti-stuck" mechanism, which allows the driver to realize he's stuck, temporarily pause the tick, unstuck, then resume the tick. - // - // EDIT: This is being discussed in more detail at http://gtaforums.com/topic/818504-any-idea-on-how-to-make-peds-clever-and-insanely-fast-c/ - inline Void TaskVehicleGotoNavmesh(Ped ped, Vehicle vehicle, float x, float y, float z, float speed, int behaviorFlag, float stoppingRange) { return _i(0x195AEEB13CEFE2EE, ped, vehicle, x, y, z, speed, behaviorFlag, stoppingRange); } // 0x195aeeb13cefe2ee0x55cf3bcdB323 - // movement_speed: mostly 2f, but also 1/1.2f, etc. - // p8: always false - // p9: 2f - // p10: 0.5f - // p11: true - // p12: 0 / 512 / 513, etc. - // p13: 0 - // firing_pattern: ${firing_pattern_full_auto}, 0xC6EE6B4C - inline Void TaskGoToCoordWhileAimingAtCoord(Ped ped, float x, float y, float z, float aimAtX, float aimAtY, float aimAtZ, float moveBlendRatio, BOOL shoot, float targetRadius, float slowDistance, BOOL useNavMesh, int navFlags, BOOL instantBlendToAim, Hash firingPattern) { return _i(0x11315AB3385B8AC0, ped, x, y, z, aimAtX, aimAtY, aimAtZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern); } // 0x11315ab3385b8ac00x1552dc91B323 - inline Void TaskGoToCoordWhileAimingAtEntity(Ped ped, float x, float y, float z, Entity aimAtID, float moveBlendRatio, BOOL shoot, float targetRadius, float slowDistance, BOOL useNavMesh, int navFlags, BOOL instantBlendToAim, Hash firingPattern, int time) { return _i(0xB2A16444EAD9AE47, ped, x, y, z, aimAtID, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern, time); } // 0xb2a16444ead9ae470x9bd52abdB323 - // The ped will walk or run towards goToLocation, aiming towards goToLocation or focusLocation (depending on the aimingFlag) and shooting if shootAtEnemies = true to any enemy in his path. - // - // If the ped is closer than noRoadsDistance, the ped will ignore pathing/navmesh and go towards goToLocation directly. This could cause the ped to get stuck behind tall walls if the goToLocation is on the other side. To aVoid this, use 0.0f and the ped will always use pathing/navmesh to reach his destination. - // - // If the speed is set to 0.0f, the ped will just stand there while aiming, if set to 1.0f he will walk while aiming, 2.0f will run while aiming. - // - // The ped will stop aiming when he is closer than distanceToStopAt to goToLocation. - // - // I still can't figure out what unkTrue is used for. I don't notice any difference if I set it to false but in the decompiled scripts is always true. - // - // I think that unkFlag, like the driving styles, could be a flag that "work as a list of 32 bits converted to a decimal integer. Each bit acts as a flag, and enables or disables a function". What leads me to this conclusion is the fact that in the decompiled scripts, unkFlag takes values like: 0, 1, 5 (101 in binary) and 4097 (4096 + 1 or 1000000000001 in binary). For now, I don't know what behavior enable or disable this possible flag so I leave it at 0. - // - // Note: After some testing, using unkFlag = 16 (0x10) enables the use of sidewalks while moving towards goToLocation. - // - // The aimingFlag takes 2 values: 0 to aim at the focusLocation, 1 to aim at where the ped is heading (goToLocation). - // - // Example: - // - // enum AimFlag - // { - // AimAtFocusLocation, - // AimAtGoToLocation - // }; - // - // Vector3 goToLocation1 = { 996.2867f, 0, -2143.044f, 0, 28.4763f, 0 }; // remember the padding. - // - // Vector3 goToLocation2 = { 990.2867f, 0, -2140.044f, 0, 28.4763f, 0 }; // remember the padding. - // - // Vector3 focusLocation = { 994.3478f, 0, -2136.118f, 0, 29.2463f, 0 }; // the coord z should be a little higher, around +1.0f to aVoid aiming at the ground - // - // // 1st example - // TASK::TaskGoToCoordAndAimAtHatedEntitiesNearCoord(pedHandle, goToLocation1.x, goToLocation1.y, goToLocation1.z, focusLocation.x, focusLocation.y, focusLocation.z, 2.0f /*run*/, true /*shoot*/, 3.0f /*stop at*/, 0.0f /*noRoadsDistance*/, true /*always true*/, 0 /*possible flag*/, AimFlag::AimAtGoToLocation, -957453492 /*FullAuto pattern*/); - // - // // 2nd example - // TASK::TaskGoToCoordAndAimAtHatedEntitiesNearCoord(pedHandle, goToLocation2.x, goToLocation2.y, goToLocation2.z, focusLocation.x, focusLocation.y, focusLocation.z, 1.0f /*walk*/, false /*don't shoot*/, 3.0f /*stop at*/, 0.0f /*noRoadsDistance*/, true /*always true*/, 0 /*possible flag*/, AimFlag::AimAtFocusLocation, -957453492 /*FullAuto pattern*/); - // - // - // 1st example: The ped (pedhandle) will run towards goToLocation1. While running and aiming towards goToLocation1, the ped will shoot on sight to any enemy in his path, using "FullAuto" firing pattern. The ped will stop once he is closer than distanceToStopAt to goToLocation1. - // - // 2nd example: The ped will walk towards goToLocation2. This time, while walking towards goToLocation2 and aiming at focusLocation, the ped will point his weapon on sight to any enemy in his path without shooting. The ped will stop once he is closer than distanceToStopAt to goToLocation2. - inline Void TaskGoToCoordAndAimAtHatedEntitiesNearCoord(Ped pedHandle, float goToLocationX, float goToLocationY, float goToLocationZ, float focusLocationX, float focusLocationY, float focusLocationZ, float speed, BOOL shootAtEnemies, float distanceToStopAt, float noRoadsDistance, BOOL useNavMesh, int navFlags, int taskFlags, Hash firingPattern) { return _i(0xA55547801EB331FC, pedHandle, goToLocationX, goToLocationY, goToLocationZ, focusLocationX, focusLocationY, focusLocationZ, speed, shootAtEnemies, distanceToStopAt, noRoadsDistance, useNavMesh, navFlags, taskFlags, firingPattern); } // 0xa55547801eb331fc0x3f91358eB323 - inline Void TaskGoToEntityWhileAimingAtCoord(Ped ped, Entity entity, float aimX, float aimY, float aimZ, float moveBlendRatio, BOOL shoot, float targetRadius, float slowDistance, BOOL useNavMesh, BOOL instantBlendToAim, Hash firingPattern) { return _i(0x04701832B739DCE5, ped, entity, aimX, aimY, aimZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); } // 0x04701832b739dce50xd896cd82B323 - // shootatEntity: - // If true, peds will shoot at Entity till it is dead. - // If false, peds will just walk till they reach the entity and will cease shooting. - inline Void TaskGoToEntityWhileAimingAtEntity(Ped ped, Entity entityToWalkTo, Entity entityToAimAt, float speed, BOOL shootatEntity, float targetRadius, float slowDistance, BOOL useNavMesh, BOOL instantBlendToAim, Hash firingPattern) { return _i(0x97465886D35210E9, ped, entityToWalkTo, entityToAimAt, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); } // 0x97465886d35210e90x68e36b7aB323 - // Makes the ped ragdoll like when falling from a great height - inline Void SetHighFallTask(Ped ped, int minTime, int maxTime, int entryType) { return _i(0x8C825BDC7741D37C, ped, minTime, maxTime, entryType); } // 0x8c825bdc7741d37c0xbbb26172B323 - // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - // For a full list of the points, see here: goo.gl/wIH0vn - // - // Max number of loaded recordings is 32. - inline Void RequestWaypointRecording(String name) { return _i(0x9EEFB62EB27B5792, name); } // 0x9eefb62eb27b57920xafabfb5dB323 - // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - inline BOOL GetIsWaypointRecordingLoaded(String name) { return _i(0xCB4E8BE8A0063C5D, name); } // 0xcb4e8be8a0063c5d0x87125f5dB323 - // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - inline Void RemoveWaypointRecording(String name) { return _i(0xFF1B8B4AA1C25DC8, name); } // 0xff1b8b4aa1c25dc80x624530b0B323 - // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - // For a full list of the points, see here: goo.gl/wIH0vn - inline BOOL WaypointRecordingGetNumPoints(String name, int* points) { return _i(0x5343532C01A07234, name, points); } // 0x5343532c01a072340xf5f9b71eB323 - // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - // For a full list of the points, see here: goo.gl/wIH0vn - inline BOOL WaypointRecordingGetCoord(String name, int point, Vector3* coord) { return _i(0x2FB897405C90B361, name, point, coord); } // 0x2fb897405c90b3610x19266913B323 - // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - inline float WaypointRecordingGetSpeedAtPoint(String name, int point) { return _i(0x005622AEBC33ACA9, name, point); } // 0x005622aebc33aca90xc765633aB323 - // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - // For a full list of the points, see here: goo.gl/wIH0vn - inline BOOL WaypointRecordingGetClosestWaypoint(String name, float x, float y, float z, int* point) { return _i(0xB629A298081F876F, name, x, y, z, point); } // 0xb629a298081f876f0xc4cd35afB323 - inline Void TaskFollowWaypointRecording(Ped ped, String name, int p2, int p3, int p4) { return _i(0x0759591819534F7B, ped, name, p2, p3, p4); } // 0x0759591819534f7b0xadf9904dB323 - inline BOOL IsWaypointPlaybackGoingOnForPed(Ped ped) { return _i(0xE03B3F2D3DC59B64, ped); } // 0xe03b3f2d3dc59b640x85b7725fB323 - inline int GetPedWaypointProgress(Ped ped) { return _i(0x2720AAA75001E094, ped); } // 0x2720aaa75001e0940x3595b104B323 - inline float GetPedWaypointDistance(Any p0) { return _i(0xE6A877C64CAF1BC5, p0); } // 0xe6a877c64caf1bc50x084b35b0B323 - inline BOOL SetPedWaypointRouteOffset(Ped ped, float x, float y, float z) { return _i(0xED98E10B0AFCE4B4, ped, x, y, z); } // 0xed98e10b0afce4b40xf867f747B323 - inline float GetWaypointDistanceAlongRoute(String name, int point) { return _i(0xA5B769058763E497, name, point); } // 0xa5b769058763e4970xe8422ac4B323 - inline BOOL WaypointPlaybackGetIsPaused(Any p0) { return _i(0x701375A7D43F01CB, p0); } // 0x701375a7d43f01cb0xa6bb5717B323 - inline Void WaypointPlaybackPause(Any p0, BOOL p1, BOOL p2) { return _i(0x0F342546AA06FED5, p0, p1, p2); } // 0x0f342546aa06fed50xfe39ecf8B323 - inline Void WaypointPlaybackResume(Any p0, BOOL p1, Any p2, Any p3) { return _i(0x244F70C84C547D2D, p0, p1, p2, p3); } // 0x244f70c84c547d2d0x50f392efB323 - inline Void WaypointPlaybackOverrideSpeed(Any p0, float p1, BOOL p2) { return _i(0x7D7D2B47FA788E85, p0, p1, p2); } // 0x7d7d2b47fa788e850x23e6ba96B323 - inline Void WaypointPlaybackUseDefaultSpeed(Any p0) { return _i(0x6599D834B12D0800, p0); } // 0x6599d834b12d08000x1bbb2cacB323 - inline Void UseWaypointRecordingAsAssistedMovementRoute(String name, BOOL p1, float p2, float p3) { return _i(0x5A353B8E6B1095B5, name, p1, p2, p3); } // 0x5a353b8e6b1095b50x4dfd5fecB323 - inline Void WaypointPlaybackStartAimingAtPed(Ped ped, Ped target, BOOL p2) { return _i(0x20E330937C399D29, ped, target, p2); } // 0x20e330937c399d290x75e60cf6B323 - inline Void WaypointPlaybackStartAimingAtCoord(Ped ped, float x, float y, float z, BOOL p4) { return _i(0x8968400D900ED8B3, ped, x, y, z, p4); } // 0x8968400d900ed8b30xf120a34eB323 - inline Void WaypointPlaybackStartShootingAtPed(Ped ped, Ped ped2, BOOL p2, BOOL p3) { return _i(0xE70BA7B90F8390DC, ped, ped2, p2, p3); } // 0xe70ba7b90f8390dc0xbd5f0eb8B323 - inline Void WaypointPlaybackStartShootingAtCoord(Ped ped, float x, float y, float z, BOOL p4, Hash firingPattern) { return _i(0x057A25CFCC9DB671, ped, x, y, z, p4, firingPattern); } // 0x057a25cfcc9db6710xcddb44d5B323 - inline Void WaypointPlaybackStopAimingOrShooting(Ped ped) { return _i(0x47EFA040EBB8E2EA, ped); } // 0x47efa040ebb8e2ea0x6d7cf40cB323 - // Routes: "1_FIBStairs", "2_FIBStairs", "3_FIBStairs", "4_FIBStairs", "5_FIBStairs", "5_TowardsFire", "6a_FIBStairs", "7_FIBStairs", "8_FIBStairs", "Aprtmnt_1", "AssAfterLift", "ATM_1", "coroner2", "coroner_stairs", "f5_jimmy1", "fame1", "family5b", "family5c", "Family5d", "family5d", "FIB_Glass1", "FIB_Glass2", "FIB_Glass3", "finaBroute1A", "finalb1st", "finalB1sta", "finalbround", "finalbroute2", "Hairdresser1", "jan_foyet_ft_door", "Jo_3", "Lemar1", "Lemar2", "mansion_1", "Mansion_1", "pols_1", "pols_2", "pols_3", "pols_4", "pols_5", "pols_6", "pols_7", "pols_8", "Pro_S1", "Pro_S1a", "Pro_S2", "Towards_case", "trev_steps", "tunrs1", "tunrs2", "tunrs3", "Wave01457s" - inline Void AssistedMovementRequestRoute(String route) { return _i(0x817268968605947A, route); } // 0x817268968605947a0x48262edaB323 - inline Void AssistedMovementRemoveRoute(String route) { return _i(0x3548536485DD792B, route); } // 0x3548536485dd792b0xb3cec06fB323 - inline BOOL AssistedMovementIsRouteLoaded(String route) { return _i(0x60F9A4393A21F741, route); } // 0x60f9a4393a21f7410x79b067afB323 - inline Void AssistedMovementSetRouteProperties(String route, int props) { return _i(0xD5002D78B7162E1B, route, props); } // 0xd5002d78b7162e1b0x01caafccB323 - inline Void AssistedMovementOverrideLoadDistanceThisFrame(float dist) { return _i(0x13945951E16EF912, dist); } // 0x13945951e16ef9120x8fb923ecB323 - // - // - // p2 = Waypoint recording string (found in update\update.rpf\x64\levels\gta5\waypointrec.rpf - // p3 = 786468 - // p4 = 0 - // p5 = 16 - // p6 = -1 (angle?) - // p7/8/9 = usually v3.zero - // p10 = bool (repeat?) - // p11 = 1073741824 - // - // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - inline Void TaskVehicleFollowWaypointRecording(Ped ped, Vehicle vehicle, String WPRecording, int p3, int p4, int p5, int p6, float p7, BOOL p8, float p9) { return _i(0x3123FAA6DB1CF7ED, ped, vehicle, WPRecording, p3, p4, p5, p6, p7, p8, p9); } // 0x3123faa6db1cf7ed0x959818b6B323 - inline BOOL IsWaypointPlaybackGoingOnForVehicle(Vehicle vehicle) { return _i(0xF5134943EA29868C, vehicle); } // 0xf5134943ea29868c0x80dd15dbB323 - inline int GetVehicleWaypointProgress(Vehicle vehicle) { return _i(0x9824CFF8FC66E159, vehicle); } // 0x9824cff8fc66e1590xd3ccf64eB323 - inline int GetVehicleWaypointTargetPoint(Vehicle vehicle) { return _i(0x416B62AC8B9E5BBD, vehicle); } // 0x416b62ac8b9e5bbd0x81049608B323 - inline Void VehicleWaypointPlaybackPause(Vehicle vehicle) { return _i(0x8A4E6AC373666BC5, vehicle); } // 0x8a4e6ac373666bc50x7c00b415B323 - inline Void VehicleWaypointPlaybackResume(Vehicle vehicle) { return _i(0xDC04FCAA7839D492, vehicle); } // 0xdc04fcaa7839d4920xbeb14c82B323 - inline Void VehicleWaypointPlaybackUseDefaultSpeed(Vehicle vehicle) { return _i(0x5CEB25A7D2848963, vehicle); } // 0x5ceb25a7d28489630x923c3aa4B323 - inline Void VehicleWaypointPlaybackOverrideSpeed(Vehicle vehicle, float speed) { return _i(0x121F0593E0A431D7, vehicle, speed); } // 0x121f0593e0a431d70xbe1e7bb4B323 - // I cant believe I have to define this, this is one of the best natives. - // - // It makes the ped ignore basically all shocking events around it. Occasionally the ped may comment or gesture, but other than that they just continue their daily activities. This includes shooting and wounding the ped. And - most importantly - they do not flee. - // - // Since it is a task, every time the native is called the ped will stop for a moment. - inline Void TaskSetBlockingOfNonTemporaryEvents(Ped ped, BOOL toggle) { return _i(0x90D2156198831D69, ped, toggle); } // 0x90d2156198831d690x1b54fb6bB323 - // p2 always false - // - // [30/03/2017] ins1de : - // - // See ForcePedMotionState - inline Void TaskForceMotionState(Ped ped, Hash state, BOOL forceRestart) { return _i(0x4F056E1AFFEF17AB, ped, state, forceRestart); } // 0x4f056e1affef17ab0xcad2ef77B323 - // Example: - // TASK::TaskMoveNetworkByName(PLAYER::PlayerPedId(), "arm_wrestling_sweep_paired_a_rev3", 0.0f, true, "mini@arm_wrestling", 0); - inline Void TaskMoveNetworkByName(Ped ped, String task, float multiplier, BOOL allowOverrideCloneUpdate, String animDict, int flags) { return _i(0x2D537BA194896636, ped, task, multiplier, allowOverrideCloneUpdate, animDict, flags); } // 0x2d537ba1948966360x6f5d215fB323 - // Example: - // TASK::TaskMoveNetworkAdvancedByName(PLAYER::PlayerPedId(), "minigame_tattoo_michael_parts", 324.13f, 181.29f, 102.6f, 0.0f, 0.0f, 22.32f, 2, 0, false, 0, 0); - inline Void TaskMoveNetworkAdvancedByName(Ped ped, String network, float x, float y, float z, float rotX, float rotY, float rotZ, int rotOrder, float blendDuration, BOOL allowOverrideCloneUpdate, String animDict, int flags) { return _i(0xD5B35BEA41919ACB, ped, network, x, y, z, rotX, rotY, rotZ, rotOrder, blendDuration, allowOverrideCloneUpdate, animDict, flags); } // 0xd5b35bea41919acb0x71a5c5dbB323 - // Used only once in the scripts (am_mp_nightclub) - inline Void TaskMoveNetworkByNameWithInitParams(Ped ped, String network, int* initialParameters, float blendDuration, BOOL allowOverrideCloneUpdate, String animDict, int flags) { return _i(0x3D45B0B355C5E0C9, ped, network, initialParameters, blendDuration, allowOverrideCloneUpdate, animDict, flags); } // 0x3d45b0b355c5e0c9B1493 - inline Void TaskMoveNetworkAdvancedByNameWithInitParams(Ped ped, String network, int* initialParameters, float x, float y, float z, float rotX, float rotY, float rotZ, int rotOrder, float blendDuration, BOOL allowOverrideCloneUpdate, String dictionary, int flags) { return _i(0x29682E2CCF21E9B5, ped, network, initialParameters, x, y, z, rotX, rotY, rotZ, rotOrder, blendDuration, allowOverrideCloneUpdate, dictionary, flags); } // 0x29682e2ccf21e9b5B1868 - inline BOOL IsTaskMoveNetworkActive(Ped ped) { return _i(0x921CE12C489C4C41, ped); } // 0x921ce12c489c4c410x902656ebB323 - inline BOOL IsTaskMoveNetworkReadyForTransition(Ped ped) { return _i(0x30ED88D5E0C56A37, ped); } // 0x30ed88d5e0c56a370x92fdbae6B323 - inline BOOL RequestTaskMoveNetworkStateTransition(Ped ped, String name) { return _i(0xD01015C7316AE176, ped, name); } // 0xd01015c7316ae1760x885724deB323 - // Used only once in the scripts (fm_mission_controller) like so: - // - // TASK::SetExpectedCloneNextTaskMoveNetworkState(iLocal_3160, "Cutting"); - inline BOOL SetExpectedCloneNextTaskMoveNetworkState(Ped ped, String state) { return _i(0xAB13A5565480B6D9, ped, state); } // 0xab13a5565480b6d90x1e58a7adB323 - inline String GET_TASK_MOVE_NETWORK_STATE(Ped ped) { return _i(0x717E4D1F2048376D, ped); } // 0x717E4D1F2048376D 0x96C0277B b323 - inline Void SetTaskMoveNetworkAnimSet(Ped ped, Hash clipSet, Hash variableClipSet) { return _i(0x8423541E8B3A1589, ped, clipSet, variableClipSet); } // 0x8423541e8b3a1589B1493 - // signalName - "Phase", "Wobble", "x_axis","y_axis","introphase","speed". - // p2 - From what i can see it goes up to 1f (maybe). - // - // Example: TASK::SetTaskMoveNetworkSignalFloat(PLAYER::PlayerPedId(), "Phase", 0.5); - inline Void SetTaskMoveNetworkSignalFloat(Ped ped, String signalName, float value) { return _i(0xD5BB4025AE449A4E, ped, signalName, value); } // 0xd5bb4025ae449a4e0xa79be783B323 - inline Void SetTaskMoveNetworkSignalLocalFloat(Ped ped, String signalName, float value) { return _i(0x373EF409B82697A3, ped, signalName, value); } // 0x373ef409b82697a3B1493 - inline Void SetTaskMoveNetworkSignalFloatLerpRate(Ped ped, String signalName, float value) { return _i(0x8634CEF2522D987B, ped, signalName, value); } // 0x8634cef2522d987bB1493 - inline Void SetTaskMoveNetworkSignalBool(Ped ped, String signalName, BOOL value) { return _i(0xB0A6CFD2C69C1088, ped, signalName, value); } // 0xb0a6cfd2c69c10880xf3538041B323 - inline float GetTaskMoveNetworkSignalFloat(Ped ped, String signalName) { return _i(0x44AB0B3AFECCE242, ped, signalName); } // 0x44ab0b3afecce242B1493 - inline BOOL GetTaskMoveNetworkSignalBool(Ped ped, String signalName) { return _i(0xA7FFBA498E4AAF67, ped, signalName); } // 0xa7ffba498e4aaf670x1ebb6f3dB323 - inline BOOL GetTaskMoveNetworkEvent(Ped ped, String eventName) { return _i(0xB4F47213DF45A64C, ped, eventName); } // 0xb4f47213df45a64c0x72fa5ef2B323 - // Doesn't actually return anything. - inline BOOL SetTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed(Ped ped, BOOL enable) { return _i(0x0FFB3C758E8C07B9, ped, enable); } // 0x0ffb3c758e8c07b9B2060 - inline BOOL IsMoveBlendRatioStill(Ped ped) { return _i(0x349CE7B56DAFD95C, ped); } // 0x349ce7b56dafd95c0xe9daf877B323 - inline BOOL IsMoveBlendRatioWalking(Ped ped) { return _i(0xF133BBBE91E1691F, ped); } // 0xf133bbbe91e1691f0xd21639a8B323 - inline BOOL IsMoveBlendRatioRunning(Ped ped) { return _i(0xD4D8636C0199A939, ped); } // 0xd4d8636c0199a9390xe76a2353B323 - inline BOOL IsMoveBlendRatioSprinting(Ped ped) { return _i(0x24A2AD74FA9814E2, ped); } // 0x24a2ad74fa9814e20xdd616893B323 - inline BOOL IsPedStill(Ped ped) { return _i(0xAC29253EEF8F0180, ped); } // 0xac29253eef8f01800x09e3418dB323 - inline BOOL IsPedWalking(Ped ped) { return _i(0xDE4C184B2B9B071A, ped); } // 0xde4c184b2b9b071a0x4b865c4aB323 - inline BOOL IsPedRunning(Ped ped) { return _i(0xC5286FFC176F28A2, ped); } // 0xc5286ffc176f28a20xe9a5578fB323 - inline BOOL IsPedSprinting(Ped ped) { return _i(0x57E457CD2C0FC168, ped); } // 0x57e457cd2c0fc1680x4f3e0633B323 - // What's strafing? - inline BOOL IsPedStrafing(Ped ped) { return _i(0xE45B7F222DE47E09, ped); } // 0xe45b7f222de47e090xefeed13cB323 - // TASK::TaskSynchronizedScene(ped, scene, "creatures@rottweiler@in_vehicle@std_car", "get_in", 1000.0, -8.0, 4, 0, 0x447a0000, 0); - // - // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - inline Void TaskSynchronizedScene(Ped ped, int scene, String animDictionary, String animationName, float blendIn, float blendOut, int flags, int ragdollBlockingFlags, float moverBlendDelta, int ikFlags) { return _i(0xEEA929141F699854, ped, scene, animDictionary, animationName, blendIn, blendOut, flags, ragdollBlockingFlags, moverBlendDelta, ikFlags); } // 0xeea929141f6998540x4f217e7bB323 - inline Void TaskAgitatedActionConfrontResponse(Ped ped, Ped ped2) { return _i(0x19D1B791CB3670FE, ped, ped2); } // 0x19d1b791cb3670feB877 - // This function is called on peds in vehicles. - // - // anim: animation name - // p2, p3, p4: "sweep_low", "sweep_med" or "sweep_high" - // p5: no idea what it does but is usually -1 - inline Void TaskSweepAimEntity(Ped ped, String animDict, String lowAnimName, String medAnimName, String hiAnimName, int runtime, Entity targetEntity, float turnRate, float blendInDuration) { return _i(0x2047C02158D6405A, ped, animDict, lowAnimName, medAnimName, hiAnimName, runtime, targetEntity, turnRate, blendInDuration); } // 0x2047c02158d6405a0x4d210467B323 - inline Void UpdateTaskSweepAimEntity(Ped ped, Entity entity) { return _i(0xE4973DBDBE6E44B3, ped, entity); } // 0xe4973dbdbe6e44b30xf65f0f4fB323 - inline Void TaskSweepAimPosition(Ped ped, String animDict, String lowAnimName, String medAnimName, String hiAnimName, int runtime, float x, float y, float z, float turnRate, float blendInDuration) { return _i(0x7AFE8FDC10BC07D2, ped, animDict, lowAnimName, medAnimName, hiAnimName, runtime, x, y, z, turnRate, blendInDuration); } // 0x7afe8fdc10bc07d20x1683fe66B323 - inline Void UpdateTaskSweepAimPosition(Ped ped, float x, float y, float z) { return _i(0xBB106883F5201FC4, ped, x, y, z); } // 0xbb106883f5201fc40x6345ec80B323 - // Example from "me_amanda1.ysc.c4": - // TASK::TaskArrestPed(l_19F /* This is a Ped */ , PLAYER::PlayerPedId()); - // - // Example from "armenian1.ysc.c4": - // if (!PED::IsPedInjured(l_B18[0/*1*/])) { - // TASK::TaskArrestPed(l_B18[0/*1*/], PLAYER::PlayerPedId()); - // } - // - // I would love to have time to experiment to see if a player Ped can arrest another Ped. Might make for a good cop mod. - // - // - // Looks like only the player can be arrested this way. Peds react and try to arrest you if you task them, but the player charater doesn't do anything if tasked to arrest another ped. - inline Void TaskArrestPed(Ped ped, Ped target) { return _i(0xF3B9A78A178572B1, ped, target); } // 0xf3b9a78a178572b10xbc0f153dB323 - inline BOOL IsPedRunningArrestTask(Ped ped) { return _i(0x3DC52677769B4AE0, ped); } // 0x3dc52677769b4ae00x6942db7aB323 - // This function is hard-coded to always return 0. - inline BOOL IsPedBeingArrested(Ped ped) { return _i(0x90A09F3A45FED688, ped); } // 0x90a09f3a45fed6880x5ff6c2edB323 - inline Void UncuffPed(Ped ped) { return _i(0x67406F2C8F87FC4F, ped); } // 0x67406f2c8f87fc4f0xa23a1d61B323 - inline BOOL IsPedCuffed(Ped ped) { return _i(0x74E559B3BC910685, ped); } // 0x74e559b3bc9106850x511ce741B323 + // Stand still (?) + inline Void TaskPause(Ped ped, int ms) { return _i(0xE73A266DB0CA9042, ped, ms); } // 0xe73a266db0ca90420x17a64668B323 + // Makes the specified ped stand still for (time) milliseconds. + inline Void TaskStandStill(Ped ped, int time) { return _i(0x919BE13EED931959, ped, time); } // 0x919be13eed9319590x6f80965dB323 + // Definition is wrong. This has 4 parameters (Not sure when they were added. v350 has 2, v678 has 4). + // + // v350: Ped ped, BOOL unused + // v678: Ped ped, BOOL unused, BOOL flag1, BOOL flag2 + // + // flag1 = super jump, flag2 = do nothing if flag1 is false and doubles super jump height if flag1 is true. + inline Void TaskJump(Ped ped, BOOL usePlayerLaunchForce, BOOL doSuperJump, BOOL useFullSuperJumpForce) { return _i(0x0AE4086104E067B1, ped, usePlayerLaunchForce, doSuperJump, useFullSuperJumpForce); } // 0x0ae4086104e067b10x0356e3ceB323 + inline Void TaskCower(Ped ped, int duration) { return _i(0x3EB1FE9E8E908E15, ped, duration); } // 0x3eb1fe9e8e908e150x9cf1c19bB323 + // In the scripts, p3 was always -1. + // + // p3 seems to be duration or timeout of turn animation. + // Also facingPed can be 0 or -1 so ped will just raise hands up. + inline Void TaskHandsUp(Ped ped, int duration, Ped facingPed, int timeToFacePed, int flags) { return _i(0xF2EAB31979A7F910, ped, duration, facingPed, timeToFacePed, flags); } // 0xf2eab31979a7f9100x8dcc19c5B323 + inline Void UpdateTaskHandsUpDuration(Ped ped, int duration) { return _i(0xA98FCAFD7893C834, ped, duration); } // 0xa98fcafd7893c8340x3aa39be9B323 + // The given ped will try to open the nearest door to 'seat'. + // Example: telling the ped to open the door for the driver seat does not necessarily mean it will open the driver door, it may choose to open the passenger door instead if that one is closer. + inline Void TaskOpenVehicleDoor(Ped ped, Vehicle vehicle, int timeOut, int seat, float speed) { return _i(0x965791A9A488A062, ped, vehicle, timeOut, seat, speed); } // 0x965791a9a488a0620x8ee06bf4B323 + // speed 1.0 = walk, 2.0 = run + // p5 1 = normal, 3 = teleport to vehicle, 16 = teleport directly into vehicle + // p6 is always 0 + // + // Usage of seat + // -1 = driver + // 0 = passenger + // 1 = left back seat + // 2 = right back seat + // 3 = outside left + // 4 = outside right + inline Void TaskEnterVehicle(Ped ped, Vehicle vehicle, int timeout, int seat, float speed, int flag, String overrideEntryClipsetName, Any p7) { return _i(0xC20E50AA46D09CA8, ped, vehicle, timeout, seat, speed, flag, overrideEntryClipsetName, p7); } // 0xc20e50aa46d09ca80xb8689b4eB323 + // Flags from decompiled scripts: + // 0 = normal exit and closes door. + // 1 = normal exit and closes door. + // 16 = teleports outside, door kept closed. + // 64 = normal exit and closes door, maybe a bit slower animation than 0. + // 256 = normal exit but does not close the door. + // 4160 = ped is throwing himself out, even when the vehicle is still. + // 262144 = ped moves to passenger seat first, then exits normally + // + // Others to be tried out: 320, 512, 131072. + inline Void TaskLeaveVehicle(Ped ped, Vehicle vehicle, int flags) { return _i(0xD3DBCE61A490BE02, ped, vehicle, flags); } // 0xd3dbce61a490be020x7b1141c6B323 + inline Void TaskGetOffBoat(Ped ped, Vehicle boat) { return _i(0x9C00E77AF14B2DFF, ped, boat); } // 0x9c00e77af14b2dff0x4293601fB323 + inline Void TaskSkyDive(Ped ped, BOOL instant) { return _i(0x601736CFE536B0A0, ped, instant); } // 0x601736cfe536b0a00xd3874afaB323 + // Second parameter is unused. + // + // second parameter was for jetpack in the early stages of gta and the hard coded code is now removed + inline Void TaskParachute(Ped ped, BOOL giveParachuteItem, BOOL instant) { return _i(0xD2F1C53C97EE81AB, ped, giveParachuteItem, instant); } // 0xd2f1c53c97ee81ab0xec3060a2B323 + // makes ped parachute to coords x y z. Works well with PATHFIND::GetSafeCoordForPed + inline Void TaskParachuteToTarget(Ped ped, float x, float y, float z) { return _i(0xB33E291AFA6BD03A, ped, x, y, z); } // 0xb33e291afa6bd03a0xe0104d6cB323 + inline Void SetParachuteTaskTarget(Ped ped, float x, float y, float z) { return _i(0xC313379AF0FCEDA7, ped, x, y, z); } // 0xc313379af0fceda70x6ed3ad81B323 + inline Void SetParachuteTaskThrust(Ped ped, float thrust) { return _i(0x0729BAC1B8C64317, ped, thrust); } // 0x0729bac1b8c643170xd07c8aaaB323 + // minHeightAboveGround: the minimum height above ground the heli must be at before the ped can start rappelling + // + // Only appears twice in the scripts. + // + // TASK::TaskRappelFromHeli(PLAYER::PlayerPedId(), 10.0f); + // TASK::TaskRappelFromHeli(a_0, 10.0f); + inline Void TaskRappelFromHeli(Ped ped, float minHeightAboveGround) { return _i(0x09693B0312F91649, ped, minHeightAboveGround); } // 0x09693b0312f916490x2c7adb93B323 + // info about driving modes: https://gtaforums.com/topic/822314-guide-driving-styles/ + inline Void TaskVehicleDriveToCoord(Ped ped, Vehicle vehicle, float x, float y, float z, float speed, Any p6, Hash vehicleModel, int drivingMode, float stopRange, float straightLineDistance) { return _i(0xE2A2AA2F659D77A7, ped, vehicle, x, y, z, speed, p6, vehicleModel, drivingMode, stopRange, straightLineDistance); } // 0xe2a2aa2f659d77a70xe4ac0387B323 + inline Void TaskVehicleDriveToCoordLongrange(Ped ped, Vehicle vehicle, float x, float y, float z, float speed, int driveMode, float stopRange) { return _i(0x158BB33F920D360C, ped, vehicle, x, y, z, speed, driveMode, stopRange); } // 0x158bb33f920d360c0x1490182aB323 + inline Void TaskVehicleDriveWander(Ped ped, Vehicle vehicle, float speed, int drivingStyle) { return _i(0x480142959D337D00, ped, vehicle, speed, drivingStyle); } // 0x480142959d337d000x36ec0eb0B323 + // p6 always -1 + // p7 always 10.0 + // p8 always 1 + inline Void TaskFollowToOffsetOfEntity(Ped ped, Entity entity, float offsetX, float offsetY, float offsetZ, float movementSpeed, int timeout, float stoppingRange, BOOL persistFollowing) { return _i(0x304AE42E357B8C7E, ped, entity, offsetX, offsetY, offsetZ, movementSpeed, timeout, stoppingRange, persistFollowing); } // 0x304ae42e357b8c7e0x2df5a6acB323 + inline Void TaskGoStraightToCoord(Ped ped, float x, float y, float z, float speed, int timeout, float targetHeading, float distanceToSlide) { return _i(0xD76B57B44F1E6F8B, ped, x, y, z, speed, timeout, targetHeading, distanceToSlide); } // 0xd76b57b44f1e6f8b0x80a9e7a7B323 + inline Void TaskGoStraightToCoordRelativeToEntity(Ped ped, Entity entity, float x, float y, float z, float moveBlendRatio, int time) { return _i(0x61E360B7E040D12E, ped, entity, x, y, z, moveBlendRatio, time); } // 0x61e360b7e040d12e0xd26cac68B323 + // Makes the specified ped achieve the specified heading. + // + // pedHandle: The handle of the ped to assign the task to. + // heading: The desired heading. + // timeout: The time, in milliseconds, to allow the task to complete. If the task times out, it is cancelled, and the ped will stay at the heading it managed to reach in the time. + inline Void TaskAchieveHeading(Ped ped, float heading, int timeout) { return _i(0x93B93A37987F1F3D, ped, heading, timeout); } // 0x93b93a37987f1f3d0x0a0e9b42B323 + // MulleKD19: Clears the current point route. Call this before TaskExtendRoute and TaskFollowPointRoute. + inline Void TaskFlushRoute() { return _i(0x841142A1376E9006); } // 0x841142a1376e90060x34219154B323 + // MulleKD19: Adds a new point to the current point route. Call TaskFlushRoute before the first call to this. Call TaskFollowPointRoute to make the Ped go the route. + // + // A maximum of 8 points can be added. + inline Void TaskExtendRoute(float x, float y, float z) { return _i(0x1E7889778264843A, x, y, z); } // 0x1e7889778264843a0x43271f69B323 + // MulleKD19: Makes the ped go on the created point route. + // + // ped: The ped to give the task to. + // speed: The speed to move at in m/s. + // int: Unknown. Can be 0, 1, 2 or 3. + // + // Example: + // TaskFlushRoute(); + // TaskExtendRoute(0f, 0f, 70f); + // TaskExtendRoute(10f, 0f, 70f); + // TaskExtendRoute(10f, 10f, 70f); + // TaskFollowPointRoute(GetPlayerPed(), 1f, 0); + inline Void TaskFollowPointRoute(Ped ped, float speed, int mode) { return _i(0x595583281858626E, ped, speed, mode); } // 0x595583281858626e0xb837c816B323 + // The entity will move towards the target until time is over (duration) or get in target's range (distance). p5 and p6 are unknown, but you could leave p5 = 1073741824 or 100 or even 0 (didn't see any difference but on the decompiled scripts, they use 1073741824 mostly) and p6 = 0 + // + // Note: I've only tested it on entity -> ped and target -> vehicle. It could work differently on other entities, didn't try it yet. + // + // Example: TASK::TaskGoToEntity(pedHandle, vehicleHandle, 5000, 4.0, 100, 1073741824, 0) + // + // Ped will run towards the vehicle for 5 seconds and stop when time is over or when he gets 4 meters(?) around the vehicle (with duration = -1, the task duration will be ignored). + // + // enum EGOTO_ENTITY_SCRIPT_FLAGS + // { + // EGOTO_ENTITY_NEVER_SLOW_FOR_PATH_LENGTH = 0x01, + // }; + inline Void TaskGoToEntity(Entity entity, Entity target, int duration, float distance, float moveBlendRatio, float slowDownDistance, int flags) { return _i(0x6A071245EB0D1882, entity, target, duration, distance, moveBlendRatio, slowDownDistance, flags); } // 0x6a071245eb0d18820x374827c2B323 + // Makes the specified ped flee the specified distance from the specified position. + inline Void TaskSmartFleeCoord(Ped ped, float x, float y, float z, float distance, int time, BOOL preferPavements, BOOL quitIfOutOfRange) { return _i(0x94587F17E9C365D5, ped, x, y, z, distance, time, preferPavements, quitIfOutOfRange); } // 0x94587f17e9c365d50xb2e686fcB323 + // Makes a ped run away from another ped (fleeTarget). + // + // distance = ped will flee this distance. + // fleeTime = ped will flee for this amount of time, set to "-1" to flee forever + inline Void TaskSmartFleePed(Ped ped, Ped fleeTarget, float safeDistance, int fleeTime, BOOL preferPavements, BOOL updateToNearestHatedPed) { return _i(0x22B0D0E37CCB840D, ped, fleeTarget, safeDistance, fleeTime, preferPavements, updateToNearestHatedPed); } // 0x22b0d0e37ccb840d0xe52eb560B323 + inline Void TaskReactAndFleePed(Ped ped, Ped fleeTarget) { return _i(0x72C896464915D1B1, ped, fleeTarget); } // 0x72c896464915d1b10x8a632bd8B323 + inline Void TaskShockingEventReact(Ped ped, int eventHandle) { return _i(0x452419CBD838065B, ped, eventHandle); } // 0x452419cbd838065b0x9bd00acfB323 + inline Void TaskWanderInArea(Ped ped, float x, float y, float z, float radius, float minimalLength, float timeBetweenWalks) { return _i(0xE054346CA3A0F315, ped, x, y, z, radius, minimalLength, timeBetweenWalks); } // 0xe054346ca3a0f3150xc6981fb9B323 + // Makes ped walk around the area. + // + // set p1 to 10.0f and p2 to 10 if you want the ped to walk anywhere without a duration. + inline Void TaskWanderStandard(Ped ped, float heading, int flags) { return _i(0xBB9CE077274F6A1B, ped, heading, flags); } // 0xbb9ce077274f6a1b0xaf59151aB323 + inline Void TaskWanderSpecific(Ped ped, String conditionalAnimGroupStr, String conditionalAnimStr, float heading) { return _i(0x6919A2F136426098, ped, conditionalAnimGroupStr, conditionalAnimStr, heading); } // 0x6919a2f136426098B1868 + // Modes: + // 0 - ignore heading + // 1 - park forward + // 2 - park backwards + // + // Depending on the angle of approach, the vehicle can park at the specified heading or at its exact opposite (-180) angle. + // + // Radius seems to define how close the vehicle has to be -after parking- to the position for this task considered completed. If the value is too small, the vehicle will try to park again until it's exactly where it should be. 20.0 Works well but lower values don't, like the radius is measured in centimeters or something. + inline Void TaskVehiclePark(Ped ped, Vehicle vehicle, float x, float y, float z, float heading, int mode, float radius, BOOL keepEngineOn) { return _i(0x0F3E34E968EA374E, ped, vehicle, x, y, z, heading, mode, radius, keepEngineOn); } // 0x0f3e34e968ea374e0x5c85ff90B323 + // known "killTypes" are: "AR_stealth_kill_knife" and "AR_stealth_kill_a". + inline Void TaskStealthKill(Ped killer, Ped target, Hash stealthKillActionResultHash, float desiredMoveBlendRatio, int stealthFlags) { return _i(0xAA5DC05579D60BD9, killer, target, stealthKillActionResultHash, desiredMoveBlendRatio, stealthFlags); } // 0xaa5dc05579d60bd90x0d64c2faB323 + inline Void TaskPlantBomb(Ped ped, float x, float y, float z, float heading) { return _i(0x965FEC691D55E9BF, ped, x, y, z, heading); } // 0x965fec691d55e9bf0x33457535B323 + // If no timeout, set timeout to -1. + inline Void TaskFollowNavMeshToCoord(Ped ped, float x, float y, float z, float moveBlendRatio, int time, float targetRadius, int flags, float targetHeading) { return _i(0x15D3A79D4E44B913, ped, x, y, z, moveBlendRatio, time, targetRadius, flags, targetHeading); } // 0x15d3a79d4e44b9130xfe4a10d9B323 + inline Void TaskFollowNavMeshToCoordAdvanced(Ped ped, float x, float y, float z, float moveBlendRatio, int time, float targetRadius, int flags, float slideToCoordHeading, float maxSlopeNavigable, float clampMaxSearchDistance, float targetHeading) { return _i(0x17F58B88D085DBAC, ped, x, y, z, moveBlendRatio, time, targetRadius, flags, slideToCoordHeading, maxSlopeNavigable, clampMaxSearchDistance, targetHeading); } // 0x17f58b88d085dbac0x6bf6e296B323 + inline Void SetPedPathCanUseClimbovers(Ped ped, BOOL Toggle) { return _i(0x8E06A6FE76C9EFF4, ped, Toggle); } // 0x8e06a6fe76c9eff40xb7b7d442B323 + inline Void SetPedPathCanUseLadders(Ped ped, BOOL Toggle) { return _i(0x77A5B103C87F476E, ped, Toggle); } // 0x77a5b103c87f476e0x53a879eeB323 + inline Void SetPedPathCanDropFromHeight(Ped ped, BOOL Toggle) { return _i(0xE361C5C71C431A4F, ped, Toggle); } // 0xe361c5c71c431a4f0x394b7ac9B323 + // Default modifier is 1.0, minimum is 0.0 and maximum is 10.0. + inline Void SetPedPathClimbCostModifier(Ped ped, float modifier) { return _i(0x88E32DB8C1A4AA4B, ped, modifier); } // 0x88e32db8c1a4aa4b0x55e06443B323 + inline Void SetPedPathMayEnterWater(Ped ped, BOOL mayEnterWater) { return _i(0xF35425A4204367EC, ped, mayEnterWater); } // 0xf35425a4204367ec0x9c606ee3B323 + inline Void SetPedPathPreferToAvoidWater(Ped ped, BOOL avoidWater) { return _i(0x38FE1EC73743793C, ped, avoidWater); } // 0x38fe1ec73743793c0x0ea39a29B323 + inline Void SetPedPathAvoidFire(Ped ped, BOOL avoidFire) { return _i(0x4455517B28441E60, ped, avoidFire); } // 0x4455517b28441e600xdcc5b934B323 + // Needs to be looped! And yes, it does work and is not a hash collision. + // Birds will try to reach the given height. + inline Void SetGlobalMinBirdFlightHeight(float height) { return _i(0x6C6B148586F934F7, height); } // 0x6c6b148586f934f70x2afb14b8B323 + // Looks like the last parameter returns true if the path has been calculated, while the first returns the remaining distance to the end of the path. + // Return value of native is the same as GetNavmeshRouteResult + // Looks like the native returns an int for the path's state: + // 1 - ??? + // 2 - ??? + // 3 - Finished Generating + inline int GetNavmeshRouteDistanceRemaining(Ped ped, float* distanceRemaining, BOOL* isPathReady) { return _i(0xC6F5C0BCDC74D62D, ped, distanceRemaining, isPathReady); } // 0xc6f5c0bcdc74d62d0xd9281778B323 + // See GetNavmeshRouteDistanceRemaining for more details. + inline int GetNavmeshRouteResult(Ped ped) { return _i(0x632E831F382A0FA8, ped); } // 0x632e831f382a0fa80x96491602B323 + inline BOOL IsControlledVehicleUnableToGetToRoad(Ped ped) { return _i(0x3E38E28A1D80DDF6, ped); } // 0x3e38e28a1d80ddf60x54856309B323 + // example from fm_mission_controller + // + // TASK::TaskGoToCoordAnyMeans(l_649, sub_f7e86(-1, 0), 1.0, 0, 0, 786603, 0xbf800000); + // + inline Void TaskGoToCoordAnyMeans(Ped ped, float x, float y, float z, float moveBlendRatio, Vehicle vehicle, BOOL useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets) { return _i(0x5BC448CB78FA3E88, ped, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets); } // 0x5bc448cb78fa3e880xf91df93bB323 + inline Void TaskGoToCoordAnyMeansExtraParams(Ped ped, float x, float y, float z, float moveBlendRatio, Vehicle vehicle, BOOL useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float warpTimerMS) { return _i(0x1DD45F9ECFDB1BC9, ped, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, warpTimerMS); } // 0x1dd45f9ecfdb1bc90x094b75efB323 + inline Void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(Ped ped, float x, float y, float z, float moveBlendRatio, Vehicle vehicle, BOOL useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float cruiseSpeed, float targetArriveDist) { return _i(0xB8ECD61F531A7B02, ped, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, cruiseSpeed, targetArriveDist); } // 0xb8ecd61f531a7b020x86dc03f9B323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + // + // float speed > normal speed is 8.0f + // ---------------------- + // + // float speedMultiplier > multiply the playback speed + // ---------------------- + // + // int duration: time in millisecond + // ---------------------- + // -1 _ _ _ _ _ _ _> Default (see flag) + // 0 _ _ _ _ _ _ _ > Not play at all + // Small value _ _ > Slow down animation speed + // Other _ _ _ _ _ > freeze player control until specific time (ms) has + // _ _ _ _ _ _ _ _ _ passed. (No effect if flag is set to be + // _ _ _ _ _ _ _ _ _ controllable.) + // + // int flag: + // ---------------------- + // enum eAnimationFlags + // { + // ANIM_FLAG_NORMAL = 0, + // ANIM_FLAG_REPEAT = 1, + // ANIM_FLAG_STOP_LAST_FRAME = 2, + // ANIM_FLAG_UPPERBODY = 16, + // ANIM_FLAG_ENABLE_PLAYER_CONTROL = 32, + // ANIM_FLAG_CANCELABLE = 120, + // }; + // Odd number : loop infinitely + // Even number : Freeze at last frame + // Multiple of 4: Freeze at last frame but controllable + // + // 01 to 15 > Full body + // 10 to 31 > Upper body + // 32 to 47 > Full body > Controllable + // 48 to 63 > Upper body > Controllable + // ... + // 001 to 255 > Normal + // 256 to 511 > Garbled + // ... + // + // playbackRate: + // + // values are between 0.0 and 1.0 + // + // + // lockX: + // + // 0 in most cases 1 for rcmepsilonism8 and rcmpaparazzo_3 + // > 1 for mini@sprunk + // + // + // lockY: + // + // 0 in most cases + // 1 for missfam5_yoga, missfra1mcs_2_crew_react + // + // + // lockZ: + // + // 0 for single player + // Can be 1 but only for MP + inline Void TaskPlayAnim(Ped ped, String animDictionary, String animationName, float blendInSpeed, float blendOutSpeed, int duration, int flag, float playbackRate, BOOL lockX, BOOL lockY, BOOL lockZ) { return _i(0xEA47FE3719165B94, ped, animDictionary, animationName, blendInSpeed, blendOutSpeed, duration, flag, playbackRate, lockX, lockY, lockZ); } // 0xea47fe3719165b940x5ab552c6B323 + // It's similar to TaskPlayAnim, except the first 6 floats let you specify the initial position and rotation of the task. (Ped gets teleported to the position). + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline Void TaskPlayAnimAdvanced(Ped ped, String animDict, String animName, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, float animEnterSpeed, float animExitSpeed, int duration, Any flag, float animTime, int rotOrder, int ikFlags) { return _i(0x83CDB10EA29B370B, ped, animDict, animName, posX, posY, posZ, rotX, rotY, rotZ, animEnterSpeed, animExitSpeed, duration, flag, animTime, rotOrder, ikFlags); } // 0x83cdb10ea29b370b0x3ddeb0e6B323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline Void StopAnimTask(Entity entity, String animDictionary, String animationName, float blendDelta) { return _i(0x97FF36A1D40EA00A, entity, animDictionary, animationName, blendDelta); } // 0x97ff36a1d40ea00a0x2b520a57B323 + // From fm_mission_controller.c: + // reserve_network_mission_objects(get_num_reserved_mission_objects(0) + 1); + // vVar28 = {0.094f, 0.02f, -0.005f}; + // vVar29 = {-92.24f, 63.64f, 150.24f}; + // func_253(&uVar30, joaat("prop_ld_case_01"), Global_1592429.imm_34757[iParam1 <268>], 1, 1, 0, 1); + // set_entity_lod_dist(net_to_ent(uVar30), 500); + // attach_entity_to_entity(net_to_ent(uVar30), iParam0, get_ped_bone_index(iParam0, 28422), vVar28, vVar29, 1, 0, 0, 0, 2, 1); + // Var31.imm_4 = 1065353216; + // Var31.imm_5 = 1065353216; + // Var31.imm_9 = 1065353216; + // Var31.imm_10 = 1065353216; + // Var31.imm_14 = 1065353216; + // Var31.imm_15 = 1065353216; + // Var31.imm_17 = 1040187392; + // Var31.imm_18 = 1040187392; + // Var31.imm_19 = -1; + // Var32.imm_4 = 1065353216; + // Var32.imm_5 = 1065353216; + // Var32.imm_9 = 1065353216; + // Var32.imm_10 = 1065353216; + // Var32.imm_14 = 1065353216; + // Var32.imm_15 = 1065353216; + // Var32.imm_17 = 1040187392; + // Var32.imm_18 = 1040187392; + // Var32.imm_19 = -1; + // Var31 = 1; + // Var31.imm_1 = "weapons@misc@jerrycan@mp_male"; + // Var31.imm_2 = "idle"; + // Var31.imm_20 = 1048633; + // Var31.imm_4 = 0.5f; + // Var31.imm_16 = get_hash_key("BONEMASK_ARMONLY_R"); + // task_scripted_animation(iParam0, &Var31, &Var32, &Var32, 0f, 0.25f); + // set_model_as_no_longer_needed(joaat("prop_ld_case_01")); + // remove_anim_dict("anim@heists@biolab@"); + inline Void TaskScriptedAnimation(Ped ped, int* priorityLowData, int* priorityMidData, int* priorityHighData, float blendInDelta, float blendOutDelta) { return _i(0x126EF75F1E17ABE5, ped, priorityLowData, priorityMidData, priorityHighData, blendInDelta, blendOutDelta); } // 0x126ef75f1e17abe50xfc2dcf47B323 + inline Void PlayEntityScriptedAnim(Entity entity, int* priorityLowData, int* priorityMidData, int* priorityHighData, float blendInDelta, float blendOutDelta) { return _i(0x77A1EEC547E7FCF1, entity, priorityLowData, priorityMidData, priorityHighData, blendInDelta, blendOutDelta); } // 0x77a1eec547e7fcf10x02f72ae5B323 + // Looks like p1 may be a flag, still need to do some research, though. + inline Void StopAnimPlayback(Entity entity, int priority, BOOL secondary) { return _i(0xEE08C992D238C5D1, entity, priority, secondary); } // 0xee08c992d238c5d10xe5f16398B323 + inline Void SetAnimWeight(Entity entity, float weight, int priority, int index, BOOL secondary) { return _i(0x207F1A47C0342F48, entity, weight, priority, index, secondary); } // 0x207f1a47c0342f480x17229d98B323 + inline Void SetAnimPhase(Entity entity, float phase, int priority, BOOL secondary) { return _i(0xDDF3CB5A0A4C0B49, entity, phase, priority, secondary); } // 0xddf3cb5a0a4c0b490xb621e7e4B2372 + inline Void SetAnimRate(Entity entity, float rate, int priority, BOOL secondary) { return _i(0x032D49C5E359C847, entity, rate, priority, secondary); } // 0x032d49c5e359c8470x6db46584B323 + inline Void SetAnimLooped(Entity entity, BOOL looped, int priority, BOOL secondary) { return _i(0x70033C3CC29A1FF4, entity, looped, priority, secondary); } // 0x70033c3cc29a1ff40x095d61a4B323 + // Example from the scripts: + // TASK::TaskPlayPhoneGestureAnimation(PLAYER::PlayerPedId(), v_3, v_2, v_4, 0.25, 0.25, 0, 0); + // + // ========================================================= + // ^^ No offense, but Idk how that would really help anyone. + // + // As for the animDict & animation, they're both store in a global in all 5 scripts. So if anyone would be so kind as to read that global and comment what strings they use. Thanks. + // + // Known boneMaskTypes' + // "BONEMASK_HEADONLY" + // "BONEMASK_HEAD_NECK_AND_ARMS" + // "BONEMASK_HEAD_NECK_AND_L_ARM" + // "BONEMASK_HEAD_NECK_AND_R_ARM" + // + // p4 known args - 0.0f, 0.5f, 0.25f + // p5 known args - 0.0f, 0.25f + // p6 known args - 1 if a global if check is passed. + // p7 known args - 1 if a global if check is passed. + // + // The values found above, I found within the 5 scripts this is ever called in. (fmmc_launcher, fm_deathmatch_controller, fm_impromptu_dm_controller, fm_mission_controller, and freemode). + // ========================================================= + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline Void TaskPlayPhoneGestureAnimation(Ped ped, String animDict, String animation, String boneMaskType, float blendInDuration, float blendOutDuration, BOOL isLooping, BOOL holdLastFrame) { return _i(0x8FBB6758B3B3E9EC, ped, animDict, animation, boneMaskType, blendInDuration, blendOutDuration, isLooping, holdLastFrame); } // 0x8fbb6758b3b3e9ec0x1582162cB323 + inline Void TaskStopPhoneGestureAnimation(Ped ped, float blendOutOverride) { return _i(0x3FA00D4F4641BFAE, ped, blendOutOverride); } // 0x3fa00d4f4641bfae0x5a32d4b4B323 + inline BOOL IsPlayingPhoneGestureAnim(Ped ped) { return _i(0xB8EBB1E9D3588C10, ped); } // 0xb8ebb1e9d3588c100x500b6805B323 + inline float GetPhoneGestureAnimCurrentTime(Ped ped) { return _i(0x47619ABE8B268C60, ped); } // 0x47619abe8b268c600x7b72afd1B323 + inline float GetPhoneGestureAnimTotalTime(Ped ped) { return _i(0x1EE0F68A7C25DEC6, ped); } // 0x1ee0f68a7c25dec60xef8c3959B323 + // Most probably plays a specific animation on vehicle. For example getting chop out of van etc... + // + // Here's how its used - + // + // TASK::TaskVehiclePlayAnim(l_325, "rcmnigel1b", "idle_speedo"); + // + // TASK::TaskVehiclePlayAnim(l_556[0/*1*/], "missfra0_chop_drhome", "InCar_GetOutofBack_Speedo"); + // + // FYI : Speedo is the name of van in which chop was put in the mission. + inline Void TaskVehiclePlayAnim(Vehicle vehicle, String animationSet, String animationName) { return _i(0x69F5C3BD0F3EBD89, vehicle, animationSet, animationName); } // 0x69f5c3bd0f3ebd890x2b28f598B323 + // enum eScriptLookatFlags + // { + // SLF_SLOW_TURN_RATE = 1, // turn the head toward the target slowly + // SLF_FAST_TURN_RATE = 2, // turn the head toward the target quickly + // SLF_EXTEND_YAW_LIMIT = 4, // wide yaw head limits + // SLF_EXTEND_PITCH_LIMIT = 8, // wide pitch head limit + // SLF_WIDEST_YAW_LIMIT = 16, // widest yaw head limit + // SLF_WIDEST_PITCH_LIMIT = 32, // widest pitch head limit + // SLF_NARROW_YAW_LIMIT = 64, // narrow yaw head limits + // SLF_NARROW_PITCH_LIMIT = 128, // narrow pitch head limit + // SLF_NARROWEST_YAW_LIMIT = 256, // narrowest yaw head limit + // SLF_NARROWEST_PITCH_LIMIT = 512, // narrowest pitch head limit + // SLF_USE_TORSO = 1024, // use the torso aswell as the neck and head (currently disabled) + // SLF_WHILE_NOT_IN_FOV = 2048, // keep tracking the target even if they are not in the hard coded FOV + // SLF_USE_CAMERA_FOCUS = 4096, // use the camera as the target + // SLF_USE_EYES_ONLY = 8192, // only track the target with the eyes + // SLF_USE_LOOK_DIR = 16384, // use information in look dir DOF + // SLF_FROM_SCRIPT = 32768, // internal use only + // SLF_USE_REF_DIR_ABSOLUTE = 65536 // use absolute reference direction mode for solver + // }; + inline Void TaskLookAtCoord(Entity entity, float x, float y, float z, int duration, int flags, int priority) { return _i(0x6FA46612594F7973, entity, x, y, z, duration, flags, priority); } // 0x6fa46612594f79730x7b784dd8B323 + // For flags, please refer to TaskLookAtCoord. + inline Void TaskLookAtEntity(Ped ped, Entity lookAt, int duration, int flags, int priority) { return _i(0x69F4BE8C8CC4796C, ped, lookAt, duration, flags, priority); } // 0x69f4be8c8cc4796c0x991d6619B323 + inline Void TaskClearLookAt(Ped ped) { return _i(0x0F804F1DB19B9689, ped); } // 0x0f804f1db19b96890x60eb4054B323 + inline Void OpenSequenceTask(int* taskSequenceId) { return _i(0xE8854A4326B9E12B, taskSequenceId); } // 0xe8854a4326b9e12b0xaba6923eB323 + inline Void CloseSequenceTask(int taskSequenceId) { return _i(0x39E72BC99E6360CB, taskSequenceId); } // 0x39e72bc99e6360cb0x1a7cebd0B323 + inline Void TaskPerformSequence(Ped ped, int taskSequenceId) { return _i(0x5ABA3986D90D8A3B, ped, taskSequenceId); } // 0x5aba3986d90d8a3b0x4d9fbd11B323 + inline Void TaskPerformSequenceLocally(Ped ped, int taskSequenceId) { return _i(0x8C33220C8D78CA0D, ped, taskSequenceId); } // 0x8c33220c8d78ca0dB944 + inline Void ClearSequenceTask(int* taskSequenceId) { return _i(0x3841422E9C488D8C, taskSequenceId); } // 0x3841422e9c488d8c0x47ed03ceB323 + inline Void SetSequenceToRepeat(int taskSequenceId, BOOL repeat) { return _i(0x58C70CF3A41E4AE7, taskSequenceId, repeat); } // 0x58c70cf3a41e4ae70xcddf1508B323 + // returned values: + // 0 to 7 = task that's currently in progress, 0 meaning the first one. + // -1 no task sequence in progress. + inline int GetSequenceProgress(Ped ped) { return _i(0x00A9010CFE1E3533, ped); } // 0x00a9010cfe1e35330xa3419909B323 + // Task index enum: https://alloc8or.re/gta5/doc/enums/eTaskTypeIndex.txt + inline BOOL GetIsTaskActive(Ped ped, int taskIndex) { return _i(0xB0760331C7AA4155, ped, taskIndex); } // 0xb0760331c7aa41550x86fddf55B323 + // Gets the status of a script-assigned task. + // taskHash: https://alloc8or.re/gta5/doc/enums/eScriptTaskHash.txt + inline int GetScriptTaskStatus(Ped ped, Hash taskHash) { return _i(0x77F1BEB8863288D5, ped, taskHash); } // 0x77f1beb8863288d50xb2477b23B323 + // https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt + inline int GetActiveVehicleMissionType(Vehicle vehicle) { return _i(0x534AEBA6E5ED4CAB, vehicle); } // 0x534aeba6e5ed4cab0xafa914efB323 + // Flags are the same flags used in TaskLeaveVehicle + inline Void TaskLeaveAnyVehicle(Ped ped, int delayTime, int flags) { return _i(0x504D54DF3F6F2247, ped, delayTime, flags); } // 0x504d54df3f6f22470xdbdd79faB323 + inline Void TaskAimGunScripted(Ped ped, Hash scriptTask, BOOL disableBlockingClip, BOOL instantBlendToAim) { return _i(0x7A192BE16D373D00, ped, scriptTask, disableBlockingClip, instantBlendToAim); } // 0x7a192be16d373d000x9d296bcdB323 + inline Void TaskAimGunScriptedWithTarget(Ped ped, Ped target, float x, float y, float z, int gunTaskType, BOOL disableBlockingClip, BOOL forceAim) { return _i(0x8605AF0DE8B3A5AC, ped, target, x, y, z, gunTaskType, disableBlockingClip, forceAim); } // 0x8605af0de8b3a5ac0xfd517ce3B323 + inline Void UpdateTaskAimGunScriptedTarget(Ped ped, Ped target, float x, float y, float z, BOOL disableBlockingClip) { return _i(0x9724FB59A3E72AD0, ped, target, x, y, z, disableBlockingClip); } // 0x9724fb59a3e72ad00x67e73525B323 + inline String GetClipSetForScriptedGunTask(int gunTaskType) { return _i(0x3A8CADC7D37AACC5, gunTaskType); } // 0x3a8cadc7d37aacc50x249eb4ebB323 + // duration: the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped + inline Void TaskAimGunAtEntity(Ped ped, Entity entity, int duration, BOOL instantBlendToAim) { return _i(0x9B53BB6E8943AF53, ped, entity, duration, instantBlendToAim); } // 0x9b53bb6e8943af530xbe32b3b6B323 + // duration: the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped + inline Void TaskTurnPedToFaceEntity(Ped ped, Entity entity, int duration) { return _i(0x5AD23D40115353AC, ped, entity, duration); } // 0x5ad23d40115353ac0x3c37c767B323 + inline Void TaskAimGunAtCoord(Ped ped, float x, float y, float z, int time, BOOL instantBlendToAim, BOOL playAnimIntro) { return _i(0x6671F3EEC681BDA1, ped, x, y, z, time, instantBlendToAim, playAnimIntro); } // 0x6671f3eec681bda10xfbf44ad3B323 + // Firing Pattern Hash Information: https://pastebin.com/Px036isB + inline Void TaskShootAtCoord(Ped ped, float x, float y, float z, int duration, Hash firingPattern) { return _i(0x46A6CC01E0826106, ped, x, y, z, duration, firingPattern); } // 0x46a6cc01e08261060x601c22e3B323 + // Makes the specified ped shuffle to the next vehicle seat. + // The ped MUST be in a vehicle and the vehicle parameter MUST be the ped's current vehicle. + inline Void TaskShuffleToNextVehicleSeat(Ped ped, Vehicle vehicle, BOOL useAlternateShuffle) { return _i(0x7AA80209BDA643EB, ped, vehicle, useAlternateShuffle); } // 0x7aa80209bda643eb0xbeaf8f67B323 + inline Void ClearPedTasks(Ped ped) { return _i(0xE1EF3C1216AFF2CD, ped); } // 0xe1ef3c1216aff2cd0xde3316abB323 + inline Void ClearPedSecondaryTask(Ped ped) { return _i(0x176CECF6F920D707, ped); } // 0x176cecf6f920d7070xa635f451B323 + inline Void TaskEveryoneLeaveVehicle(Vehicle vehicle) { return _i(0x7F93691AB4B92272, vehicle); } // 0x7f93691ab4b922720xc1971f30B323 + // enum ESEEK_ENTITY_OFFSET_FLAGS + // { + // ESEEK_OFFSET_ORIENTATES_WITH_ENTITY = 0x01, + // ESEEK_KEEP_TO_PAVEMENTS = 0x02 + // }; + inline Void TaskGotoEntityOffset(Ped ped, Entity entity, int time, float seekRadius, float seekAngleDeg, float moveBlendRatio, int gotoEntityOffsetFlags) { return _i(0xE39B4FF4FDEBDE27, ped, entity, time, seekRadius, seekAngleDeg, moveBlendRatio, gotoEntityOffsetFlags); } // 0xe39b4ff4fdebde270x1a17a85eB323 + inline Void TaskGotoEntityOffsetXy(Ped ped, Entity entity, int duration, float targetRadius, float offsetX, float offsetY, float moveBlendRatio, int gotoEntityOffsetFlags) { return _i(0x338E7EF52B6095A9, ped, entity, duration, targetRadius, offsetX, offsetY, moveBlendRatio, gotoEntityOffsetFlags); } // 0x338e7ef52b6095a90xbc1e3d0aB323 + // duration in milliseconds + inline Void TaskTurnPedToFaceCoord(Ped ped, float x, float y, float z, int duration) { return _i(0x1DDA930A0AC38571, ped, x, y, z, duration); } // 0x1dda930a0ac385710x30463d73B323 + // '1 - brake + // '3 - brake + reverse + // '4 - turn left 90 + braking + // '5 - turn right 90 + braking + // '6 - brake strong (handbrake?) until time ends + // '7 - turn left + accelerate + // '8 - turn right + accelerate + // '9 - weak acceleration + // '10 - turn left + restore wheel pos to center in the end + // '11 - turn right + restore wheel pos to center in the end + // '13 - turn left + go reverse + // '14 - turn left + go reverse + // '16 - crash the game after like 2 seconds :) + // '17 - keep actual state, game crashed after few tries + // '18 - game crash + // '19 - strong brake + turn left/right + // '20 - weak brake + turn left then turn right + // '21 - weak brake + turn right then turn left + // '22 - brake + reverse + // '23 - accelerate fast + // '24 - brake + // '25 - brake turning left then when almost stopping it turns left more + // '26 - brake turning right then when almost stopping it turns right more + // '27 - brake until car stop or until time ends + // '28 - brake + strong reverse acceleration + // '30 - performs a burnout (brake until stop + brake and accelerate) + // '31 - accelerate + handbrake + // '32 - accelerate very strong + // + // Seems to be this: + // Works on NPCs, but overrides their current task. If inside a task sequence (and not being the last task), "time" will work, otherwise the task will be performed forever until tasked with something else + inline Void TaskVehicleTempAction(Ped driver, Vehicle vehicle, int action, int time) { return _i(0xC429DCEEB339E129, driver, vehicle, action, time); } // 0xc429dceeb339e1290x0679dfb8B323 + // missionType: https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt + inline Void TaskVehicleMission(Ped driver, Vehicle vehicle, Vehicle vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, BOOL DriveAgainstTraffic) { return _i(0x659427E0EF36BCDE, driver, vehicle, vehicleTarget, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); } // 0x659427e0ef36bcde0x20609e56B323 + // See TaskVehicleMission + inline Void TaskVehicleMissionPedTarget(Ped ped, Vehicle vehicle, Ped pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, BOOL DriveAgainstTraffic) { return _i(0x9454528DF15D657A, ped, vehicle, pedTarget, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic); } // 0x9454528df15d657a0xc81c4677B323 + // See TaskVehicleMission + inline Void TaskVehicleMissionCoorsTarget(Ped ped, Vehicle vehicle, float x, float y, float z, int mission, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, BOOL DriveAgainstTraffic) { return _i(0xF0AF20AA7731F8C3, ped, vehicle, x, y, z, mission, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); } // 0xf0af20aa7731f8c30x6719c109B323 + // Makes a ped follow the targetVehicle with in between. + // + // note: minDistance is ignored if drivingstyle is avoiding traffic, but Rushed is fine. + // + // Mode: The mode defines the relative position to the targetVehicle. The ped will try to position its vehicle there. + // -1 = behind + // 0 = ahead + // 1 = left + // 2 = right + // 3 = back left + // 4 = back right + // + // if the target is closer than noRoadsDistance, the driver will ignore pathing/roads and follow you directly. + // + // Driving Styles guide: gtaforums.com/topic/822314-guide-driving-styles/ + inline Void TaskVehicleEscort(Ped ped, Vehicle vehicle, Vehicle targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance) { return _i(0x0FA6E4B75F302400, ped, vehicle, targetVehicle, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance); } // 0x0fa6e4b75f3024000x9fdcb250B323 + // Makes a ped in a vehicle follow an entity (ped, vehicle, etc.) + // + // drivingStyle: http://gtaforums.com/topic/822314-guide-driving-styles/ + inline Void TaskVehicleFollow(Ped driver, Vehicle vehicle, Entity targetEntity, float speed, int drivingStyle, int minDistance) { return _i(0xFC545A9F0626E3B6, driver, vehicle, targetEntity, speed, drivingStyle, minDistance); } // 0xfc545a9f0626e3b60xa8b917d7B323 + // chases targetEnt fast and aggressively + // -- + // Makes ped (needs to be in vehicle) chase targetEnt. + inline Void TaskVehicleChase(Ped driver, Entity targetEnt) { return _i(0x3C08A8E30363B353, driver, targetEnt); } // 0x3c08a8e30363b3530x55634798B323 + // pilot, vehicle and altitude are rather self-explanatory. + // + // p4: is unused variable in the function. + // + // entityToFollow: you can provide a Vehicle entity or a Ped entity, the heli will protect them. + // + // 'targetSpeed': The pilot will dip the nose AS MUCH AS POSSIBLE so as to reach this value AS FAST AS POSSIBLE. As such, you'll want to modulate it as opposed to calling it via a hard-wired, constant #. + // + // 'radius' isn't just "stop within radius of X of target" like with ground vehicles. In this case, the pilot will fly an entire circle around 'radius' and continue to do so. + // + // NOT CONFIRMED: p7 appears to be a FlyingStyle enum. Still investigating it as of this writing, but playing around with values here appears to result in different -behavior- as opposed to offsetting coordinates, altitude, target speed, etc. + // + // NOTE: If the pilot finds enemies, it will engage them until it kills them, but will return to protect the ped/vehicle given shortly thereafter. + inline Void TaskVehicleHeliProtect(Ped pilot, Vehicle vehicle, Entity entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags) { return _i(0x1E09C32048FEFD1C, pilot, vehicle, entityToFollow, targetSpeed, drivingFlags, radius, altitude, heliFlags); } // 0x1e09c32048fefd1c0x0cb415eeB323 + // Flag 8: Medium-aggressive boxing tactic with a bit of PIT + // Flag 1: Aggressive ramming of suspect + // Flag 2: Ram attempts + // Flag 32: Stay back from suspect, no tactical contact. Convoy-like. + // Flag 16: Ramming, seems to be slightly less aggressive than 1-2. + inline Void SetTaskVehicleChaseBehaviorFlag(Ped ped, int flag, BOOL set) { return _i(0xCC665AAC360D31E7, ped, flag, set); } // 0xcc665aac360d31e70x2a83083fB323 + inline Void SetTaskVehicleChaseIdealPursuitDistance(Ped ped, float distance) { return _i(0x639B642FACBE4EDD, ped, distance); } // 0x639b642facbe4edd0x04fd3ee7B323 + // Ped pilot should be in a heli. + // EntityToFollow can be a vehicle or Ped. + // + // x,y,z appear to be how close to the EntityToFollow the heli should be. Scripts use 0.0, 0.0, 80.0. Then the heli tries to position itself 80 units above the EntityToFollow. If you reduce it to -5.0, it tries to go below (if the EntityToFollow is a heli or plane) + // + // + // NOTE: If the pilot finds enemies, it will engage them, then remain there idle, not continuing to chase the Entity given. + inline Void TaskHeliChase(Ped pilot, Entity entityToFollow, float x, float y, float z) { return _i(0xAC83B1DB38D0ADA0, pilot, entityToFollow, x, y, z); } // 0xac83b1db38d0ada00xac290a21B323 + inline Void TaskPlaneChase(Ped pilot, Entity entityToFollow, float x, float y, float z) { return _i(0x2D2386F273FF7A25, pilot, entityToFollow, x, y, z); } // 0x2d2386f273ff7a250x12fa1c28B323 + inline Void TaskPlaneLand(Ped pilot, Vehicle plane, float runwayStartX, float runwayStartY, float runwayStartZ, float runwayEndX, float runwayEndY, float runwayEndZ) { return _i(0xBF19721FA34D32C0, pilot, plane, runwayStartX, runwayStartY, runwayStartZ, runwayEndX, runwayEndY, runwayEndZ); } // 0xbf19721fa34d32c00x5f7e23eaB323 + inline Void ClearDefaultPrimaryTask(Ped ped) { return _i(0x6100B3CEFD43452E, ped); } // 0x6100b3cefd43452eB2189 + // This native is very useful when switching the player to a ped inside a vehicle that has a task assigned prior to the player switch. + // It is necessary to clear the ped's tasks AND call this native with the vehicle the player is switching into in order to allow the player to control the vehicle after the player switches. + inline Void ClearPrimaryVehicleTask(Vehicle vehicle) { return _i(0xDBBC7A2432524127, vehicle); } // 0xdbbc7a2432524127B1290 + inline Void ClearVehicleCrashTask(Vehicle vehicle) { return _i(0x53DDC75BC3AC0A90, vehicle); } // 0x53ddc75bc3ac0a90B1290 + inline Void TaskPlaneGotoPreciseVtol(Ped ped, Vehicle vehicle, float x, float y, float z, int flightHeight, int minHeightAboveTerrain, BOOL useDesiredOrientation, float desiredOrientation, BOOL autopilot) { return _i(0xF7F9DCCA89E7505B, ped, vehicle, x, y, z, flightHeight, minHeightAboveTerrain, useDesiredOrientation, desiredOrientation, autopilot); } // 0xf7f9dcca89e7505bB1290 + // Used in am_vehicle_spawn.ysc and am_mp_submarine.ysc. + // + // p0 is always 0, p5 is always 1 + // + // p1 is the vehicle handle of the submarine. Submarine must have a driver, but the ped handle is not passed to the native. + // + // Speed can be set by calling SetDriveTaskCruiseSpeed after + inline Void TaskSubmarineGotoAndStop(Ped ped, Vehicle submarine, float x, float y, float z, BOOL autopilot) { return _i(0xC22B40579A498CA4, ped, submarine, x, y, z, autopilot); } // 0xc22b40579a498ca4B2189 + // Must have targetVehicle, targetPed, OR destination X/Y/Z set + // Will follow targeted vehicle/ped, or fly to destination + // Set whichever is not being used to 0 + // + // + // Mission mode type: + // - 4, 7: Forces heli to snap to the heading if set, flies to destination or tracks specified entity (mode 4 only works for coordinates, 7 works for coordinates OR ped/vehicle) + // - 6: Attacks the target ped/vehicle with mounted weapons. If radius is set, will maintain that distance from target. + // - 8: Makes the heli flee from the ped/vehicle/coordinate + // - 9: Circles around target ped/vehicle, snaps to angle if set. Behavior flag (last parameter) of 2048 switches from counter-clockwise to clockwise circling. Does not work with coordinate destination. + // - 10, 11: Follows ped/vehicle target and imitates target heading. Only works with ped/vehicle target, not coord target + // - 19: Heli lands at specified coordinate, ignores heading (lands facing whatever direction it is facing when the task is started) + // - 20: Makes the heli land when near target ped. It won't resume chasing. + // - 21: Emulates a helicopter crash + // - 23: makes the heli circle erratically around ped + // + // + // Heli will fly at maxSpeed (up to actual maximum speed defined by the model's handling config) + // You can use SetDriveTaskCruiseSpeed to modulate the speed based on distance to the target without having to re-_i the task native. Setting to 8.0 when close to the destination results in a much smoother approach. + // + // If minHeight and maxHeight are set, heli will fly between those specified elevations, relative to ground level and any obstructions/buildings below. You can specify -1 for either if you only want to specify one. Usually it is easiest to leave maxHeight at -1, and specify a reasonable minHeight to ensure clearance over any obstacles. Note this MUST be passed as an INT, not a FLOAT. + // + // Radius affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from + // + // Heading is -1.0 for default behavior, which will point the nose of the helicopter towards the destination. Set a heading and the heli will lock to that direction when near its destination/target, but may still turn towards the destination when flying at higher speed from a further distance. + // + // Behavior Flags is a bitwise value that modifies the AI behavior. Not clear what all flags do, but here are some guesses/notes: + // 1: Forces heading to face E + // 2: Unknown + // 4: Tight circles around coordinate destination + // 8: Unknown + // 16: Circles around coordinate destination facing towards destination + // 32: Flys to normally, then lands at coordinate destination and stays on the ground (using mission type 4) + // 64: Ignores obstacles when flying, will follow at specified minHeight above ground level but will not avoid buildings, vehicles, etc. + // 128: Unknown + // 256: Unknown + // 512: Unknown + // 1024: Unknown + // 2048: Reverses direction of circling (mission type 9) to clockwise + // 4096: Hugs closer to the ground, maintains minHeight from ground generally, but barely clears buildings and dips down more between buildings instead of taking a more efficient/safe route + // 8192: Unknown + // + // Unk3 is a float value, you may see -1082130432 for this value in decompiled native scripts, this is the equivalent to -1.0f. Seems to affect acceleration/aggressiveness, but not sure exactly how it works. Higher value seems to result in lower acceleration/less aggressive flying. Almost always -1.0 in native scripts, occasionally 20.0 or 50.0. Setting to 400.0 seems to work well for making the pilot not overshoot the destination when using coordinate destination. + // + // Notes updated by PNWParksFan, May 2021 + // + inline Void TaskHeliMission(Ped pilot, Vehicle aircraft, Vehicle targetVehicle, Ped targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) { return _i(0xDAD029E187A2BEB4, pilot, aircraft, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); } // 0xdad029e187a2beb40x0c143e97B323 + inline Void TaskHeliEscortHeli(Ped pilot, Vehicle heli1, Vehicle heli2, float offsetX, float offsetY, float offsetZ) { return _i(0xB385523325077210, pilot, heli1, heli2, offsetX, offsetY, offsetZ); } // 0xb385523325077210B1290 + // EXAMPLE USAGE: + // + // Fly around target (Precautiously, keeps high altitude): + // Function.Call(Hash.TaskPlaneMission, pilot, selectedAirplane, 0, 0, Target.X, Target.Y, Target.Z, 4, 100f, 0f, 90f, 0, 200f); + // + // Fly around target (Dangerously, keeps VERY low altitude): + // Function.Call(Hash.TaskPlaneMission, pilot, selectedAirplane, 0, 0, Target.X, Target.Y, Target.Z, 4, 100f, 0f, 90f, 0, -500f); + // + // Fly directly into target: + // Function.Call(Hash.TaskPlaneMission, pilot, selectedAirplane, 0, 0, Target.X, Target.Y, Target.Z, 4, 100f, 0f, 90f, 0, -5000f); + // + // EXPANDED INFORMATION FOR ADVANCED USAGE (custom pilot) + // + // 'physicsSpeed': (THIS IS NOT YOUR ORDINARY SPEED PARAMETER: READ!!) + // Think of this -first- as a radius value, not a true speed value. The ACTUAL effective speed of the plane will be that of the maximum speed permissible to successfully fly in a -circle- with a radius of 'physicsSpeed'. This also means that the plane must complete a circle before it can begin its "bombing run", its straight line pass towards the target. p9 appears to influence the angle at which a "bombing run" begins, although I can't confirm yet. + // + // VERY IMPORTANT: A "bombing run" will only occur if a plane can successfully determine a possible navigable route (the slower the value of 'physicsSpeed', the more precise the pilot can be due to less influence of physics on flightpath). Otherwise, the pilot will continue to patrol around Destination (be it a dynamic Entity position vector or a fixed world coordinate vector.) + // + // 0 = Plane's physics are almost entirely frozen, plane appears to "orbit" around precise destination point + // 1-299 = Blend of "frozen, small radius" vs. normal vs. "accelerated, hyperfast, large radius" + // 300+ = Vehicle behaves entirely like a normal gameplay plane. + // + // 'patrolBlend' (The lower the value, the more the Destination is treated as a "fly AT" rather than a "fly AROUND point".) + // + // Scenario: Destination is an Entity on ground level, wide open field + // -5000 = Pilot kamikazes directly into Entity + // -1000 = Pilot flies extremely low -around- Entity, very prone to crashing + // -200 = Pilot flies lower than average around Entity. + // 0 = Pilot flies around Entity, normal altitude + // 200 = Pilot flies an extra eighty units or so higher than 0 while flying around Destination (this doesn't seem to correlate directly into distance units.) + // + // -- Valid mission types found in the exe: -- + // + // 0 = None + // 1 = Unk + // 2 = CTaskVehicleRam + // 3 = CTaskVehicleBlock + // 4 = CTaskVehicleGoToPlane + // 5 = CTaskVehicleStop + // 6 = CTaskVehicleAttack + // 7 = CTaskVehicleFollow + // 8 = CTaskVehicleFleeAirborne + // 9= CTaskVehicleCircle + // 10 = CTaskVehicleEscort + // 15 = CTaskVehicleFollowRecording + // 16 = CTaskVehiclePoliceBehaviour + // 17 = CTaskVehicleCrash + inline Void TaskPlaneMission(Ped pilot, Vehicle aircraft, Vehicle targetVehicle, Ped targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, BOOL precise) { return _i(0x23703CD154E83B88, pilot, aircraft, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); } // 0x23703cd154e83b880x1d007e65B323 + inline Void TaskPlaneTaxi(Ped pilot, Vehicle aircraft, float x, float y, float z, float cruiseSpeed, float targetReached) { return _i(0x92C360B5F15D2302, pilot, aircraft, x, y, z, cruiseSpeed, targetReached); } // 0x92c360b5f15d2302B1103 + // You need to call PED::SetBlockingOfNonTemporaryEvents after TaskBoatMission in order for the task to execute. + // + // Working example + // float vehicleMaxSpeed = VEHICLE::GetVehicleEstimatedMaxSpeed(ENTITY::GetEntityModel(pedVehicle)); + // TASK::TaskBoatMission(pedDriver, pedVehicle, 0, 0, waypointCoord.x, waypointCoord.y, waypointCoord.z, 4, vehicleMaxSpeed, 786469, -1.0, 7); + // PED::SetBlockingOfNonTemporaryEvents(pedDriver, 1); + // + // P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation + inline Void TaskBoatMission(Ped pedDriver, Vehicle vehicle, Vehicle targetVehicle, Ped targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, Any boatFlags) { return _i(0x15C86013127CE63F, pedDriver, vehicle, targetVehicle, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); } // 0x15c86013127ce63f0x5865b031B323 + // Example: + // + // TASK::TaskDriveBy(l_467[1/*22*/], PLAYER::PlayerPedId(), 0, 0.0, 0.0, 2.0, 300.0, 100, 0, ${firing_pattern_burst_fire_driveby}); + // + // + // + // + // Needs working example. Doesn't seem to do anything. + // + // I marked p2 as targetVehicle as all these shooting related tasks seem to have that in common. + // I marked p6 as distanceToShoot as if you think of GTA's Logic with the native SET_VEHICLE_SHOOT natives, it won't shoot till it gets within a certain distance of the target. + // I marked p7 as pedAccuracy as it seems it's mostly 100 (Completely Accurate), 75, 90, etc. Although this could be the ammo count within the gun, but I highly doubt it. I will change this comment once I find out if it's ammo count or not. + inline Void TaskDriveBy(Ped driverPed, Ped targetPed, Vehicle targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, BOOL pushUnderneathDrivingTaskIfDriving, Hash firingPattern) { return _i(0x2F8AF0E82773A171, driverPed, targetPed, targetVehicle, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern); } // 0x2f8af0e82773a1710x2b84d1c4B323 + // For p1 & p2 (Ped, Vehicle). I could be wrong, as the only time this native is called in scripts is once and both are 0, but I assume this native will work like SetMountedWeaponTarget in which has the same exact amount of parameters and the 1st and last 3 parameters are right and the same for both natives. + inline Void SetDrivebyTaskTarget(Ped shootingPed, Ped targetPed, Vehicle targetVehicle, float x, float y, float z) { return _i(0xE5B302114D8162EE, shootingPed, targetPed, targetVehicle, x, y, z); } // 0xe5b302114d8162ee0xda6a6fc1B323 + inline Void ClearDrivebyTaskUnderneathDrivingTask(Ped ped) { return _i(0xC35B5CDB2824CF69, ped); } // 0xc35b5cdb2824cf690x9b76f7e6B323 + inline BOOL IsDrivebyTaskUnderneathDrivingTask(Ped ped) { return _i(0x8785E6E40C7A8818, ped); } // 0x8785e6e40c7a88180xb23f46e6B323 + // Forces the ped to use the mounted weapon. + // Returns false if task is not possible. + inline BOOL ControlMountedWeapon(Ped ped) { return _i(0xDCFE42068FE0135A, ped); } // 0xdcfe42068fe0135a0x500d9244B323 + // Note: Look in decompiled scripts and the times that p1 and p2 aren't 0. They are filled with vars. If you look through out that script what other natives those vars are used in, you can tell p1 is a ped and p2 is a vehicle. Which most likely means if you want the mounted weapon to target a ped set targetVehicle to 0 or vice-versa. + inline Void SetMountedWeaponTarget(Ped shootingPed, Ped targetPed, Vehicle targetVehicle, float x, float y, float z, int taskMode, BOOL ignoreTargetVehDeadCheck) { return _i(0xCCD892192C6D2BB9, shootingPed, targetPed, targetVehicle, x, y, z, taskMode, ignoreTargetVehDeadCheck); } // 0xccd892192c6d2bb90x98713c68B323 + inline BOOL IsMountedWeaponTaskUnderneathDrivingTask(Ped ped) { return _i(0xA320EF046186FA3B, ped); } // 0xa320ef046186fa3b0x291e938cB323 + // Actually has 3 params, not 2. + // + // p0: Ped + // p1: int (or BOOL?) + // p2: int + inline Void TaskUseMobilePhone(Ped ped, BOOL usePhone, int desiredPhoneMode) { return _i(0xBD2A8EC3AF4DE7DB, ped, usePhone, desiredPhoneMode); } // 0xbd2a8ec3af4de7db0x225a38c8B323 + inline Void TaskUseMobilePhoneTimed(Ped ped, int duration) { return _i(0x5EE02954A14C69DB, ped, duration); } // 0x5ee02954a14c69db0xc99c19f5B323 + // p2 tend to be 16, 17 or 1 + // p3 to p7 tend to be 0.0 + inline Void TaskChatToPed(Ped ped, Ped target, int flags, float goToLocationX, float goToLocationY, float goToLocationZ, float headingDegs, float idleTime) { return _i(0x8C338E0263E4FD19, ped, target, flags, goToLocationX, goToLocationY, goToLocationZ, headingDegs, idleTime); } // 0x8c338e0263e4fd190xa2be1821B323 + // Seat Numbers + // ------------------------------- + // Driver = -1 + // Any = -2 + // Left-Rear = 1 + // Right-Front = 0 + // Right-Rear = 2 + // Extra seats = 3-14(This may differ from vehicle type e.g. Firetruck Rear Stand, Ambulance Rear) + inline Void TaskWarpPedIntoVehicle(Ped ped, Vehicle vehicle, int seat) { return _i(0x9A7D091411C5F684, ped, vehicle, seat); } // 0x9a7d091411c5f6840x65d4a35dB323 + // //this part of the code is to determine at which entity the player is aiming, for example if you want to create a mod where you give orders to peds + // Entity aimedentity; + // Player player = PLAYER::PlayerId(); + // PLAYER::_GET_AIMED_ENTITY(player, &aimedentity); + // + // //bg is an array of peds + // TASK::TaskShootAtEntity(bg[i], aimedentity, 5000, MISC::GetHashKey("FIRING_PATTERN_FULL_AUTO")); + // + // in practical usage, getting the entity the player is aiming at and then task the peds to shoot at the entity, at a button press event would be better. + // + // Firing Pattern Hash Information: https://pastebin.com/Px036isB + inline Void TaskShootAtEntity(Entity entity, Entity target, int duration, Hash firingPattern) { return _i(0x08DA95E8298AE772, entity, target, duration, firingPattern); } // 0x08da95e8298ae7720xac0631c9B323 + // Climbs or vaults the nearest thing. + // usePlayerLaunchForce is unused. + inline Void TaskClimb(Ped ped, BOOL usePlayerLaunchForce) { return _i(0x89D9FCC2435112F1, ped, usePlayerLaunchForce); } // 0x89d9fcc2435112f10x90847790B323 + inline Void TaskClimbLadder(Ped ped, BOOL fast) { return _i(0xB6C987F9285A3814, ped, fast); } // 0xb6c987f9285a38140x35bb4ee0B323 + // Attaches a ped to a rope and allows player control to rappel down a wall. Disables all collisions while on the rope. + // p10: Usually 1 in the scripts, clipSet: Clipset to use for the task, minZ: Minimum Z that the player can descend to, ropeHandle: Rope to attach this task to created with AddRope + inline Void TaskRappelDownWallUsingClipsetOverride(Ped ped, float x1, float y1, float z1, float x2, float y2, float z2, float minZ, int ropeHandle, String clipSet, Any p10, Any p11) { return _i(0xEAF66ACDDC794793, ped, x1, y1, z1, x2, y2, z2, minZ, ropeHandle, clipSet, p10, p11); } // 0xeaf66acddc794793B1868 + inline int GetTaskRappelDownWallState(Ped ped) { return _i(0x9D252648778160DF, ped); } // 0x9d252648778160dfB1868 + // Immediately stops the pedestrian from whatever it's doing. They stop fighting, animations, etc. they forget what they were doing. + inline Void ClearPedTasksImmediately(Ped ped) { return _i(0xAAA34F8A7CB32098, ped); } // 0xaaa34f8a7cb320980xbc045625B323 + inline Void TaskPerformSequenceFromProgress(Ped ped, int taskIndex, int progress1, int progress2) { return _i(0x89221B16730234F0, ped, taskIndex, progress1, progress2); } // 0x89221b16730234f00xfa60601bB323 + // This native does absolutely nothing, just a nullsub + // + // R* Comment: + // SetNextDesiredMoveState - Function is deprecated - do not use anymore + inline Void SetNextDesiredMoveState(float nextMoveState) { return _i(0xF1B9F16E89E2C93A, nextMoveState); } // 0xf1b9f16e89e2c93a0x4e937d57B323 + inline Void SetPedDesiredMoveBlendRatio(Ped ped, float newMoveBlendRatio) { return _i(0x1E982AC8716912C5, ped, newMoveBlendRatio); } // 0x1e982ac8716912c50xc65fc712B323 + inline float GetPedDesiredMoveBlendRatio(Ped ped) { return _i(0x8517D4A6CA8513ED, ped); } // 0x8517d4a6ca8513ed0x5fefab72B323 + // eg + // + // TASK::TaskGotoEntityAiming(v_2, PLAYER::PlayerPedId(), 5.0, 25.0); + // + // ped = Ped you want to perform this task. + // target = the Entity they should aim at. + // distanceToStopAt = distance from the target, where the ped should stop to aim. + // StartAimingDist = distance where the ped should start to aim. + inline Void TaskGotoEntityAiming(Ped ped, Entity target, float distanceToStopAt, float StartAimingDist) { return _i(0xA9DA48FAB8A76C12, ped, target, distanceToStopAt, StartAimingDist); } // 0xa9da48fab8a76c120xf1c493cfB323 + // p1 is always GetHashKey("empty") in scripts, for the rare times this is used + inline Void TaskSetDecisionMaker(Ped ped, Hash decisionMakerId) { return _i(0xEB8517DDA73720DA, ped, decisionMakerId); } // 0xeb8517dda73720da0x830ad50cB323 + inline Void TaskSetSphereDefensiveArea(Ped ped, float x, float y, float z, float radius) { return _i(0x933C06518B52A9A4, ped, x, y, z, radius); } // 0x933c06518b52a9a40x9f3c5d6aB323 + inline Void TaskClearDefensiveArea(Ped ped) { return _i(0x95A6C46A31D1917D, ped); } // 0x95a6c46a31d1917d0x7a05bf0dB323 + inline Void TaskPedSlideToCoord(Ped ped, float x, float y, float z, float heading, float speed) { return _i(0xD04FE6765D990A06, ped, x, y, z, heading, speed); } // 0xd04fe6765d990a060x225380efB323 + inline Void TaskPedSlideToCoordHdgRate(Ped ped, float x, float y, float z, float heading, float speed, float headingChangeRate) { return _i(0x5A4A6A6D3DC64F52, ped, x, y, z, heading, speed, headingChangeRate); } // 0x5a4a6a6d3dc64f520x38a995c1B323 + inline ScrHandle AddCoverPoint(float x, float y, float z, float direction, int usage, int height, int arc, BOOL isPriority) { return _i(0xD5C12A75C7B9497F, x, y, z, direction, usage, height, arc, isPriority); } // 0xd5c12a75c7b9497f0xa0af0b98B323 + inline Void RemoveCoverPoint(ScrHandle coverpoint) { return _i(0xAE287C923D891715, coverpoint); } // 0xae287c923d8917150x0776888bB323 + // Checks if there is a cover point at position + inline BOOL DoesScriptedCoverPointExistAtCoords(float x, float y, float z) { return _i(0xA98B8E3C088E5A31, x, y, z); } // 0xa98b8e3c088e5a310x29f97a71B323 + inline Vector3 GetScriptedCoverPointCoords(ScrHandle coverpoint) { return _i(0x594A1028FC2A3E85, coverpoint); } // 0x594a1028fc2a3e850xc6b6ccc1B323 + inline Void AddScriptedCoverArea(float x, float y, float z, float radius) { return _i(0x28B7B9BFDAF274AA, x, y, z, radius); } // 0x28b7b9bfdaf274aaB2545 + // Makes the specified ped attack the target ped. + // p2 should be 0 + // p3 should be 16 + inline Void TaskCombatPed(Ped ped, Ped targetPed, int combatFlags, int threatResponseFlags) { return _i(0xF166E48407BAC484, ped, targetPed, combatFlags, threatResponseFlags); } // 0xf166e48407bac4840xcb0d8932B323 + inline Void TaskCombatPedTimed(Ped ped, Ped target, int time, int flags) { return _i(0x944F30DCB7096BDE, ped, target, time, flags); } // 0x944f30dcb7096bde0xf5ca2a45B323 + inline Void TaskSeekCoverFromPos(Ped ped, float x, float y, float z, int duration, BOOL allowPeekingAndFiring) { return _i(0x75AC2B60386D89F2, ped, x, y, z, duration, allowPeekingAndFiring); } // 0x75ac2b60386d89f20x83f18ee9B323 + inline Void TaskSeekCoverFromPed(Ped ped, Ped target, int duration, BOOL allowPeekingAndFiring) { return _i(0x84D32B3BEC531324, ped, target, duration, allowPeekingAndFiring); } // 0x84d32b3bec5313240xc1ec907eB323 + // p5 is always -1 + inline Void TaskSeekCoverToCoverPoint(Ped ped, ScrHandle coverpoint, float x, float y, float z, int time, BOOL allowPeekingAndFiring) { return _i(0xD43D95C7A869447F, ped, coverpoint, x, y, z, time, allowPeekingAndFiring); } // 0xd43d95c7a869447f0x3d026b29B323 + // p8 causes the ped to take the shortest route to the cover position. It may have something to do with navmesh or pathfinding mechanics. + // + // from michael2: + // TASK::TaskSeekCoverToCoords(ped, 967.5164794921875, -2121.603515625, 30.479299545288086, 978.94677734375, -2125.84130859375, 29.4752, -1, 1); + // + // + // appears to be shorter variation + // from michael3: + // TASK::TaskSeekCoverToCoords(ped, -2231.011474609375, 263.6326599121094, 173.60195922851562, -1, 0); + inline Void TaskSeekCoverToCoords(Ped ped, float x1, float y1, float z1, float x2, float y2, float z2, int timeout, BOOL shortRoute) { return _i(0x39246A6958EF072C, ped, x1, y1, z1, x2, y2, z2, timeout, shortRoute); } // 0x39246a6958ef072c0xfffe754eB323 + inline Void TaskPutPedDirectlyIntoCover(Ped ped, float x, float y, float z, int time, BOOL allowPeekingAndFiring, float blendInDuration, BOOL forceInitialFacingDirection, BOOL forceFaceLeft, int identifier, BOOL doEntry) { return _i(0x4172393E6BE1FECE, ped, x, y, z, time, allowPeekingAndFiring, blendInDuration, forceInitialFacingDirection, forceFaceLeft, identifier, doEntry); } // 0x4172393e6be1fece0xc9f00e68B323 + inline Void TaskWarpPedDirectlyIntoCover(Ped ped, int time, BOOL allowPeekingAndFiring, BOOL forceInitialFacingDirection, BOOL forceFaceLeft, int identifier) { return _i(0x6E01E9E8D89F8276, ped, time, allowPeekingAndFiring, forceInitialFacingDirection, forceFaceLeft, identifier); } // 0x6e01e9e8d89f8276B2545 + // p1 is 1, 2, or 3 in scripts + inline Void TaskExitCover(Ped ped, int exitType, float x, float y, float z) { return _i(0x79B258E397854D29, ped, exitType, x, y, z); } // 0x79b258e397854d290xc829fac9B323 + // from armenian3.c4 + // + // TASK::TaskPutPedDirectlyIntoMelee(PlayerPed, armenianPed, 0.0, -1.0, 0.0, 0); + // + inline Void TaskPutPedDirectlyIntoMelee(Ped ped, Ped meleeTarget, float blendInDuration, float timeInMelee, float strafePhaseSync, int aiCombatFlags) { return _i(0x1C6CD14A876FFE39, ped, meleeTarget, blendInDuration, timeInMelee, strafePhaseSync, aiCombatFlags); } // 0x1c6cd14a876ffe390x79e1d27dB323 + // used in sequence task + // + // both parameters seems to be always 0 + inline Void TaskToggleDuck(Ped ped, int toggleType) { return _i(0xAC96609B9995EDF8, ped, toggleType); } // 0xac96609b9995edf80x61cfbcbfB323 + // From re_prisonvanbreak: + // + // TASK::TaskGuardCurrentPosition(l_DD, 35.0, 35.0, 1); + inline Void TaskGuardCurrentPosition(Ped ped, float maxPatrolProximity, float defensiveAreaRadius, BOOL setDefensiveArea) { return _i(0x4A58A47A72E3FCB4, ped, maxPatrolProximity, defensiveAreaRadius, setDefensiveArea); } // 0x4a58a47a72e3fcb40x2fb099e9B323 + inline Void TaskGuardAssignedDefensiveArea(Ped ped, float x, float y, float z, float heading, float maxPatrolProximity, int timer) { return _i(0xD2A207EEBDF9889B, ped, x, y, z, heading, maxPatrolProximity, timer); } // 0xd2a207eebdf9889b0x7af0133dB323 + inline Void TaskGuardSphereDefensiveArea(Ped ped, float defendPositionX, float defendPositionY, float defendPositionZ, float heading, float maxPatrolProximity, int time, float x, float y, float z, float defensiveAreaRadius) { return _i(0xC946FE14BE0EB5E2, ped, defendPositionX, defendPositionY, defendPositionZ, heading, maxPatrolProximity, time, x, y, z, defensiveAreaRadius); } // 0xc946fe14be0eb5e20x86b76cb7B323 + // scenarioName example: "WORLD_HUMAN_GUARD_STAND" + inline Void TaskStandGuard(Ped ped, float x, float y, float z, float heading, String scenarioName) { return _i(0xAE032F8BBA959E90, ped, x, y, z, heading, scenarioName); } // 0xae032f8bba959e900xd130f636B323 + inline Void SetDriveTaskCruiseSpeed(Ped driver, float cruiseSpeed) { return _i(0x5C9B84BD7D31D908, driver, cruiseSpeed); } // 0x5c9b84bd7d31d9080x3cec07b1B323 + inline Void SetDriveTaskMaxCruiseSpeed(Ped ped, float speed) { return _i(0x404A5AA9B9F0B746, ped, speed); } // 0x404a5aa9b9f0b7460x7fdf6131B323 + // This native is used to set the driving style for specific ped. + // + // Driving styles id seems to be: + // 786468 + // 262144 + // 786469 + // + // http://gtaforums.com/topic/822314-guide-driving-styles/ + inline Void SetDriveTaskDrivingStyle(Ped ped, int drivingStyle) { return _i(0xDACE1BE37D88AF67, ped, drivingStyle); } // 0xdace1be37d88af670x59c5fad7B323 + inline Void AddCoverBlockingArea(float startX, float startY, float startZ, float endX, float endY, float endZ, BOOL blockObjects, BOOL blockVehicles, BOOL blockMap, BOOL blockPlayer) { return _i(0x45C597097DD7CB81, startX, startY, startZ, endX, endY, endZ, blockObjects, blockVehicles, blockMap, blockPlayer); } // 0x45c597097dd7cb810x3536946fB323 + inline Void RemoveAllCoverBlockingAreas() { return _i(0xDB6708C0B46F56D8); } // 0xdb6708c0b46f56d80xcf9221a7B323 + inline Void RemoveCoverBlockingAreasAtPosition(float x, float y, float z) { return _i(0xFA83CA6776038F64, x, y, z); } // 0xfa83ca6776038f64B1493 + inline Void RemoveSpecificCoverBlockingAreas(float startX, float startY, float startZ, float endX, float endY, float endZ, BOOL blockObjects, BOOL blockVehicles, BOOL blockMap, BOOL blockPlayer) { return _i(0x1F351CF1C6475734, startX, startY, startZ, endX, endY, endZ, blockObjects, blockVehicles, blockMap, blockPlayer); } // 0x1f351cf1c6475734B505 + // Plays a scenario on a Ped at their current location. + // + // unkDelay - Usually 0 or -1, doesn't seem to have any effect. Might be a delay between sequences. + // playEnterAnim - Plays the "Enter" anim if true, otherwise plays the "Exit" anim. Scenarios that don't have any "Enter" anims won't play if this is set to true. + // + // ---- + // + // From "am_hold_up.ysc.c4" at line 339: + // + // TASK::TaskStartScenarioInPlace(NETWORK::NetToPed(l_8D._f4), sub_adf(), 0, 1); + // + // I'm unsure of what the last two parameters are, however sub_adf() randomly returns 1 of 3 scenarios, those being: + // WORLD_HUMAN_SMOKING + // WORLD_HUMAN_HANG_OUT_STREET + // WORLD_HUMAN_STAND_MOBILE + // + // This makes sense, as these are what I commonly see when going by a liquor store. + // ------------------------- + // List of scenarioNames: https://pastebin.com/6mrYTdQv + // (^ Thank you so fucking much for this) + // + // Also these: + // WORLD_FISH_FLEE + // DRIVE + // WORLD_HUMAN_HIKER + // WORLD_VEHICLE_ATTRACTOR + // WORLD_VEHICLE_BICYCLE_MOUNTAIN + // WORLD_VEHICLE_BIKE_OFF_ROAD_RACE + // WORLD_VEHICLE_BIKER + // WORLD_VEHICLE_CONSTRUCTION_PASSENGERS + // WORLD_VEHICLE_CONSTRUCTION_SOLO + // WORLD_VEHICLE_DRIVE_PASSENGERS + // WORLD_VEHICLE_DRIVE_SOLO + // WORLD_VEHICLE_EMPTY + // WORLD_VEHICLE_PARK_PARALLEL + // WORLD_VEHICLE_PARK_PERPENDICULAR_NOSE_IN + // WORLD_VEHICLE_POLICE_BIKE + // WORLD_VEHICLE_POLICE_CAR + // WORLD_VEHICLE_POLICE_NEXT_TO_CAR + // WORLD_VEHICLE_SALTON_DIRT_BIKE + // WORLD_VEHICLE_TRUCK_LOGS + // + // Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json + inline Void TaskStartScenarioInPlace(Ped ped, String scenarioName, int unkDelay, BOOL playEnterAnim) { return _i(0x142A02425FF02BD9, ped, scenarioName, unkDelay, playEnterAnim); } // 0x142a02425ff02bd90xe50d6ddeB323 + // Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json + // + // Also a few more listed at TASK::TaskStartScenarioInPlace just above. + // --------------- + // The first parameter in every scenario has always been a Ped of some sort. The second like TaskStartScenarioInPlace is the name of the scenario. + // + // The next 4 parameters were harder to decipher. After viewing "hairdo_shop_mp.ysc.c4", and being confused from seeing the case in other scripts, they passed the first three of the arguments as one array from a function, and it looked like it was obviously x, y, and z. + // + // I haven't seen the sixth parameter go to or over 360, making me believe that it is rotation, but I really can't confirm anything. + // + // I have no idea what the last 3 parameters are, but I'll try to find out. + // + // -going on the last 3 parameters, they appear to always be "0, 0, 1" + // + // p6 -1 also used in scrips + // + // p7 used for sitting scenarios + // + // p8 teleports ped to position + inline Void TaskStartScenarioAtPosition(Ped ped, String scenarioName, float x, float y, float z, float heading, int duration, BOOL sittingScenario, BOOL teleport) { return _i(0xFA4EFC79F69D4F07, ped, scenarioName, x, y, z, heading, duration, sittingScenario, teleport); } // 0xfa4efc79f69d4f070xaa2c4ac2B323 + // Updated variables + // + // An alternative to TASK::TaskUseNearestScenarioToCoordWarp. Makes the ped walk to the scenario instead. + inline Void TaskUseNearestScenarioToCoord(Ped ped, float x, float y, float z, float distance, int duration) { return _i(0x277F471BA9DB000B, ped, x, y, z, distance, duration); } // 0x277f471ba9db000b0x9c50fbf0B323 + inline Void TaskUseNearestScenarioToCoordWarp(Ped ped, float x, float y, float z, float radius, int timeToLeave) { return _i(0x58E2E0F23F6B76C3, ped, x, y, z, radius, timeToLeave); } // 0x58e2e0f23f6b76c30x1be9d65cB323 + // p5 is always 0 in scripts + inline Void TaskUseNearestScenarioChainToCoord(Ped ped, float x, float y, float z, float maxRange, int timeToLeave) { return _i(0x9FDA1B3D7E7028B3, ped, x, y, z, maxRange, timeToLeave); } // 0x9fda1b3d7e7028b30xe32ffb22B323 + // p5 is always -1 or 0 in scripts + inline Void TaskUseNearestScenarioChainToCoordWarp(Ped ped, float x, float y, float z, float radius, int timeToLeave) { return _i(0x97A28E63F0BA5631, ped, x, y, z, radius, timeToLeave); } // 0x97a28e63f0ba56310xbab4c0aeB323 + inline BOOL DoesScenarioExistInArea(float x, float y, float z, float radius, BOOL mustBeFree) { return _i(0x5A59271FFADD33C1, x, y, z, radius, mustBeFree); } // 0x5a59271ffadd33c10xfa7f5047B323 + inline BOOL DoesScenarioOfTypeExistInArea(float x, float y, float z, String scenarioName, float radius, BOOL mustBeFree) { return _i(0x0A9D0C2A3BBC86C1, x, y, z, scenarioName, radius, mustBeFree); } // 0x0a9d0c2a3bbc86c10x0fb138a5B323 + inline BOOL IsScenarioOccupied(float x, float y, float z, float maxRange, BOOL onlyUsersActuallyAtScenario) { return _i(0x788756D73AC2E07C, x, y, z, maxRange, onlyUsersActuallyAtScenario); } // 0x788756d73ac2e07c0x697fc008B323 + inline BOOL PedHasUseScenarioTask(Ped ped) { return _i(0x295E3CCEC879CCD7, ped); } // 0x295e3ccec879ccd70x9be9c691B323 + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline Void PlayAnimOnRunningScenario(Ped ped, String animDict, String animName) { return _i(0x748040460F8DF5DC, ped, animDict, animName); } // 0x748040460f8df5dc0x1984a5d1B323 + // Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json + // Occurrences in the b617d scripts: + // + // "ARMY_GUARD", + // "ARMY_HELI", + // "Cinema_Downtown", + // "Cinema_Morningwood", + // "Cinema_Textile", + // "City_Banks", + // "Countryside_Banks", + // "DEALERSHIP", + // "GRAPESEED_PLANES", + // "KORTZ_SECURITY", + // "LOST_BIKERS", + // "LSA_Planes", + // "LSA_Planes", + // "MP_POLICE", + // "Observatory_Bikers", + // "POLICE_POUND1", + // "POLICE_POUND2", + // "POLICE_POUND3", + // "POLICE_POUND4", + // "POLICE_POUND5" + // "QUARRY", + // "SANDY_PLANES", + // "SCRAP_SECURITY", + // "SEW_MACHINE", + // "SOLOMON_GATE", + // "Triathlon_1_Start", + // "Triathlon_2_Start", + // "Triathlon_3_Start" + // + // Sometimes used with IsScenarioGroupEnabled: + // if (TASK::DoesScenarioGroupExist("Observatory_Bikers") && (!TASK::IsScenarioGroupEnabled("Observatory_Bikers"))) { + // else if (TASK::IsScenarioGroupEnabled("BLIMP")) { + // + inline BOOL DoesScenarioGroupExist(String scenarioGroup) { return _i(0xF9034C136C9E00D3, scenarioGroup); } // 0xf9034c136c9e00d30x5f072eb9B323 + // Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json + // Occurrences in the b617d scripts: + // + // "ARMY_GUARD", + // "ARMY_HELI", + // "BLIMP", + // "Cinema_Downtown", + // "Cinema_Morningwood", + // "Cinema_Textile", + // "City_Banks", + // "Countryside_Banks", + // "DEALERSHIP", + // "KORTZ_SECURITY", + // "LSA_Planes", + // "MP_POLICE", + // "Observatory_Bikers", + // "POLICE_POUND1", + // "POLICE_POUND2", + // "POLICE_POUND3", + // "POLICE_POUND4", + // "POLICE_POUND5", + // "Rampage1", + // "SANDY_PLANES", + // "SCRAP_SECURITY", + // "SEW_MACHINE", + // "SOLOMON_GATE" + // + // Sometimes used with DoesScenarioGroupExist: + // if (TASK::DoesScenarioGroupExist("Observatory_Bikers") && (!TASK::IsScenarioGroupEnabled("Observatory_Bikers"))) { + // else if (TASK::IsScenarioGroupEnabled("BLIMP")) { + inline BOOL IsScenarioGroupEnabled(String scenarioGroup) { return _i(0x367A09DED4E05B99, scenarioGroup); } // 0x367a09ded4e05b990x90991122B323 + // Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json + // Occurrences in the b617d scripts: https://pastebin.com/Tvg2PRHU + inline Void SetScenarioGroupEnabled(String scenarioGroup, BOOL enabled) { return _i(0x02C8E5B49848664E, scenarioGroup, enabled); } // 0x02c8e5b49848664e0x116997b1B323 + inline Void ResetScenarioGroupsEnabled() { return _i(0xDD902D0349AFAD3A); } // 0xdd902d0349afad3a0xbf55025dB323 + // Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json + // Groups found in the scripts used with this native: + // + // "AMMUNATION", + // "QUARRY", + // "Triathlon_1", + // "Triathlon_2", + // "Triathlon_3" + inline Void SetExclusiveScenarioGroup(String scenarioGroup) { return _i(0x535E97E1F7FC0C6A, scenarioGroup); } // 0x535e97e1f7fc0c6a0x59db8f26B323 + inline Void ResetExclusiveScenarioGroup() { return _i(0x4202BBCB8684563D); } // 0x4202bbcb8684563d0x17f9dfe8B323 + // Full list of scenario types used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json + // Occurrences in the b617d scripts: + // "PROP_HUMAN_SEAT_CHAIR", + // "WORLD_HUMAN_DRINKING", + // "WORLD_HUMAN_HANG_OUT_STREET", + // "WORLD_HUMAN_SMOKING", + // "WORLD_MOUNTAIN_LION_WANDER", + // "WORLD_HUMAN_DRINKING" + // + // Sometimes used together with MISC::IsStringNullOrEmpty in the scripts. + // + // scenarioType could be the same as scenarioName, used in for example TASK::TaskStartScenarioAtPosition. + // + inline BOOL IsScenarioTypeEnabled(String scenarioType) { return _i(0x3A815DB3EA088722, scenarioType); } // 0x3a815db3ea0887220xae37e969B323 + // Full list of scenario types used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json + // seems to enable/disable specific scenario-types from happening in the game world. + // + // Here are some scenario types from the scripts: + // "WORLD_MOUNTAIN_LION_REST" + // "WORLD_MOUNTAIN_LION_WANDER" + // "DRIVE" + // "WORLD_VEHICLE_POLICE_BIKE" + // "WORLD_VEHICLE_POLICE_CAR" + // "WORLD_VEHICLE_POLICE_NEXT_TO_CAR" + // "WORLD_VEHICLE_DRIVE_SOLO" + // "WORLD_VEHICLE_BIKER" + // "WORLD_VEHICLE_DRIVE_PASSENGERS" + // "WORLD_VEHICLE_SALTON_DIRT_BIKE" + // "WORLD_VEHICLE_BICYCLE_MOUNTAIN" + // "PROP_HUMAN_SEAT_CHAIR" + // "WORLD_VEHICLE_ATTRACTOR" + // "WORLD_HUMAN_LEANING" + // "WORLD_HUMAN_HANG_OUT_STREET" + // "WORLD_HUMAN_DRINKING" + // "WORLD_HUMAN_SMOKING" + // "WORLD_HUMAN_GUARD_STAND" + // "WORLD_HUMAN_CLIPBOARD" + // "WORLD_HUMAN_HIKER" + // "WORLD_VEHICLE_EMPTY" + // "WORLD_VEHICLE_BIKE_OFF_ROAD_RACE" + // "WORLD_HUMAN_PAPARAZZI" + // "WORLD_VEHICLE_PARK_PERPENDICULAR_NOSE_IN" + // "WORLD_VEHICLE_PARK_PARALLEL" + // "WORLD_VEHICLE_CONSTRUCTION_SOLO" + // "WORLD_VEHICLE_CONSTRUCTION_PASSENGERS" + // "WORLD_VEHICLE_TRUCK_LOGS" + // + // scenarioType could be the same as scenarioName, used in for example TASK::TaskStartScenarioAtPosition. + inline Void SetScenarioTypeEnabled(String scenarioType, BOOL toggle) { return _i(0xEB47EC4E34FB7EE1, scenarioType, toggle); } // 0xeb47ec4e34fb7ee10xdb18e5deB323 + inline Void ResetScenarioTypesEnabled() { return _i(0x0D40EE2A7F2B2D6D); } // 0x0d40ee2a7f2b2d6d0xf58fdeb4B323 + inline BOOL IsPedActiveInScenario(Ped ped) { return _i(0xAA135F9482C82CC3, ped); } // 0xaa135f9482c82cc30x05038f1aB323 + // Used only once (am_mp_property_int) + // + // ped was PlayerPedId() + // + // Related to CTaskAmbientClips. + inline BOOL IsPedPlayingBaseClipInScenario(Ped ped) { return _i(0x621C6E4729388E41, ped); } // 0x621c6e4729388e410xa0da6b1dB323 + // Appears only in fm_mission_controller and used only 3 times. + // + // ped was always PlayerPedId() + // p1 was always true + // p2 was always true + inline Void SetPedCanPlayAmbientIdles(Ped ped, BOOL blockIdleClips, BOOL removeIdleClipIfPlaying) { return _i(0x8FD89A6240813FD0, ped, blockIdleClips, removeIdleClipIfPlaying); } // 0x8fd89a6240813fd00xb5ad044eB323 + // Despite its name, it only attacks ONE hated target. The one closest to the specified position. + inline Void TaskCombatHatedTargetsInArea(Ped ped, float x, float y, float z, float radius, int combatFlags) { return _i(0x4CF5F55DAC3280A0, ped, x, y, z, radius, combatFlags); } // 0x4cf5f55dac3280a00xdf099e18B323 + // Despite its name, it only attacks ONE hated target. The one closest hated target. + // + // p2 seems to be always 0 + inline Void TaskCombatHatedTargetsAroundPed(Ped ped, float radius, int combatFlags) { return _i(0x7BF835BB9E2698C8, ped, radius, combatFlags); } // 0x7bf835bb9e2698c80x2e7064e4B323 + inline Void TaskCombatHatedTargetsAroundPedTimed(Ped ped, float radius, int time, int combatFlags) { return _i(0x2BBA30B854534A0C, ped, radius, time, combatFlags); } // 0x2bba30b854534a0c0xf127ad6aB323 + // In every case of this native, I've only seen the first parameter passed as 0, although I believe it's a Ped after seeing tasks around it using 0. That's because it's used in a Sequence Task. + // + // The last 3 parameters are definitely coordinates after seeing them passed in other scripts, and even being used straight from the player's coordinates. + // --- + // It seems that - in the decompiled scripts - this native was used on a ped who was in a vehicle to throw a projectile out the window at the player. This is something any ped will naturally do if they have a throwable and they are doing driveby-combat (although not very accurately). + // It is possible, however, that this is how SWAT throws smoke grenades at the player when in cover. + // ---------------------------------------------------- + // The first comment is right it definately is the ped as if you look in script finale_heist2b.c line 59628 in Xbox Scripts atleast you will see task_throw_projectile and the first param is Local_559[2 <14>] if you look above it a little bit line 59622 give_weapon_to_ped uses the same exact param Local_559[2 <14>] and we all know the first param of that native is ped. So it guaranteed has to be ped. 0 just may mean to use your ped by default for some reason. + inline Void TaskThrowProjectile(Ped ped, float x, float y, float z, int ignoreCollisionEntityIndex, BOOL createInvincibleProjectile) { return _i(0x7285951DBF6B5A51, ped, x, y, z, ignoreCollisionEntityIndex, createInvincibleProjectile); } // 0x7285951dbf6b5a510xf65c20a7B323 + inline Void TaskSwapWeapon(Ped ped, BOOL drawWeapon) { return _i(0xA21C51255B205245, ped, drawWeapon); } // 0xa21c51255b2052450xdaf4f8fcB323 + // The 2nd param (drawWeapon) is not implemented. + // + // ----------------------------------------------------------------------- + // + // The only occurrence I found in a R* script ("assassin_construction.ysc.c4"): + // + // if (((v_3 < v_4) && (TASK::GetScriptTaskStatus(PLAYER::PlayerPedId(), 0x6a67a5cc) != 1)) && (v_5 > v_3)) { + // TASK::TaskReloadWeapon(PLAYER::PlayerPedId(), 1); + // } + inline Void TaskReloadWeapon(Ped ped, BOOL drawWeapon) { return _i(0x62D2916F56B9CD2D, ped, drawWeapon); } // 0x62d2916f56b9cd2d0xca6e91fdB323 + inline BOOL IsPedGettingUp(Ped ped) { return _i(0x2A74E1D5F2F00EEC, ped); } // 0x2a74e1d5f2f00eec0x320813e6B323 + // EX: Function.Call(Ped1, Ped2, Time, 0); + // + // The last parameter is always 0 for some reason I do not know. The first parameter is the pedestrian who will writhe to the pedestrian in the other parameter. The third paremeter is how long until the Writhe task ends. When the task ends, the ped will die. If set to -1, he will not die automatically, and the task will continue until something causes it to end. This can be being touched by an entity, being shot, explosion, going into ragdoll, having task cleared. Anything that ends the current task will kill the ped at this point. + // + // + // + // Third parameter does not appear to be time. The last parameter is not implemented (It's not used, regardless of value). + inline Void TaskWrithe(Ped ped, Ped target, int minFireLoops, int startState, BOOL forceShootOnGround, int shootFromGroundTimer) { return _i(0xCDDC2B77CE54AC6E, ped, target, minFireLoops, startState, forceShootOnGround, shootFromGroundTimer); } // 0xcddc2b77ce54ac6e0x0fdc54fcB323 + // This native checks if a ped is on the ground, in pain from a (gunshot) wound. + // Returns `true` if the ped is in writhe, `false` otherwise. + inline BOOL IsPedInWrithe(Ped ped) { return _i(0xDEB6D52126E7D640, ped); } // 0xdeb6d52126e7d6400x09e61921B323 + // patrolRoutes found in the b617d scripts: + // "miss_Ass0", + // "miss_Ass1", + // "miss_Ass2", + // "miss_Ass3", + // "miss_Ass4", + // "miss_Ass5", + // "miss_Ass6", + // "MISS_PATROL_6", + // "MISS_PATROL_7", + // "MISS_PATROL_8", + // "MISS_PATROL_9", + // "miss_Tower_01", + // "miss_Tower_02", + // "miss_Tower_03", + // "miss_Tower_04", + // "miss_Tower_05", + // "miss_Tower_06", + // "miss_Tower_07", + // "miss_Tower_08", + // "miss_Tower_10" + inline Void OpenPatrolRoute(String patrolRoute) { return _i(0xA36BFB5EE89F3D82, patrolRoute); } // 0xa36bfb5ee89f3d820xf33f83caB323 + inline Void ClosePatrolRoute() { return _i(0xB043ECA801B8CBC1); } // 0xb043eca801b8cbc10x67305e59B323 + // Example: + // TASK::AddPatrolRouteNode(2, "WORLD_HUMAN_GUARD_STAND", -193.4915, -2378.864990234375, 10.9719, -193.4915, -2378.864990234375, 10.9719, 3000); + // + // p0 is between 0 and 4 in the scripts. + // + // p1 is "WORLD_HUMAN_GUARD_STAND" or "StandGuard". + // + // p2, p3 and p4 is only one parameter sometimes in the scripts. Most likely a Vector3 hence p2, p3 and p4 are coordinates. + // Examples: + // TASK::AddPatrolRouteNode(1, "WORLD_HUMAN_GUARD_STAND", l_739[7/*3*/], 0.0, 0.0, 0.0, 0); + // + // TASK::AddPatrolRouteNode(1, "WORLD_HUMAN_GUARD_STAND", l_B0[17/*44*/]._f3, l_B0[17/*44*/]._f3, 2000); + // + // p5, p6 and p7 are for example set to: 1599.0406494140625, 2713.392578125, 44.4309. + // + // p8 is an int, often random set to for example: MISC::GetRandomIntInRange(5000, 10000). + inline Void AddPatrolRouteNode(int nodeId, String nodeType, float posX, float posY, float posZ, float headingX, float headingY, float headingZ, int duration) { return _i(0x8EDF950167586B7C, nodeId, nodeType, posX, posY, posZ, headingX, headingY, headingZ, duration); } // 0x8edf950167586b7c0x21b48f10B323 + inline Void AddPatrolRouteLink(int nodeId1, int nodeId2) { return _i(0x23083260DEC3A551, nodeId1, nodeId2); } // 0x23083260dec3a5510xd8761bb3B323 + inline Void CreatePatrolRoute() { return _i(0xAF8A443CCC8018DC); } // 0xaf8a443ccc8018dc0x0a6c7864B323 + // From the b617d scripts: + // + // TASK::DeletePatrolRoute("miss_merc0"); + // TASK::DeletePatrolRoute("miss_merc1"); + // TASK::DeletePatrolRoute("miss_merc2"); + // TASK::DeletePatrolRoute("miss_dock"); + inline Void DeletePatrolRoute(String patrolRoute) { return _i(0x7767DD9D65E91319, patrolRoute); } // 0x7767dd9d65e913190x2a4e6706B323 + inline BOOL GetPatrolTaskInfo(Ped ped, int* timeLeftAtNode, int* nodeId) { return _i(0x52F734CEBE20DFBA, ped, timeLeftAtNode, nodeId); } // 0x52f734cebe20dfbaB2545 + // After looking at some scripts the second parameter seems to be an id of some kind. Here are some I found from some R* scripts: + // + // "miss_Tower_01" (this went from 01 - 10) + // "miss_Ass0" (0, 4, 6, 3) + // "MISS_PATROL_8" + // + // I think they're patrol routes, but I'm not sure. And I believe the 3rd parameter is a BOOL, but I can't confirm other than only seeing 0 and 1 being passed. + // + // + // As far as I can see the patrol routes names such as "miss_Ass0" have been defined earlier in the scripts. This leads me to believe we can defined our own new patrol routes by following the same approach. + // From the scripts + // + // TASK::OpenPatrolRoute("miss_Ass0"); + // TASK::AddPatrolRouteNode(0, "WORLD_HUMAN_GUARD_STAND", l_738[0/*3*/], -139.4076690673828, -993.4732055664062, 26.2754, MISC::GetRandomIntInRange(5000, 10000)); + // TASK::AddPatrolRouteNode(1, "WORLD_HUMAN_GUARD_STAND", l_738[1/*3*/], -116.1391830444336, -987.4984130859375, 26.38541030883789, MISC::GetRandomIntInRange(5000, 10000)); + // TASK::AddPatrolRouteNode(2, "WORLD_HUMAN_GUARD_STAND", l_738[2/*3*/], -128.46847534179688, -979.0340576171875, 26.2754, MISC::GetRandomIntInRange(5000, 10000)); + // TASK::AddPatrolRouteLink(0, 1); + // TASK::AddPatrolRouteLink(1, 2); + // TASK::AddPatrolRouteLink(2, 0); + // TASK::ClosePatrolRoute(); + // TASK::CreatePatrolRoute(); + // + // + inline Void TaskPatrol(Ped ped, String patrolRouteName, int alertState, BOOL canChatToPeds, BOOL useHeadLookAt) { return _i(0xBDA5DF49D080FE4E, ped, patrolRouteName, alertState, canChatToPeds, useHeadLookAt); } // 0xbda5df49d080fe4e0xb92e5af6B323 + // Makes the ped run to take cover + inline Void TaskStayInCover(Ped ped) { return _i(0xE5DA8615A6180789, ped); } // 0xe5da8615a61807890xa27a9413B323 + // x, y, z: offset in world coords from some entity. + inline Void AddVehicleSubtaskAttackCoord(Ped ped, float x, float y, float z) { return _i(0x5CF0D8F9BBA0DD75, ped, x, y, z); } // 0x5cf0d8f9bba0dd750x50779a2cB323 + inline Void AddVehicleSubtaskAttackPed(Ped ped, Ped target) { return _i(0x85F462BADC7DA47F, ped, target); } // 0x85f462badc7da47f0x80461113B323 + inline Void TaskVehicleShootAtPed(Ped ped, Ped target, float fireTolerance) { return _i(0x10AB107B887214D8, ped, target, fireTolerance); } // 0x10ab107b887214d80x59677ba0B323 + inline Void TaskVehicleAimAtPed(Ped ped, Ped target) { return _i(0xE41885592B08B097, ped, target); } // 0xe41885592b08b0970x920ae6dbB323 + inline Void TaskVehicleShootAtCoord(Ped ped, float x, float y, float z, float fireTolerance) { return _i(0x5190796ED39C9B6D, ped, x, y, z, fireTolerance); } // 0x5190796ed39c9b6d0xa7aaa4d6B323 + inline Void TaskVehicleAimAtCoord(Ped ped, float x, float y, float z) { return _i(0x447C1E9EF844BC0F, ped, x, y, z); } // 0x447c1e9ef844bc0f0x010f47ceB323 + // Differs from TASK_VEHICLE_DRIVE_TO_COORDS in that it will pick the shortest possible road route without taking one-way streets and other "road laws" into consideration. + // + // WARNING: + // A behaviorFlag value of 0 will result in a clunky, stupid driver! + // + // Recommended settings: + // speed = 30.0f, + // behaviorFlag = 156, + // stoppingRange = 5.0f; + // + // If you simply want to have your driver move to a fixed location, call it only once, or, when necessary in the event of interruption. + // + // If using this to continually follow a Ped who is on foot: You will need to run this in a tick loop. Call it in with the Ped's updated coordinates every 20 ticks or so and you will have one hell of a smart, fast-reacting NPC driver -- provided he doesn't get stuck. If your update frequency is too fast, the Ped may not have enough time to figure his way out of being stuck, and thus, remain stuck. One way around this would be to implement an "anti-stuck" mechanism, which allows the driver to realize he's stuck, temporarily pause the tick, unstuck, then resume the tick. + // + // EDIT: This is being discussed in more detail at http://gtaforums.com/topic/818504-any-idea-on-how-to-make-peds-clever-and-insanely-fast-c/ + inline Void TaskVehicleGotoNavmesh(Ped ped, Vehicle vehicle, float x, float y, float z, float speed, int behaviorFlag, float stoppingRange) { return _i(0x195AEEB13CEFE2EE, ped, vehicle, x, y, z, speed, behaviorFlag, stoppingRange); } // 0x195aeeb13cefe2ee0x55cf3bcdB323 + // movement_speed: mostly 2f, but also 1/1.2f, etc. + // p8: always false + // p9: 2f + // p10: 0.5f + // p11: true + // p12: 0 / 512 / 513, etc. + // p13: 0 + // firing_pattern: ${firing_pattern_full_auto}, 0xC6EE6B4C + inline Void TaskGoToCoordWhileAimingAtCoord(Ped ped, float x, float y, float z, float aimAtX, float aimAtY, float aimAtZ, float moveBlendRatio, BOOL shoot, float targetRadius, float slowDistance, BOOL useNavMesh, int navFlags, BOOL instantBlendToAim, Hash firingPattern) { return _i(0x11315AB3385B8AC0, ped, x, y, z, aimAtX, aimAtY, aimAtZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern); } // 0x11315ab3385b8ac00x1552dc91B323 + inline Void TaskGoToCoordWhileAimingAtEntity(Ped ped, float x, float y, float z, Entity aimAtID, float moveBlendRatio, BOOL shoot, float targetRadius, float slowDistance, BOOL useNavMesh, int navFlags, BOOL instantBlendToAim, Hash firingPattern, int time) { return _i(0xB2A16444EAD9AE47, ped, x, y, z, aimAtID, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern, time); } // 0xb2a16444ead9ae470x9bd52abdB323 + // The ped will walk or run towards goToLocation, aiming towards goToLocation or focusLocation (depending on the aimingFlag) and shooting if shootAtEnemies = true to any enemy in his path. + // + // If the ped is closer than noRoadsDistance, the ped will ignore pathing/navmesh and go towards goToLocation directly. This could cause the ped to get stuck behind tall walls if the goToLocation is on the other side. To avoid this, use 0.0f and the ped will always use pathing/navmesh to reach his destination. + // + // If the speed is set to 0.0f, the ped will just stand there while aiming, if set to 1.0f he will walk while aiming, 2.0f will run while aiming. + // + // The ped will stop aiming when he is closer than distanceToStopAt to goToLocation. + // + // I still can't figure out what unkTrue is used for. I don't notice any difference if I set it to false but in the decompiled scripts is always true. + // + // I think that unkFlag, like the driving styles, could be a flag that "work as a list of 32 bits converted to a decimal integer. Each bit acts as a flag, and enables or disables a function". What leads me to this conclusion is the fact that in the decompiled scripts, unkFlag takes values like: 0, 1, 5 (101 in binary) and 4097 (4096 + 1 or 1000000000001 in binary). For now, I don't know what behavior enable or disable this possible flag so I leave it at 0. + // + // Note: After some testing, using unkFlag = 16 (0x10) enables the use of sidewalks while moving towards goToLocation. + // + // The aimingFlag takes 2 values: 0 to aim at the focusLocation, 1 to aim at where the ped is heading (goToLocation). + // + // Example: + // + // enum AimFlag + // { + // AimAtFocusLocation, + // AimAtGoToLocation + // }; + // + // Vector3 goToLocation1 = { 996.2867f, 0, -2143.044f, 0, 28.4763f, 0 }; // remember the padding. + // + // Vector3 goToLocation2 = { 990.2867f, 0, -2140.044f, 0, 28.4763f, 0 }; // remember the padding. + // + // Vector3 focusLocation = { 994.3478f, 0, -2136.118f, 0, 29.2463f, 0 }; // the coord z should be a little higher, around +1.0f to avoid aiming at the ground + // + // // 1st example + // TASK::TaskGoToCoordAndAimAtHatedEntitiesNearCoord(pedHandle, goToLocation1.x, goToLocation1.y, goToLocation1.z, focusLocation.x, focusLocation.y, focusLocation.z, 2.0f /*run*/, true /*shoot*/, 3.0f /*stop at*/, 0.0f /*noRoadsDistance*/, true /*always true*/, 0 /*possible flag*/, AimFlag::AimAtGoToLocation, -957453492 /*FullAuto pattern*/); + // + // // 2nd example + // TASK::TaskGoToCoordAndAimAtHatedEntitiesNearCoord(pedHandle, goToLocation2.x, goToLocation2.y, goToLocation2.z, focusLocation.x, focusLocation.y, focusLocation.z, 1.0f /*walk*/, false /*don't shoot*/, 3.0f /*stop at*/, 0.0f /*noRoadsDistance*/, true /*always true*/, 0 /*possible flag*/, AimFlag::AimAtFocusLocation, -957453492 /*FullAuto pattern*/); + // + // + // 1st example: The ped (pedhandle) will run towards goToLocation1. While running and aiming towards goToLocation1, the ped will shoot on sight to any enemy in his path, using "FullAuto" firing pattern. The ped will stop once he is closer than distanceToStopAt to goToLocation1. + // + // 2nd example: The ped will walk towards goToLocation2. This time, while walking towards goToLocation2 and aiming at focusLocation, the ped will point his weapon on sight to any enemy in his path without shooting. The ped will stop once he is closer than distanceToStopAt to goToLocation2. + inline Void TaskGoToCoordAndAimAtHatedEntitiesNearCoord(Ped pedHandle, float goToLocationX, float goToLocationY, float goToLocationZ, float focusLocationX, float focusLocationY, float focusLocationZ, float speed, BOOL shootAtEnemies, float distanceToStopAt, float noRoadsDistance, BOOL useNavMesh, int navFlags, int taskFlags, Hash firingPattern) { return _i(0xA55547801EB331FC, pedHandle, goToLocationX, goToLocationY, goToLocationZ, focusLocationX, focusLocationY, focusLocationZ, speed, shootAtEnemies, distanceToStopAt, noRoadsDistance, useNavMesh, navFlags, taskFlags, firingPattern); } // 0xa55547801eb331fc0x3f91358eB323 + inline Void TaskGoToEntityWhileAimingAtCoord(Ped ped, Entity entity, float aimX, float aimY, float aimZ, float moveBlendRatio, BOOL shoot, float targetRadius, float slowDistance, BOOL useNavMesh, BOOL instantBlendToAim, Hash firingPattern) { return _i(0x04701832B739DCE5, ped, entity, aimX, aimY, aimZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); } // 0x04701832b739dce50xd896cd82B323 + // shootatEntity: + // If true, peds will shoot at Entity till it is dead. + // If false, peds will just walk till they reach the entity and will cease shooting. + inline Void TaskGoToEntityWhileAimingAtEntity(Ped ped, Entity entityToWalkTo, Entity entityToAimAt, float speed, BOOL shootatEntity, float targetRadius, float slowDistance, BOOL useNavMesh, BOOL instantBlendToAim, Hash firingPattern) { return _i(0x97465886D35210E9, ped, entityToWalkTo, entityToAimAt, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); } // 0x97465886d35210e90x68e36b7aB323 + // Makes the ped ragdoll like when falling from a great height + inline Void SetHighFallTask(Ped ped, int minTime, int maxTime, int entryType) { return _i(0x8C825BDC7741D37C, ped, minTime, maxTime, entryType); } // 0x8c825bdc7741d37c0xbbb26172B323 + // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json + // For a full list of the points, see here: goo.gl/wIH0vn + // + // Max number of loaded recordings is 32. + inline Void RequestWaypointRecording(String name) { return _i(0x9EEFB62EB27B5792, name); } // 0x9eefb62eb27b57920xafabfb5dB323 + // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json + inline BOOL GetIsWaypointRecordingLoaded(String name) { return _i(0xCB4E8BE8A0063C5D, name); } // 0xcb4e8be8a0063c5d0x87125f5dB323 + // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json + inline Void RemoveWaypointRecording(String name) { return _i(0xFF1B8B4AA1C25DC8, name); } // 0xff1b8b4aa1c25dc80x624530b0B323 + // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json + // For a full list of the points, see here: goo.gl/wIH0vn + inline BOOL WaypointRecordingGetNumPoints(String name, int* points) { return _i(0x5343532C01A07234, name, points); } // 0x5343532c01a072340xf5f9b71eB323 + // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json + // For a full list of the points, see here: goo.gl/wIH0vn + inline BOOL WaypointRecordingGetCoord(String name, int point, Vector3* coord) { return _i(0x2FB897405C90B361, name, point, coord); } // 0x2fb897405c90b3610x19266913B323 + // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json + inline float WaypointRecordingGetSpeedAtPoint(String name, int point) { return _i(0x005622AEBC33ACA9, name, point); } // 0x005622aebc33aca90xc765633aB323 + // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json + // For a full list of the points, see here: goo.gl/wIH0vn + inline BOOL WaypointRecordingGetClosestWaypoint(String name, float x, float y, float z, int* point) { return _i(0xB629A298081F876F, name, x, y, z, point); } // 0xb629a298081f876f0xc4cd35afB323 + inline Void TaskFollowWaypointRecording(Ped ped, String name, int p2, int p3, int p4) { return _i(0x0759591819534F7B, ped, name, p2, p3, p4); } // 0x0759591819534f7b0xadf9904dB323 + inline BOOL IsWaypointPlaybackGoingOnForPed(Ped ped) { return _i(0xE03B3F2D3DC59B64, ped); } // 0xe03b3f2d3dc59b640x85b7725fB323 + inline int GetPedWaypointProgress(Ped ped) { return _i(0x2720AAA75001E094, ped); } // 0x2720aaa75001e0940x3595b104B323 + inline float GetPedWaypointDistance(Any p0) { return _i(0xE6A877C64CAF1BC5, p0); } // 0xe6a877c64caf1bc50x084b35b0B323 + inline BOOL SetPedWaypointRouteOffset(Ped ped, float x, float y, float z) { return _i(0xED98E10B0AFCE4B4, ped, x, y, z); } // 0xed98e10b0afce4b40xf867f747B323 + inline float GetWaypointDistanceAlongRoute(String name, int point) { return _i(0xA5B769058763E497, name, point); } // 0xa5b769058763e4970xe8422ac4B323 + inline BOOL WaypointPlaybackGetIsPaused(Any p0) { return _i(0x701375A7D43F01CB, p0); } // 0x701375a7d43f01cb0xa6bb5717B323 + inline Void WaypointPlaybackPause(Any p0, BOOL p1, BOOL p2) { return _i(0x0F342546AA06FED5, p0, p1, p2); } // 0x0f342546aa06fed50xfe39ecf8B323 + inline Void WaypointPlaybackResume(Any p0, BOOL p1, Any p2, Any p3) { return _i(0x244F70C84C547D2D, p0, p1, p2, p3); } // 0x244f70c84c547d2d0x50f392efB323 + inline Void WaypointPlaybackOverrideSpeed(Any p0, float p1, BOOL p2) { return _i(0x7D7D2B47FA788E85, p0, p1, p2); } // 0x7d7d2b47fa788e850x23e6ba96B323 + inline Void WaypointPlaybackUseDefaultSpeed(Any p0) { return _i(0x6599D834B12D0800, p0); } // 0x6599d834b12d08000x1bbb2cacB323 + inline Void UseWaypointRecordingAsAssistedMovementRoute(String name, BOOL p1, float p2, float p3) { return _i(0x5A353B8E6B1095B5, name, p1, p2, p3); } // 0x5a353b8e6b1095b50x4dfd5fecB323 + inline Void WaypointPlaybackStartAimingAtPed(Ped ped, Ped target, BOOL p2) { return _i(0x20E330937C399D29, ped, target, p2); } // 0x20e330937c399d290x75e60cf6B323 + inline Void WaypointPlaybackStartAimingAtCoord(Ped ped, float x, float y, float z, BOOL p4) { return _i(0x8968400D900ED8B3, ped, x, y, z, p4); } // 0x8968400d900ed8b30xf120a34eB323 + inline Void WaypointPlaybackStartShootingAtPed(Ped ped, Ped ped2, BOOL p2, BOOL p3) { return _i(0xE70BA7B90F8390DC, ped, ped2, p2, p3); } // 0xe70ba7b90f8390dc0xbd5f0eb8B323 + inline Void WaypointPlaybackStartShootingAtCoord(Ped ped, float x, float y, float z, BOOL p4, Hash firingPattern) { return _i(0x057A25CFCC9DB671, ped, x, y, z, p4, firingPattern); } // 0x057a25cfcc9db6710xcddb44d5B323 + inline Void WaypointPlaybackStopAimingOrShooting(Ped ped) { return _i(0x47EFA040EBB8E2EA, ped); } // 0x47efa040ebb8e2ea0x6d7cf40cB323 + // Routes: "1_FIBStairs", "2_FIBStairs", "3_FIBStairs", "4_FIBStairs", "5_FIBStairs", "5_TowardsFire", "6a_FIBStairs", "7_FIBStairs", "8_FIBStairs", "Aprtmnt_1", "AssAfterLift", "ATM_1", "coroner2", "coroner_stairs", "f5_jimmy1", "fame1", "family5b", "family5c", "Family5d", "family5d", "FIB_Glass1", "FIB_Glass2", "FIB_Glass3", "finaBroute1A", "finalb1st", "finalB1sta", "finalbround", "finalbroute2", "Hairdresser1", "jan_foyet_ft_door", "Jo_3", "Lemar1", "Lemar2", "mansion_1", "Mansion_1", "pols_1", "pols_2", "pols_3", "pols_4", "pols_5", "pols_6", "pols_7", "pols_8", "Pro_S1", "Pro_S1a", "Pro_S2", "Towards_case", "trev_steps", "tunrs1", "tunrs2", "tunrs3", "Wave01457s" + inline Void AssistedMovementRequestRoute(String route) { return _i(0x817268968605947A, route); } // 0x817268968605947a0x48262edaB323 + inline Void AssistedMovementRemoveRoute(String route) { return _i(0x3548536485DD792B, route); } // 0x3548536485dd792b0xb3cec06fB323 + inline BOOL AssistedMovementIsRouteLoaded(String route) { return _i(0x60F9A4393A21F741, route); } // 0x60f9a4393a21f7410x79b067afB323 + inline Void AssistedMovementSetRouteProperties(String route, int props) { return _i(0xD5002D78B7162E1B, route, props); } // 0xd5002d78b7162e1b0x01caafccB323 + inline Void AssistedMovementOverrideLoadDistanceThisFrame(float dist) { return _i(0x13945951E16EF912, dist); } // 0x13945951e16ef9120x8fb923ecB323 + // + // + // p2 = Waypoint recording string (found in update\update.rpf\x64\levels\gta5\waypointrec.rpf + // p3 = 786468 + // p4 = 0 + // p5 = 16 + // p6 = -1 (angle?) + // p7/8/9 = usually v3.zero + // p10 = BOOL (repeat?) + // p11 = 1073741824 + // + // Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json + inline Void TaskVehicleFollowWaypointRecording(Ped ped, Vehicle vehicle, String WPRecording, int p3, int p4, int p5, int p6, float p7, BOOL p8, float p9) { return _i(0x3123FAA6DB1CF7ED, ped, vehicle, WPRecording, p3, p4, p5, p6, p7, p8, p9); } // 0x3123faa6db1cf7ed0x959818b6B323 + inline BOOL IsWaypointPlaybackGoingOnForVehicle(Vehicle vehicle) { return _i(0xF5134943EA29868C, vehicle); } // 0xf5134943ea29868c0x80dd15dbB323 + inline int GetVehicleWaypointProgress(Vehicle vehicle) { return _i(0x9824CFF8FC66E159, vehicle); } // 0x9824cff8fc66e1590xd3ccf64eB323 + inline int GetVehicleWaypointTargetPoint(Vehicle vehicle) { return _i(0x416B62AC8B9E5BBD, vehicle); } // 0x416b62ac8b9e5bbd0x81049608B323 + inline Void VehicleWaypointPlaybackPause(Vehicle vehicle) { return _i(0x8A4E6AC373666BC5, vehicle); } // 0x8a4e6ac373666bc50x7c00b415B323 + inline Void VehicleWaypointPlaybackResume(Vehicle vehicle) { return _i(0xDC04FCAA7839D492, vehicle); } // 0xdc04fcaa7839d4920xbeb14c82B323 + inline Void VehicleWaypointPlaybackUseDefaultSpeed(Vehicle vehicle) { return _i(0x5CEB25A7D2848963, vehicle); } // 0x5ceb25a7d28489630x923c3aa4B323 + inline Void VehicleWaypointPlaybackOverrideSpeed(Vehicle vehicle, float speed) { return _i(0x121F0593E0A431D7, vehicle, speed); } // 0x121f0593e0a431d70xbe1e7bb4B323 + // I cant believe I have to define this, this is one of the best natives. + // + // It makes the ped ignore basically all shocking events around it. Occasionally the ped may comment or gesture, but other than that they just continue their daily activities. This includes shooting and wounding the ped. And - most importantly - they do not flee. + // + // Since it is a task, every time the native is called the ped will stop for a moment. + inline Void TaskSetBlockingOfNonTemporaryEvents(Ped ped, BOOL toggle) { return _i(0x90D2156198831D69, ped, toggle); } // 0x90d2156198831d690x1b54fb6bB323 + // p2 always false + // + // [30/03/2017] ins1de : + // + // See ForcePedMotionState + inline Void TaskForceMotionState(Ped ped, Hash state, BOOL forceRestart) { return _i(0x4F056E1AFFEF17AB, ped, state, forceRestart); } // 0x4f056e1affef17ab0xcad2ef77B323 + // Example: + // TASK::TaskMoveNetworkByName(PLAYER::PlayerPedId(), "arm_wrestling_sweep_paired_a_rev3", 0.0f, true, "mini@arm_wrestling", 0); + inline Void TaskMoveNetworkByName(Ped ped, String task, float multiplier, BOOL allowOverrideCloneUpdate, String animDict, int flags) { return _i(0x2D537BA194896636, ped, task, multiplier, allowOverrideCloneUpdate, animDict, flags); } // 0x2d537ba1948966360x6f5d215fB323 + // Example: + // TASK::TaskMoveNetworkAdvancedByName(PLAYER::PlayerPedId(), "minigame_tattoo_michael_parts", 324.13f, 181.29f, 102.6f, 0.0f, 0.0f, 22.32f, 2, 0, false, 0, 0); + inline Void TaskMoveNetworkAdvancedByName(Ped ped, String network, float x, float y, float z, float rotX, float rotY, float rotZ, int rotOrder, float blendDuration, BOOL allowOverrideCloneUpdate, String animDict, int flags) { return _i(0xD5B35BEA41919ACB, ped, network, x, y, z, rotX, rotY, rotZ, rotOrder, blendDuration, allowOverrideCloneUpdate, animDict, flags); } // 0xd5b35bea41919acb0x71a5c5dbB323 + // Used only once in the scripts (am_mp_nightclub) + inline Void TaskMoveNetworkByNameWithInitParams(Ped ped, String network, int* initialParameters, float blendDuration, BOOL allowOverrideCloneUpdate, String animDict, int flags) { return _i(0x3D45B0B355C5E0C9, ped, network, initialParameters, blendDuration, allowOverrideCloneUpdate, animDict, flags); } // 0x3d45b0b355c5e0c9B1493 + inline Void TaskMoveNetworkAdvancedByNameWithInitParams(Ped ped, String network, int* initialParameters, float x, float y, float z, float rotX, float rotY, float rotZ, int rotOrder, float blendDuration, BOOL allowOverrideCloneUpdate, String dictionary, int flags) { return _i(0x29682E2CCF21E9B5, ped, network, initialParameters, x, y, z, rotX, rotY, rotZ, rotOrder, blendDuration, allowOverrideCloneUpdate, dictionary, flags); } // 0x29682e2ccf21e9b5B1868 + inline BOOL IsTaskMoveNetworkActive(Ped ped) { return _i(0x921CE12C489C4C41, ped); } // 0x921ce12c489c4c410x902656ebB323 + inline BOOL IsTaskMoveNetworkReadyForTransition(Ped ped) { return _i(0x30ED88D5E0C56A37, ped); } // 0x30ed88d5e0c56a370x92fdbae6B323 + inline BOOL RequestTaskMoveNetworkStateTransition(Ped ped, String name) { return _i(0xD01015C7316AE176, ped, name); } // 0xd01015c7316ae1760x885724deB323 + // Used only once in the scripts (fm_mission_controller) like so: + // + // TASK::SetExpectedCloneNextTaskMoveNetworkState(iLocal_3160, "Cutting"); + inline BOOL SetExpectedCloneNextTaskMoveNetworkState(Ped ped, String state) { return _i(0xAB13A5565480B6D9, ped, state); } // 0xab13a5565480b6d90x1e58a7adB323 + inline String GetTaskMoveNetworkState(Ped ped) { return _i(0x717E4D1F2048376D, ped); } // 0x717e4d1f2048376d0x96c0277bB323 + inline Void SetTaskMoveNetworkAnimSet(Ped ped, Hash clipSet, Hash variableClipSet) { return _i(0x8423541E8B3A1589, ped, clipSet, variableClipSet); } // 0x8423541e8b3a1589B1493 + // signalName - "Phase", "Wobble", "x_axis","y_axis","introphase","speed". + // p2 - From what i can see it goes up to 1f (maybe). + // + // Example: TASK::SetTaskMoveNetworkSignalFloat(PLAYER::PlayerPedId(), "Phase", 0.5); + inline Void SetTaskMoveNetworkSignalFloat(Ped ped, String signalName, float value) { return _i(0xD5BB4025AE449A4E, ped, signalName, value); } // 0xd5bb4025ae449a4e0xa79be783B323 + inline Void SetTaskMoveNetworkSignalLocalFloat(Ped ped, String signalName, float value) { return _i(0x373EF409B82697A3, ped, signalName, value); } // 0x373ef409b82697a3B1493 + inline Void SetTaskMoveNetworkSignalFloatLerpRate(Ped ped, String signalName, float value) { return _i(0x8634CEF2522D987B, ped, signalName, value); } // 0x8634cef2522d987bB1493 + inline Void SetTaskMoveNetworkSignalBool(Ped ped, String signalName, BOOL value) { return _i(0xB0A6CFD2C69C1088, ped, signalName, value); } // 0xb0a6cfd2c69c10880xf3538041B323 + inline float GetTaskMoveNetworkSignalFloat(Ped ped, String signalName) { return _i(0x44AB0B3AFECCE242, ped, signalName); } // 0x44ab0b3afecce242B1493 + inline BOOL GetTaskMoveNetworkSignalBool(Ped ped, String signalName) { return _i(0xA7FFBA498E4AAF67, ped, signalName); } // 0xa7ffba498e4aaf670x1ebb6f3dB323 + inline BOOL GetTaskMoveNetworkEvent(Ped ped, String eventName) { return _i(0xB4F47213DF45A64C, ped, eventName); } // 0xb4f47213df45a64c0x72fa5ef2B323 + // Doesn't actually return anything. + inline BOOL SetTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed(Ped ped, BOOL enable) { return _i(0x0FFB3C758E8C07B9, ped, enable); } // 0x0ffb3c758e8c07b9B2060 + inline Void SetScriptTaskEnableCollisionOnNetworkCloneWhenFixed(Ped ped, BOOL enable) { return _i(0x32F6EEF031F943DC, ped, enable); } // 0x32f6eef031f943dcB3095 + inline BOOL IsMoveBlendRatioStill(Ped ped) { return _i(0x349CE7B56DAFD95C, ped); } // 0x349ce7b56dafd95c0xe9daf877B323 + inline BOOL IsMoveBlendRatioWalking(Ped ped) { return _i(0xF133BBBE91E1691F, ped); } // 0xf133bbbe91e1691f0xd21639a8B323 + inline BOOL IsMoveBlendRatioRunning(Ped ped) { return _i(0xD4D8636C0199A939, ped); } // 0xd4d8636c0199a9390xe76a2353B323 + inline BOOL IsMoveBlendRatioSprinting(Ped ped) { return _i(0x24A2AD74FA9814E2, ped); } // 0x24a2ad74fa9814e20xdd616893B323 + inline BOOL IsPedStill(Ped ped) { return _i(0xAC29253EEF8F0180, ped); } // 0xac29253eef8f01800x09e3418dB323 + inline BOOL IsPedWalking(Ped ped) { return _i(0xDE4C184B2B9B071A, ped); } // 0xde4c184b2b9b071a0x4b865c4aB323 + inline BOOL IsPedRunning(Ped ped) { return _i(0xC5286FFC176F28A2, ped); } // 0xc5286ffc176f28a20xe9a5578fB323 + inline BOOL IsPedSprinting(Ped ped) { return _i(0x57E457CD2C0FC168, ped); } // 0x57e457cd2c0fc1680x4f3e0633B323 + // What's strafing? + inline BOOL IsPedStrafing(Ped ped) { return _i(0xE45B7F222DE47E09, ped); } // 0xe45b7f222de47e090xefeed13cB323 + // TASK::TaskSynchronizedScene(ped, scene, "creatures@rottweiler@in_vehicle@std_car", "get_in", 1000.0, -8.0, 4, 0, 0x447a0000, 0); + // + // Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json + inline Void TaskSynchronizedScene(Ped ped, int scene, String animDictionary, String animationName, float blendIn, float blendOut, int flags, int ragdollBlockingFlags, float moverBlendDelta, int ikFlags) { return _i(0xEEA929141F699854, ped, scene, animDictionary, animationName, blendIn, blendOut, flags, ragdollBlockingFlags, moverBlendDelta, ikFlags); } // 0xeea929141f6998540x4f217e7bB323 + inline Void TaskAgitatedActionConfrontResponse(Ped ped, Ped ped2) { return _i(0x19D1B791CB3670FE, ped, ped2); } // 0x19d1b791cb3670feB877 + // This function is called on peds in vehicles. + // + // anim: animation name + // p2, p3, p4: "sweep_low", "sweep_med" or "sweep_high" + // p5: no idea what it does but is usually -1 + inline Void TaskSweepAimEntity(Ped ped, String animDict, String lowAnimName, String medAnimName, String hiAnimName, int runtime, Entity targetEntity, float turnRate, float blendInDuration) { return _i(0x2047C02158D6405A, ped, animDict, lowAnimName, medAnimName, hiAnimName, runtime, targetEntity, turnRate, blendInDuration); } // 0x2047c02158d6405a0x4d210467B323 + inline Void UpdateTaskSweepAimEntity(Ped ped, Entity entity) { return _i(0xE4973DBDBE6E44B3, ped, entity); } // 0xe4973dbdbe6e44b30xf65f0f4fB323 + inline Void TaskSweepAimPosition(Ped ped, String animDict, String lowAnimName, String medAnimName, String hiAnimName, int runtime, float x, float y, float z, float turnRate, float blendInDuration) { return _i(0x7AFE8FDC10BC07D2, ped, animDict, lowAnimName, medAnimName, hiAnimName, runtime, x, y, z, turnRate, blendInDuration); } // 0x7afe8fdc10bc07d20x1683fe66B323 + inline Void UpdateTaskSweepAimPosition(Ped ped, float x, float y, float z) { return _i(0xBB106883F5201FC4, ped, x, y, z); } // 0xbb106883f5201fc40x6345ec80B323 + // Example from "me_amanda1.ysc.c4": + // TASK::TaskArrestPed(l_19F /* This is a Ped */ , PLAYER::PlayerPedId()); + // + // Example from "armenian1.ysc.c4": + // if (!PED::IsPedInjured(l_B18[0/*1*/])) { + // TASK::TaskArrestPed(l_B18[0/*1*/], PLAYER::PlayerPedId()); + // } + // + // I would love to have time to experiment to see if a player Ped can arrest another Ped. Might make for a good cop mod. + // + // + // Looks like only the player can be arrested this way. Peds react and try to arrest you if you task them, but the player charater doesn't do anything if tasked to arrest another ped. + inline Void TaskArrestPed(Ped ped, Ped target) { return _i(0xF3B9A78A178572B1, ped, target); } // 0xf3b9a78a178572b10xbc0f153dB323 + inline BOOL IsPedRunningArrestTask(Ped ped) { return _i(0x3DC52677769B4AE0, ped); } // 0x3dc52677769b4ae00x6942db7aB323 + // This function is hard-coded to always return 0. + inline BOOL IsPedBeingArrested(Ped ped) { return _i(0x90A09F3A45FED688, ped); } // 0x90a09f3a45fed6880x5ff6c2edB323 + inline Void UncuffPed(Ped ped) { return _i(0x67406F2C8F87FC4F, ped); } // 0x67406f2c8f87fc4f0xa23a1d61B323 + inline BOOL IsPedCuffed(Ped ped) { return _i(0x74E559B3BC910685, ped); } // 0x74e559b3bc9106850x511ce741B323 } namespace VEHICLE { - // p7 when set to true allows you to spawn vehicles under -100 z. - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline Vehicle CreateVehicle(Hash modelHash, float x, float y, float z, float heading, BOOL isNetwork, BOOL bScriptHostVeh, BOOL p7) { return _i(0xAF35D0D2583051B0, modelHash, x, y, z, heading, isNetwork, bScriptHostVeh, p7); } // 0xaf35d0d2583051b00xdd75460aB323 - // Deletes a vehicle. - // The vehicle must be a mission entity to delete, so call this before deleting: SetEntityAsMissionEntity(vehicle, true, true); - // - // eg how to use: - // SetEntityAsMissionEntity(vehicle, true, true); - // DeleteVehicle(&vehicle); - // - // Deletes the specified vehicle, then sets the handle pointed to by the pointer to NULL. - inline Void DeleteVehicle(Vehicle* vehicle) { return _i(0xEA386986E786A54F, vehicle); } // 0xea386986e786a54f0x9803af60B323 - inline Void SetVehicleAllowHomingMissleLockon(Vehicle vehicle, BOOL toggle, BOOL p2) { return _i(0x7D6F9A3EF26136A0, vehicle, toggle, p2); } // 0x7d6f9a3ef26136a00xbb54eccaB323 - inline Void SetVehicleAllowHomingMissleLockonSynced(Vehicle vehicle, BOOL canBeLockedOn, BOOL p2) { return _i(0x1DDA078D12879EEE, vehicle, canBeLockedOn, p2); } // 0x1dda078d12879eeeB463 - // Makes the vehicle accept no passengers. - inline Void SetVehicleAllowNoPassengersLockon(Vehicle veh, BOOL toggle) { return _i(0x5D14D4154BFE7B2C, veh, toggle); } // 0x5d14d4154bfe7b2c0x8baac437B323 - // Returns a value depending on the lock-on state of vehicle weapons. - // 0: not locked on - // 1: locking on - // 2: locked on - inline int GetVehicleHomingLockonState(Vehicle vehicle) { return _i(0xE6B0E8CFC3633BF0, vehicle); } // 0xe6b0e8cfc3633bf00xfbde9fd8B323 - inline int GetVehicleHomingLockedontoState(Any p0) { return _i(0x6EAAEFC76ACC311F, p0); } // 0x6eaaefc76acc311fB757 - inline Void SetVehicleHomingLockedontoState(Any p0, Any p1) { return _i(0x407DC5E97DB1A4D3, p0, p1); } // 0x407dc5e97db1a4d3B1493 - inline BOOL IsVehicleModel(Vehicle vehicle, Hash model) { return _i(0x423E8DE37D934D89, vehicle, model); } // 0x423e8de37d934d890x013b10b6B323 - inline BOOL DoesScriptVehicleGeneratorExist(int vehicleGenerator) { return _i(0xF6086BC836400876, vehicleGenerator); } // 0xf6086bc8364008760xf6bdda30B323 - // Creates a script vehicle generator at the given coordinates. Most parameters after the model hash are unknown. - // - // Parameters: - // x/y/z - Generator position - // heading - Generator heading - // p4 - Unknown (always 5.0) - // p5 - Unknown (always 3.0) - // modelHash - Vehicle model hash - // p7/8/9/10 - Unknown (always -1) - // p11 - Unknown (usually TRUE, only one instance of FALSE) - // p12/13 - Unknown (always FALSE) - // p14 - Unknown (usally FALSE, only two instances of TRUE) - // p15 - Unknown (always TRUE) - // p16 - Unknown (always -1) - // - // Vector3 coords = GetEntityCoords(PlayerPedId(), 0); CreateScriptVehicleGenerator(coords.x, coords.y, coords.z, 1.0f, 5.0f, 3.0f, GetHashKey("adder"), -1. -1, -1, -1, -1, true, false, false, false, true, -1); - inline int CreateScriptVehicleGenerator(float x, float y, float z, float heading, float p4, float p5, Hash modelHash, int p7, int p8, int p9, int p10, BOOL p11, BOOL p12, BOOL p13, BOOL p14, BOOL p15, int p16) { return _i(0x9DEF883114668116, x, y, z, heading, p4, p5, modelHash, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16); } // 0x9def8831146681160x25a9a261B323 - inline Void DeleteScriptVehicleGenerator(int vehicleGenerator) { return _i(0x22102C9ABFCF125D, vehicleGenerator); } // 0x22102c9abfcf125d0xe4328e3fB323 - // Only called once in the decompiled scripts. Presumably activates the specified generator. - inline Void SetScriptVehicleGenerator(int vehicleGenerator, BOOL enabled) { return _i(0xD9D620E0AC6DC4B0, vehicleGenerator, enabled); } // 0xd9d620e0ac6dc4b00x40d73747B323 - // When p6 is true, vehicle generators are active. - // p7 seems to always be true in story mode scripts, but it's sometimes false in online scripts. - inline Void SetAllVehicleGeneratorsActiveInArea(float x1, float y1, float z1, float x2, float y2, float z2, BOOL toggle, BOOL p7) { return _i(0xC12321827687FE4D, x1, y1, z1, x2, y2, z2, toggle, p7); } // 0xc12321827687fe4d0xb4e0e69aB323 - inline Void SetAllVehicleGeneratorsActive() { return _i(0x34AD89078831A4BC); } // 0x34ad89078831a4bc0xab1fdd76B323 - inline Void SetAllLowPriorityVehicleGeneratorsActive(BOOL active) { return _i(0x608207E7A8FB787C, active); } // 0x608207e7a8fb787c0x87f767f2B323 - // Related to car generators & CPlayerSwitchMgrLong - inline Void SetVehicleGeneratorAreaOfInterest(float x, float y, float z, float radius) { return _i(0x9A75585FB2E54FAD, x, y, z, radius); } // 0x9a75585fb2e54fad0x935a95daB323 - inline Void ClearVehicleGeneratorAreaOfInterest() { return _i(0x0A436B8643716D14); } // 0x0a436b8643716d140x6c73e45aB323 - // Sets a vehicle on the ground on all wheels. Returns whether or not the operation was successful. - // - // sfink: This has an additional param(Vehicle vehicle, float p1) which is always set to 5.0f in the b944 scripts. - inline BOOL SetVehicleOnGroundProperly(Vehicle vehicle, float p1) { return _i(0x49733E92263139D1, vehicle, p1); } // 0x49733e92263139d10xe14fdba6B323 - inline BOOL SetVehicleUseCutsceneWheelCompression(Vehicle p0, BOOL p1, BOOL p2, BOOL p3) { return _i(0xE023E8AC4EF7C117, p0, p1, p2, p3); } // 0xe023e8ac4ef7c1170xa0909adbB323 - inline BOOL IsVehicleStuckOnRoof(Vehicle vehicle) { return _i(0xB497F06B288DCFDF, vehicle); } // 0xb497f06b288dcfdf0x18d07c6cB323 - inline Void AddVehicleUpsidedownCheck(Vehicle vehicle) { return _i(0xB72E26D81006005B, vehicle); } // 0xb72e26d81006005b0x3a13d384B323 - inline Void RemoveVehicleUpsidedownCheck(Vehicle vehicle) { return _i(0xC53EB42A499A7E90, vehicle); } // 0xc53eb42a499a7e900xf390ba1bB323 - // Returns true if the vehicle's current speed is less than, or equal to 0.0025f. - // - // For some vehicles it returns true if the current speed is <= 0.00039999999. - inline BOOL IsVehicleStopped(Vehicle vehicle) { return _i(0x5721B434AD84D57A, vehicle); } // 0x5721b434ad84d57a0x655f072cB323 - // Gets the number of passengers. - // - // This native was modified in b2545 to take two additional parameters, allowing you to include the driver or exclude dead passengers. - // - // To keep it working like before b2545, set includeDriver to false and includeDeadOccupants to true. - inline int GetVehicleNumberOfPassengers(Vehicle vehicle, BOOL includeDriver, BOOL includeDeadOccupants) { return _i(0x24CB2137731FFE89, vehicle, includeDriver, includeDeadOccupants); } // 0x24cb2137731ffe890x1ef20849B323 - inline int GetVehicleMaxNumberOfPassengers(Vehicle vehicle) { return _i(0xA7C4F2C6E744A550, vehicle); } // 0xa7c4f2c6e744a5500x0a2fc08cB323 - // Returns max number of passengers (including the driver) for the specified vehicle model. - // - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline int GetVehicleModelNumberOfSeats(Hash modelHash) { return _i(0x2AD93716F184EDA4, modelHash); } // 0x2ad93716f184eda40x838f7bf7B323 - inline BOOL IsSeatWarpOnly(Vehicle vehicle, int seatIndex) { return _i(0xF7F203E31F96F6A1, vehicle, seatIndex); } // 0xf7f203e31f96f6a10x769e5cf2B323 - inline BOOL IsTurretSeat(Vehicle vehicle, int seatIndex) { return _i(0xE33FFA906CE74880, vehicle, seatIndex); } // 0xe33ffa906ce748800x7c43d32aB323 - // Returns true if the vehicle has the FLAG_ALLOWS_RAPPEL flag set. - inline BOOL DoesVehicleAllowRappel(Vehicle vehicle) { return _i(0x4E417C547182C84D, vehicle); } // 0x4e417c547182c84dB757 - // Use this native inside a looped function. - // Values: - // - `0.0` = no vehicles on streets - // - `1.0` = normal vehicles on streets - inline Void SetVehicleDensityMultiplierThisFrame(float multiplier) { return _i(0x245A6883D966D537, multiplier); } // 0x245a6883d966d5370xf4187e51B323 - inline Void SetRandomVehicleDensityMultiplierThisFrame(float multiplier) { return _i(0xB3B3359379FE77D3, multiplier); } // 0xb3b3359379fe77d30x543f712bB323 - inline Void SetParkedVehicleDensityMultiplierThisFrame(float multiplier) { return _i(0xEAE6DCC7EEE3DB1D, multiplier); } // 0xeae6dcc7eee3db1d0xdd46cebeB323 - inline Void SetDisableRandomTrainsThisFrame(BOOL toggle) { return _i(0xD4B8E3D1917BC86B, toggle); } // 0xd4b8e3d1917bc86b0x09462665B323 - inline Void SetAmbientVehicleRangeMultiplierThisFrame(float value) { return _i(0x90B6DA738A9A25DA, value); } // 0x90b6da738a9a25da0xdae2a2beB323 - inline Void SetFarDrawVehicles(BOOL toggle) { return _i(0x26324F33423F3CC3, toggle); } // 0x26324f33423f3cc30x9f019c49B323 - inline Void SetNumberOfParkedVehicles(int value) { return _i(0xCAA15F13EBD417FF, value); } // 0xcaa15f13ebd417ff0x206a58e8B323 - // enum eVehicleLockState - // { - // VEHICLELOCK_NONE, - // VEHICLELOCK_UNLOCKED, - // VEHICLELOCK_LOCKED, - // VEHICLELOCK_LOCKOUT_PLAYER_ONLY, - // VEHICLELOCK_LOCKED_PLAYER_INSIDE, - // VEHICLELOCK_LOCKED_INITIALLY, - // VEHICLELOCK_FORCE_SHUT_DOORS, - // VEHICLELOCK_LOCKED_BUT_CAN_BE_DAMAGED, - // VEHICLELOCK_LOCKED_BUT_BOOT_UNLOCKED, - // VEHICLELOCK_LOCKED_NO_PASSENGERS, - // VEHICLELOCK_CANNOT_ENTER - // }; - inline Void SetVehicleDoorsLocked(Vehicle vehicle, int doorLockStatus) { return _i(0xB664292EAECF7FA6, vehicle, doorLockStatus); } // 0xb664292eaecf7fa60x4cdd35d0B323 - // doorId: see SetVehicleDoorShut - inline Void SetVehicleIndividualDoorsLocked(Vehicle vehicle, int doorId, int doorLockStatus) { return _i(0xBE70724027F85BCD, vehicle, doorId, doorLockStatus); } // 0xbe70724027f85bcd0xd61d182dB323 - // If set to true, prevents vehicle sirens from having sound, leaving only the lights. - inline Void SetVehicleHasMutedSirens(Vehicle vehicle, BOOL toggle) { return _i(0xD8050E0EB60CF274, vehicle, toggle); } // 0xd8050e0eb60cf2740xc54156a9B323 - inline Void SetVehicleDoorsLockedForPlayer(Vehicle vehicle, Player player, BOOL toggle) { return _i(0x517AAF684BB50CD1, vehicle, player, toggle); } // 0x517aaf684bb50cd10x49829236B323 - inline BOOL GetVehicleDoorsLockedForPlayer(Vehicle vehicle, Player player) { return _i(0xF6AF6CB341349015, vehicle, player); } // 0xf6af6cb3413490150x1dc50247B323 - // After some analysis, I've decided that these are what the parameters are. - // - // We can see this being used in R* scripts such as "am_mp_property_int.ysc.c4": - // l_11A1 = PED::GetVehiclePedIsIn(PLAYER::PlayerPedId(), 1); - // ... - // VEHICLE::SetVehicleDoorsLockedForAllPlayers(l_11A1, 1); - inline Void SetVehicleDoorsLockedForAllPlayers(Vehicle vehicle, BOOL toggle) { return _i(0xA2F80B8D040727CC, vehicle, toggle); } // 0xa2f80b8d040727cc0x891ba8a4B323 - inline Void SetVehicleDoorsLockedForNonScriptPlayers(Vehicle vehicle, BOOL toggle) { return _i(0x9737A37136F07E75, vehicle, toggle); } // 0x9737a37136f07e750xe4ef6514B323 - inline Void SetVehicleDoorsLockedForTeam(Vehicle vehicle, int team, BOOL toggle) { return _i(0xB81F6D4A8F5EEBA8, vehicle, team, toggle); } // 0xb81f6d4a8f5eeba80x4f85e783B323 - inline Void SetVehicleDoorsLockedForAllTeams(Vehicle vehicle, BOOL toggle) { return _i(0x203B527D1B77904C, vehicle, toggle); } // 0x203b527d1b77904cB1365 - inline Void SetVehicleDontTerminateTaskWhenAchieved(Vehicle vehicle) { return _i(0x76D26A22750E849E, vehicle); } // 0x76d26a22750e849eB1103 - // Explodes a selected vehicle. - // - // Vehicle vehicle = Vehicle you want to explode. - // BOOL isAudible = If explosion makes a sound. - // BOOL isInvisible = If the explosion is invisible or not. - // - // First BOOL does not give any visual explosion, the vehicle just falls apart completely but slowly and starts to burn. - inline Void ExplodeVehicle(Vehicle vehicle, BOOL isAudible, BOOL isInvisible) { return _i(0xBA71116ADF5B514C, vehicle, isAudible, isInvisible); } // 0xba71116adf5b514c0xbedeacebB323 - // Tested on the player's current vehicle. Unless you kill the driver, the vehicle doesn't loose control, however, if enabled, explodeOnImpact is still active. The moment you crash, boom. - inline Void SetVehicleOutOfControl(Vehicle vehicle, BOOL killDriver, BOOL explodeOnImpact) { return _i(0xF19D095E42D430CC, vehicle, killDriver, explodeOnImpact); } // 0xf19d095e42d430cc0x3764d734B323 - inline Void SetVehicleTimedExplosion(Vehicle vehicle, Ped ped, BOOL toggle) { return _i(0x2E0A74E1002380B1, vehicle, ped, toggle); } // 0x2e0a74e1002380b10xdb8cb8e2B323 - inline Void AddVehiclePhoneExplosiveDevice(Vehicle vehicle) { return _i(0x99AD4CCCB128CBC9, vehicle); } // 0x99ad4cccb128cbc90x811373deB323 - inline Void ClearVehiclePhoneExplosiveDevice() { return _i(0xAA3F739ABDDCF21F); } // 0xaa3f739abddcf21fB463 - inline BOOL HasVehiclePhoneExplosiveDevice() { return _i(0x6ADAABD3068C5235); } // 0x6adaabd3068c52350xa4e69134B323 - inline Void DetonateVehiclePhoneExplosiveDevice() { return _i(0xEF49CF0270307CBE); } // 0xef49cf0270307cbe0x65255524B323 - inline BOOL HaveVehicleRearDoorsBeenBlownOpenByStickybomb(Vehicle vehicle) { return _i(0x6B407F2525E93644, vehicle); } // 0x6b407f2525e93644B2944 - // This is not tested - it's just an assumption. - // - Nac - // - // Doesn't seem to work. I'll try with an int instead. --JT - // - // Read the scripts, im dumpass. - // - // if (!VEHICLE::IsTaxiLightOn(l_115)) { - // VEHICLE::SetTaxiLights(l_115, 1); - // } - inline Void SetTaxiLights(Vehicle vehicle, BOOL state) { return _i(0x598803E85E8448D9, vehicle, state); } // 0x598803e85e8448d90x68639d85B323 - inline BOOL IsTaxiLightOn(Vehicle vehicle) { return _i(0x7504C0F113AB50FC, vehicle); } // 0x7504c0f113ab50fc0x6fc4924aB323 - // garageName example "Michael - Beverly Hills" - // - // Full list of garages by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/garages.json - inline BOOL IsVehicleInGarageArea(String garageName, Vehicle vehicle) { return _i(0xCEE4490CD57BB3C2, garageName, vehicle); } // 0xcee4490cd57bb3c20xa90ec257B323 - // colorPrimary & colorSecondary are the paint index for the vehicle. - // For a list of valid paint indexes, view: https://pastebin.com/pwHci0xK - // ------------------------------------------------------------------------- - // Note: minimum color index is 0, maximum color index is (numColorIndices - 1) - // - // Full list of vehicle colors by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json - inline Void SetVehicleColours(Vehicle vehicle, int colorPrimary, int colorSecondary) { return _i(0x4F1D4BE3A7F24601, vehicle, colorPrimary, colorSecondary); } // 0x4f1d4be3a7f246010x57f24253B323 - // It switch to highbeam when p1 is set to true. - inline Void SetVehicleFullbeam(Vehicle vehicle, BOOL toggle) { return _i(0x8B7FD87F0DDB421E, vehicle, toggle); } // 0x8b7fd87f0ddb421e0x9c49cc15B323 - // p1 (toggle) was always 1 (true) except in one case in the b678 scripts. - inline Void SetVehicleIsRacing(Vehicle vehicle, BOOL toggle) { return _i(0x07116E24E9D1929D, vehicle, toggle); } // 0x07116e24e9d1929d0xa59e3dcdB323 - // p1, p2, p3 are RGB values for color (255,0,0 for Red, ect) - inline Void SetVehicleCustomPrimaryColour(Vehicle vehicle, int r, int g, int b) { return _i(0x7141766F91D15BEA, vehicle, r, g, b); } // 0x7141766f91d15bea0x8df9f9bcB323 - inline Void GetVehicleCustomPrimaryColour(Vehicle vehicle, int* r, int* g, int* b) { return _i(0xB64CF2CCA9D95F52, vehicle, r, g, b); } // 0xb64cf2cca9d95f520x1c2b9fefB323 - inline Void ClearVehicleCustomPrimaryColour(Vehicle vehicle) { return _i(0x55E1D2758F34E437, vehicle); } // 0x55e1d2758f34e4370x51e1e33dB323 - inline BOOL GetIsVehiclePrimaryColourCustom(Vehicle vehicle) { return _i(0xF095C0405307B21B, vehicle); } // 0xf095c0405307b21b0xd7ec8760B323 - // p1, p2, p3 are RGB values for color (255,0,0 for Red, ect) - inline Void SetVehicleCustomSecondaryColour(Vehicle vehicle, int r, int g, int b) { return _i(0x36CED73BFED89754, vehicle, r, g, b); } // 0x36ced73bfed897540x9d77259eB323 - inline Void GetVehicleCustomSecondaryColour(Vehicle vehicle, int* r, int* g, int* b) { return _i(0x8389CD56CA8072DC, vehicle, r, g, b); } // 0x8389cd56ca8072dc0x3ff247a2B323 - inline Void ClearVehicleCustomSecondaryColour(Vehicle vehicle) { return _i(0x5FFBDEEC3E8E2009, vehicle); } // 0x5ffbdeec3e8e20090x7ce00b29B323 - // Check if Vehicle Secondary is avaliable for customize - inline BOOL GetIsVehicleSecondaryColourCustom(Vehicle vehicle) { return _i(0x910A32E7AAD2656C, vehicle); } // 0x910a32e7aad2656c0x288ad228B323 - // The parameter fade is a value from 0-1, where 0 is fresh paint. - inline Void SetVehicleEnveffScale(Vehicle vehicle, float fade) { return _i(0x3AFDC536C3D01674, vehicle, fade); } // 0x3afdc536c3d016740x8332730cB323 - // The result is a value from 0-1, where 0 is fresh paint. - inline float GetVehicleEnveffScale(Vehicle vehicle) { return _i(0xA82819CAC9C4C403, vehicle); } // 0xa82819cac9c4c4030xd5f1eee1B323 - // Hardcoded to not work in multiplayer. - inline Void SetCanResprayVehicle(Vehicle vehicle, BOOL state) { return _i(0x52BBA29D5EC69356, vehicle, state); } // 0x52bba29d5ec693560x37677590B323 - // Used for GTAO CEO/Associate spawned vehicles. - inline Void SetGoonBossVehicle(Vehicle vehicle, BOOL toggle) { return _i(0xAB31EF4DE6800CE9, vehicle, toggle); } // 0xab31ef4de6800ce9B573 - inline Void SetOpenRearDoorsOnExplosion(Vehicle vehicle, BOOL toggle) { return _i(0x1B212B26DD3C04DF, vehicle, toggle); } // 0x1b212b26dd3c04dfB757 - inline Void ForceSubmarineSurfaceMode(Vehicle vehicle, BOOL toggle) { return _i(0x33506883545AC0DF, vehicle, toggle); } // 0x33506883545ac0df0x54e9ee75B323 - inline Void ForceSubmarineNeurtalBuoyancy(Any p0, Any p1) { return _i(0xC67DB108A9ADE3BE, p0, p1); } // 0xc67db108a9ade3beB2189 - inline Void SetSubmarineCrushDepths(Vehicle vehicle, BOOL p1, float depth1, float depth2, float depth3) { return _i(0xC59872A5134879C7, vehicle, p1, depth1, depth2, depth3); } // 0xc59872a5134879c70x4a46e814B323 - inline BOOL GetSubmarineIsUnderDesignDepth(Vehicle submarine) { return _i(0x3E71D0B300B7AA79, submarine); } // 0x3e71d0b300b7aa79B2189 - inline int GetSubmarineNumberOfAirLeaks(Vehicle submarine) { return _i(0x093D6DDCA5B8FBAE, submarine); } // 0x093d6ddca5b8fbaeB2189 - inline Void SetBoatIgnoreLandProbes(Any p0, Any p1) { return _i(0xED5EDE9E676643C9, p0, p1); } // 0xed5ede9e676643c9B944 - // Use the vehicle bounds (instead of viewport) when deciding if a vehicle is sufficiently above the water (waterheight.dat), bypassing wave simulation checks - inline Void SetBoundsAffectWaterProbes(Vehicle vehicle, BOOL toggle) { return _i(0x85FC953F6C6CBDE1, vehicle, toggle); } // 0x85fc953f6c6cbde1B2802 - inline Void SetBoatAnchor(Vehicle vehicle, BOOL toggle) { return _i(0x75DBEC174AEEAD10, vehicle, toggle); } // 0x75dbec174aeead100xa3906284B323 - inline BOOL CanAnchorBoatHere(Vehicle vehicle) { return _i(0x26C10ECBDA5D043B, vehicle); } // 0x26c10ecbda5d043b0xe97a4f5eB323 - inline BOOL CanAnchorBoatHereIgnorePlayers(Vehicle vehicle) { return _i(0x24F4121D07579880, vehicle); } // 0x24f4121d07579880B678 - inline Void SetBoatRemainsAnchoredWhilePlayerIsDriver(Vehicle vehicle, BOOL toggle) { return _i(0xE3EBAAE484798530, vehicle, toggle); } // 0xe3ebaae4847985300x0ed84792B323 - // No observed effect. - inline Void SetForceLowLodAnchorMode(Vehicle vehicle, BOOL p1) { return _i(0xB28B1FE5BFADD7F5, vehicle, p1); } // 0xb28b1fe5bfadd7f50xa739012aB323 - inline Void SetBoatLowLodAnchorDistance(Vehicle vehicle, float value) { return _i(0xE842A9398079BD82, vehicle, value); } // 0xe842a9398079bd820x66fa450cB323 - inline BOOL IsBoatAnchored(Vehicle vehicle) { return _i(0xB0AD1238A709B1A2, vehicle); } // 0xb0ad1238a709b1a2B573 - inline Void SetBoatSinksWhenWrecked(Vehicle vehicle, BOOL toggle) { return _i(0x8F719973E1445BA2, vehicle, toggle); } // 0x8f719973e1445ba20x35614622B323 - inline Void SetBoatWrecked(Vehicle vehicle) { return _i(0xBD32E46AA95C1DD2, vehicle); } // 0xbd32e46aa95c1dd2B757 - // Activate siren on vehicle (Only works if the vehicle has a siren). - inline Void SetVehicleSiren(Vehicle vehicle, BOOL toggle) { return _i(0xF4924635A19EB37D, vehicle, toggle); } // 0xf4924635a19eb37d0x4ac1efc7B323 - inline BOOL IsVehicleSirenOn(Vehicle vehicle) { return _i(0x4C9BF537BE2634B2, vehicle); } // 0x4c9bf537be2634b20x25eb5873B323 - inline BOOL IsVehicleSirenAudioOn(Vehicle vehicle) { return _i(0xB5CC40FBCB586380, vehicle); } // 0xb5cc40fbcb5863800xc9458688B323 - // If set to true, vehicle will not take crash damage, but is still susceptible to damage from bullets and explosives - inline Void SetVehicleStrong(Vehicle vehicle, BOOL toggle) { return _i(0x3E8C8727991A8A0B, vehicle, toggle); } // 0x3e8c8727991a8a0b0xc758d19fB323 - inline Void RemoveVehicleStuckCheck(Vehicle vehicle) { return _i(0x8386BFB614D06749, vehicle); } // 0x8386bfb614d067490x81594917B323 - inline Void GetVehicleColours(Vehicle vehicle, int* colorPrimary, int* colorSecondary) { return _i(0xA19435F193E081AC, vehicle, colorPrimary, colorSecondary); } // 0xa19435f193e081ac0x40d82d88B323 - // Check if a vehicle seat is free. - // - // seatIndex = -1 being the driver seat. - // Use GetVehicleMaxNumberOfPassengers(vehicle) - 1 for last seat index. - // isTaskRunning = on true the function returns already false while a task on the target seat is running (TaskEnterVehicle/TaskShuffleToNextVehicleSeat) - on false only when a ped is finally sitting in the seat. - inline BOOL IsVehicleSeatFree(Vehicle vehicle, int seatIndex, BOOL isTaskRunning) { return _i(0x22AC59A870E6A669, vehicle, seatIndex, isTaskRunning); } // 0x22ac59a870e6a6690xdaf42b02B323 - // If there is no ped in the seat, and the game considers the vehicle as ambient population, this will create a random occupant ped in the seat, which may be cleaned up by the game fairly soon if not marked as script-owned mission entity. - // - // Seat indexes: - // -1 = Driver - // 0 = Front Right Passenger - // 1 = Back Left Passenger - // 2 = Back Right Passenger - // 3 = Further Back Left Passenger (vehicles > 4 seats) - // 4 = Further Back Right Passenger (vehicles > 4 seats) - // etc. - // - // If p2 is true it uses a different GetOccupant function. - inline Ped GetPedInVehicleSeat(Vehicle vehicle, int seatIndex, BOOL p2) { return _i(0xBB40DD2270B65366, vehicle, seatIndex, p2); } // 0xbb40dd2270b653660x388fde9aB323 - inline Ped GetLastPedInVehicleSeat(Vehicle vehicle, int seatIndex) { return _i(0x83F969AA1EE2A664, vehicle, seatIndex); } // 0x83f969aa1ee2a6640xf7c6792dB323 - inline BOOL GetVehicleLightsState(Vehicle vehicle, BOOL* lightsOn, BOOL* highbeamsOn) { return _i(0xB91B4C20085BD12F, vehicle, lightsOn, highbeamsOn); } // 0xb91b4c20085bd12f0x7c278621B323 - // wheelID used for 4 wheelers seem to be (0, 1, 4, 5) - // completely - is to check if tire completely gone from rim. - // - // '0 = wheel_lf / bike, plane or jet front - // '1 = wheel_rf - // '2 = wheel_lm / in 6 wheels trailer, plane or jet is first one on left - // '3 = wheel_rm / in 6 wheels trailer, plane or jet is first one on right - // '4 = wheel_lr / bike rear / in 6 wheels trailer, plane or jet is last one on left - // '5 = wheel_rr / in 6 wheels trailer, plane or jet is last one on right - // '45 = 6 wheels trailer mid wheel left - // '47 = 6 wheels trailer mid wheel right - inline BOOL IsVehicleTyreBurst(Vehicle vehicle, int wheelID, BOOL completely) { return _i(0xBA291848A0815CA9, vehicle, wheelID, completely); } // 0xba291848a0815ca90x48c80210B323 - // SCALE: Setting the speed to 30 would result in a speed of roughly 60mph, according to speedometer. - // - // Speed is in meters per second - // You can convert meters/s to mph here: - // http://www.calculateme.com/Speed/MetersperSecond/ToMilesperHour.htm - inline Void SetVehicleForwardSpeed(Vehicle vehicle, float speed) { return _i(0xAB54A438726D25D5, vehicle, speed); } // 0xab54a438726d25d50x69880d14B323 - // Seems to be identical to SetVehicleForwardSpeed - inline Void SetVehicleForwardSpeedXy(Vehicle vehicle, float speed) { return _i(0x6501129C9E0FFA05, vehicle, speed); } // 0x6501129c9e0ffa05B877 - // This native makes the vehicle stop immediately, as happens when we enter a MP garage. - // - // . distance defines how far it will travel until stopping. Garage doors use 3.0. - // - // . If killEngine is set to 1, you cannot resume driving the vehicle once it stops. This looks like is a bitmapped integer. - inline Void BringVehicleToHalt(Vehicle vehicle, float distance, int duration, BOOL p3) { return _i(0x260BE8F09E326A20, vehicle, distance, duration, p3); } // 0x260be8f09e326a200xcbc7d3c8B323 - inline Void SetVehicleSteerForBuildings(Vehicle vehicle, Any p1) { return _i(0xDCE97BDF8A0EABC8, vehicle, p1); } // 0xdce97bdf8a0eabc8B1103 - inline Void SetVehicleCausesSwerving(Vehicle vehicle, BOOL toggle) { return _i(0x9849DE24FCF23CCC, vehicle, toggle); } // 0x9849de24fcf23cccB1604 - inline Void SetIgnorePlanesSmallPitchChange(Any p0, Any p1) { return _i(0x8664170EF165C4A6, p0, p1); } // 0x8664170ef165c4a6B2189 - // Stops CTaskBringVehicleToHalt - inline Void StopBringingVehicleToHalt(Vehicle vehicle) { return _i(0x7C06330BFDDA182E, vehicle); } // 0x7c06330bfdda182eB1103 - // Returns true if vehicle is halted by BringVehicleToHalt - inline BOOL IsVehicleBeingBroughtToHalt(Vehicle vehicle) { return _i(0xC69BB1D832A710EF, vehicle); } // 0xc69bb1d832a710efB1493 - inline Void LowerForkliftForks(Vehicle forklift) { return _i(0x923A293361DF44E5, forklift); } // 0x923a293361df44e5B2802 - // 0.0 = Lowest 1.0 = Highest. This is best to be used if you wanna pick-up a car since un-realistically on GTA V forklifts can't pick up much of anything due to vehicle mass. If you put this under a car then set it above 0.0 to a 'lifted-value' it will raise the car with no issue lol - inline Void SetForkliftForkHeight(Vehicle vehicle, float height) { return _i(0x37EBBF3117BD6A25, vehicle, height); } // 0x37ebbf3117bd6a250x943a6cfcB323 - inline BOOL IsEntityAttachedToHandlerFrame(Vehicle vehicle, Entity entity) { return _i(0x57715966069157AD, vehicle, entity); } // 0x57715966069157ad0x7fb25568B323 - inline BOOL IsAnyEntityAttachedToHandlerFrame(Vehicle vehicle) { return _i(0x62CA17B74C435651, vehicle); } // 0x62ca17b74c4356510x593143b9B323 - // Finds the vehicle that is carrying this entity with a handler frame. - // The model of the entity must be prop_contr_03b_ld or the function will return 0. - inline Vehicle FindHandlerVehicleContainerIsAttachedTo(Entity entity) { return _i(0x375E7FC44F21C8AB, entity); } // 0x375e7fc44f21c8ab0x70dd5e25B323 - inline BOOL IsHandlerFrameLinedUpWithContainer(Vehicle vehicle, Entity entity) { return _i(0x89D630CF5EA96D23, vehicle, entity); } // 0x89d630cf5ea96d230xfbf5536aB323 - inline Void AttachContainerToHandlerFrameWhenLinedUp(Vehicle vehicle, Entity entity) { return _i(0x6A98C2ECF57FA5D4, vehicle, entity); } // 0x6a98c2ecf57fa5d40x20ab5783B323 - inline Void DetachContainerFromHandlerFrame(Vehicle vehicle) { return _i(0x7C0043FDFF6436BC, vehicle); } // 0x7c0043fdff6436bc0x0f11d01fB323 - inline Void SetVehicleDisableHeightMapAVoidance(Vehicle vehicle, BOOL p1) { return _i(0x8AA9180DE2FEDD45, vehicle, p1); } // 0x8aa9180de2fedd450xae040377B323 - inline Void SetBoatDisableAVoidance(Vehicle vehicle, BOOL p1) { return _i(0x0A6A279F3AA4FD70, vehicle, p1); } // 0x0a6a279f3aa4fd700x4c0e4031B323 - inline BOOL IsHeliLandingAreaBlocked(Vehicle vehicle) { return _i(0x634148744F385576, vehicle); } // 0x634148744f3855760x6346b7ccB323 - // Used on helicopters and blimps during the CTaskVehicleLand task. Sets a value on the task to 10f - inline Void SetShortSlowdownForLanding(Vehicle vehicle) { return _i(0x107A473D7A6647A9, vehicle); } // 0x107a473d7a6647a9B1290 - inline Void SetHeliTurbulenceScalar(Vehicle vehicle, float p1) { return _i(0xE6F13851780394DA, vehicle, p1); } // 0xe6f13851780394da0xccb41a55B323 - // Initially used in Max Payne 3, that's why we know the name. - inline Void SetCarBootOpen(Vehicle vehicle) { return _i(0xFC40CBF7B90CA77C, vehicle); } // 0xfc40cbf7b90ca77cB877 - // "To burst tyres VEHICLE::SetVehicleTyreBurst(vehicle, 0, true, 1000.0) - // to burst all tyres type it 8 times where p1 = 0 to 7. - // - // p3 seems to be how much damage it has taken. 0 doesn't deflate them, 1000 completely deflates them. - // - // '0 = wheel_lf / bike, plane or jet front - // '1 = wheel_rf - // '2 = wheel_lm / in 6 wheels trailer, plane or jet is first one on left - // '3 = wheel_rm / in 6 wheels trailer, plane or jet is first one on right - // '4 = wheel_lr / bike rear / in 6 wheels trailer, plane or jet is last one on left - // '5 = wheel_rr / in 6 wheels trailer, plane or jet is last one on right - // '45 = 6 wheels trailer mid wheel left - // '47 = 6 wheels trailer mid wheel right - inline Void SetVehicleTyreBurst(Vehicle vehicle, int index, BOOL onRim, float p3) { return _i(0xEC6A202EE4960385, vehicle, index, onRim, p3); } // 0xec6a202ee49603850x89d28068B323 - // Closes all doors of a vehicle: - inline Void SetVehicleDoorsShut(Vehicle vehicle, BOOL closeInstantly) { return _i(0x781B3D62BB013EF5, vehicle, closeInstantly); } // 0x781b3d62bb013ef50xbb1ff6e7B323 - // Allows you to toggle bulletproof tires. - inline Void SetVehicleTyresCanBurst(Vehicle vehicle, BOOL toggle) { return _i(0xEB9DC3C7D8596C46, vehicle, toggle); } // 0xeb9dc3c7d8596c460xa198db54B323 - inline BOOL GetVehicleTyresCanBurst(Vehicle vehicle) { return _i(0x678B9BB8C3F58FEB, vehicle); } // 0x678b9bb8c3f58feb0x4d76cd2fB323 - inline Void SetVehicleWheelsCanBreak(Vehicle vehicle, BOOL enabled) { return _i(0x29B18B4FD460CA8F, vehicle, enabled); } // 0x29b18b4fd460ca8f0x829ed654B323 - // doorId: see SetVehicleDoorShut - inline Void SetVehicleDoorOpen(Vehicle vehicle, int doorId, BOOL loose, BOOL openInstantly) { return _i(0x7C65DAC73C35C862, vehicle, doorId, loose, openInstantly); } // 0x7c65dac73c35c8620xbb75d38bB323 - // doorId: see SetVehicleDoorShut - // - // Usually used alongside other vehicle door natives. - inline Void SetVehicleDoorAutoLock(Vehicle vehicle, int doorId, BOOL toggle) { return _i(0x3B458DDB57038F08, vehicle, doorId, toggle); } // 0x3b458ddb57038f08B877 - inline Void SetFleeingVehiclesUseSwitchedOffNodes(Any p0) { return _i(0xA247F9EF01D8082E, p0); } // 0xa247f9ef01d8082eB1103 - // windowIndex: - // 0 = Front Right Window - // 1 = Front Left Window - // 2 = Back Right Window - // 3 = Back Left Window - // 4 = Unknown - // 5 = Unknown - // 6 = Windscreen - // 7 = Rear Windscreen - inline Void RemoveVehicleWindow(Vehicle vehicle, int windowIndex) { return _i(0xA711568EEDB43069, vehicle, windowIndex); } // 0xa711568eedb430690xbb8104a3B323 - // Roll down all the windows of the vehicle passed through the first parameter. - inline Void RollDownWindows(Vehicle vehicle) { return _i(0x85796B0549DDE156, vehicle); } // 0x85796b0549dde1560x51a16dc6B323 - // windowIndex: - // 0 = Front Left Window - // 1 = Front Right Window - // 2 = Rear Left Window - // 3 = Rear Right Window - // 4 = Front Windscreen - // 5 = Rear Windscreen - // 6 = Mid Left - // 7 = Mid Right - // 8 = Invalid - inline Void RollDownWindow(Vehicle vehicle, int windowIndex) { return _i(0x7AD9E6CE657D69E3, vehicle, windowIndex); } // 0x7ad9e6ce657d69e30xf840134cB323 - // windowIndex: - // 0 = Front Left Window - // 1 = Front Right Window - // 2 = Rear Left Window - // 3 = Rear Right Window - // 4 = Front Windscreen - // 5 = Rear Windscreen - // 6 = Mid Left - // 7 = Mid Right - // 8 = Invalid - inline Void RollUpWindow(Vehicle vehicle, int windowIndex) { return _i(0x602E548F46E24D59, vehicle, windowIndex); } // 0x602e548f46e24d590x83b7e06aB323 - // windowIndex: - // 0 = Front Left Window - // 1 = Front Right Window - // 2 = Rear Left Window - // 3 = Rear Right Window - // 4 = Front Windscreen - // 5 = Rear Windscreen - // 6 = Mid Left - // 7 = Mid Right - // 8 = Invalid - inline Void SmashVehicleWindow(Vehicle vehicle, int windowIndex) { return _i(0x9E5B5E4D2CCD2259, vehicle, windowIndex); } // 0x9e5b5e4d2ccd22590xddd9a8c2B323 - // windowIndex: - // 0 = Front Left Window - // 1 = Front Right Window - // 2 = Rear Left Window - // 3 = Rear Right Window - // 4 = Front Windscreen - // 5 = Rear Windscreen - // 6 = Mid Left - // 7 = Mid Right - // 8 = Invalid - // - // Additional information: FixVehicleWindow (0x140D0BB88) references an array of bone vehicle indices (0x141D4B3E0) { 2Ah, 2Bh, 2Ch, 2Dh, 2Eh, 2Fh, 28h, 29h } that correspond to: window_lf, window_rf, window_lr, window_rr, window_lm, window_rm, windscreen, windscreen_r. This array is used by most vehwindow natives. - // - // Also, this function is coded to not work on vehicles of type: CBike, Bmx, CBoat, CTrain, and CSubmarine. - inline Void FixVehicleWindow(Vehicle vehicle, int windowIndex) { return _i(0x772282EBEB95E682, vehicle, windowIndex); } // 0x772282ebeb95e6820x6b8e990dB323 - // Detaches the vehicle's windscreen. - // For further information, see : gtaforums.com/topic/859570-glass/#entry1068894566 - inline Void PopOutVehicleWindscreen(Vehicle vehicle) { return _i(0x6D645D59FB5F5AD3, vehicle); } // 0x6d645d59fb5f5ad30xcc95c96bB323 - // Pops off the "roof" bone in the direction of the specified offset from the vehicle. - inline Void PopOffVehicleRoofWithImpulse(Vehicle vehicle, float x, float y, float z) { return _i(0xE38CB9D7D39FDBCC, vehicle, x, y, z); } // 0xe38cb9d7d39fdbcc0xfda7b6caB323 - // set's if the vehicle has lights or not. - // not an on off toggle. - // p1 = 0 ;vehicle normal lights, off then lowbeams, then highbeams - // p1 = 1 ;vehicle doesn't have lights, always off - // p1 = 2 ;vehicle has always on lights - // p1 = 3 ;or even larger like 4,5,... normal lights like =1 - // note1: when using =2 on day it's lowbeam,highbeam - // but at night it's lowbeam,lowbeam,highbeam - // note2: when using =0 it's affected by day or night for highbeams don't exist in daytime. - inline Void SetVehicleLights(Vehicle vehicle, int state) { return _i(0x34E710FF01247C5A, vehicle, state); } // 0x34e710ff01247c5a0xe8930226B323 - inline Void SetVehicleUsePlayerLightSettings(Vehicle vehicle, BOOL toggle) { return _i(0xC45C27EF50F36ADC, vehicle, toggle); } // 0xc45c27ef50f36adc0x4221e435B323 - // p1 can be either 0, 1 or 2. - // - // Determines how vehicle lights behave when toggled. - // - // 0 = Default (Lights can be toggled between off, normal and high beams) - // 1 = Lights Disabled (Lights are fully disabled, cannot be toggled) - // 2 = Always On (Lights can be toggled between normal and high beams) - inline Void SetVehicleHeadlightShadows(Vehicle vehicle, int p1) { return _i(0x1FD09E7390A74D54, vehicle, p1); } // 0x1fd09e7390a74d54B323 - inline Void SetVehicleAlarm(Vehicle vehicle, BOOL state) { return _i(0xCDE5E70C1DDB954C, vehicle, state); } // 0xcde5e70c1ddb954c0x24877d84B323 - inline Void StartVehicleAlarm(Vehicle vehicle) { return _i(0xB8FF7AB45305C345, vehicle); } // 0xb8ff7ab45305c3450x5b451ff7B323 - inline BOOL IsVehicleAlarmActivated(Vehicle vehicle) { return _i(0x4319E335B71FFF34, vehicle); } // 0x4319e335b71fff340xf2630a4cB323 - inline Void SetVehicleInteriorlight(Vehicle vehicle, BOOL toggle) { return _i(0xBC2042F090AF6AD3, vehicle, toggle); } // 0xbc2042f090af6ad30x9ad1fe1eB323 - // Sets some bit of vehicle - inline Void SetVehicleForceInteriorlight(Vehicle vehicle, BOOL toggle) { return _i(0x8821196D91FA2DE5, vehicle, toggle); } // 0x8821196d91fa2de5B1290 - // multiplier = brightness of head lights. - // this value isn't capped afaik. - // - // multiplier = 0.0 no lights - // multiplier = 1.0 default game value - // - inline Void SetVehicleLightMultiplier(Vehicle vehicle, float multiplier) { return _i(0xB385454F8791F57C, vehicle, multiplier); } // 0xb385454f8791f57c0x48039d6aB323 - inline Void AttachVehicleToTrailer(Vehicle vehicle, Vehicle trailer, float radius) { return _i(0x3C7D42D58F770B54, vehicle, trailer, radius); } // 0x3c7d42d58f770b540x2133977fB323 - // This is the proper way of attaching vehicles to the car carrier, it's what Rockstar uses. Video Demo: https://www.youtube.com/watch?v=2lVEIzf7bgo - inline Void AttachVehicleOnToTrailer(Vehicle vehicle, Vehicle trailer, float offsetX, float offsetY, float offsetZ, float coordsX, float coordsY, float coordsZ, float rotationX, float rotationY, float rotationZ, float disableCollisions) { return _i(0x16B5E274BDE402F8, vehicle, trailer, offsetX, offsetY, offsetZ, coordsX, coordsY, coordsZ, rotationX, rotationY, rotationZ, disableCollisions); } // 0x16b5e274bde402f80x12ac1a16B323 - inline Void StabiliseEntityAttachedToHeli(Vehicle vehicle, Entity entity, float p2) { return _i(0x374706271354CB18, vehicle, entity, p2); } // 0x374706271354cb180x40c4763fB323 - inline Void DetachVehicleFromTrailer(Vehicle vehicle) { return _i(0x90532EDF0D2BDD86, vehicle); } // 0x90532edf0d2bdd860xb5dbf91dB323 - inline BOOL IsVehicleAttachedToTrailer(Vehicle vehicle) { return _i(0xE7CF3C4F9F489F0C, vehicle); } // 0xe7cf3c4f9f489f0c0xe142bbccB323 - inline Void SetTrailerInverseMassScale(Vehicle vehicle, float p1) { return _i(0x2A8F319B392E7B3F, vehicle, p1); } // 0x2a8f319b392e7b3f0xe74e85ceB323 - // in the decompiled scripts, seems to be always called on the vehicle right after being attached to a trailer. - inline Void SetTrailerLegsRaised(Vehicle vehicle) { return _i(0x95CF53B3D687F9FA, vehicle); } // 0x95cf53b3d687f9fa0x06c47a6fB323 - inline Void SetTrailerLegsLowered(Vehicle vehicle) { return _i(0x878C75C09FBDB942, vehicle); } // 0x878c75c09fbdb942B1103 - // tyreIndex = 0 to 4 on normal vehicles - // - // '0 = wheel_lf / bike, plane or jet front - // '1 = wheel_rf - // '2 = wheel_lm / in 6 wheels trailer, plane or jet is first one on left - // '3 = wheel_rm / in 6 wheels trailer, plane or jet is first one on right - // '4 = wheel_lr / bike rear / in 6 wheels trailer, plane or jet is last one on left - // '5 = wheel_rr / in 6 wheels trailer, plane or jet is last one on right - // '45 = 6 wheels trailer mid wheel left - // '47 = 6 wheels trailer mid wheel right - inline Void SetVehicleTyreFixed(Vehicle vehicle, int tyreIndex) { return _i(0x6E13FC662B882D1D, vehicle, tyreIndex); } // 0x6e13fc662b882d1d0xa42efa6bB323 - // Sets a vehicle's license plate text. 8 chars maximum. - // - // Example: - // Ped playerPed = PLAYER::PlayerPedId(); - // Vehicle veh = PED::GetVehiclePedIsUsing(playerPed); - // char *plateText = "KING"; - // VEHICLE::SetVehicleNumberPlateText(veh, plateText); - inline Void SetVehicleNumberPlateText(Vehicle vehicle, String plateText) { return _i(0x95A88F0B409CDA47, vehicle, plateText); } // 0x95a88f0b409cda470x400f9556B323 - // Returns the license plate text from a vehicle. 8 chars maximum. - inline String GetVehicleNumberPlateText(Vehicle vehicle) { return _i(0x7CE1CCB9B293020E, vehicle); } // 0x7CE1CCB9B293020E 0xE8522D58 b323 - // Returns the number of *types* of licence plates, enumerated below in SetVehicleNumberPlateTextIndex. - inline int GetNumberOfVehicleNumberPlates() { return _i(0x4C4D6B2644F458CB); } // 0x4c4d6b2644f458cb0xd24bc1aeB323 - // Plates: - // Blue/White - 0 - // Yellow/black - 1 - // Yellow/Blue - 2 - // Blue/White2 - 3 - // Blue/White3 - 4 - // Yankton - 5 - inline Void SetVehicleNumberPlateTextIndex(Vehicle vehicle, int plateIndex) { return _i(0x9088EB5A43FFB0A1, vehicle, plateIndex); } // 0x9088eb5a43ffb0a10xa1a1890eB323 - // Returns the PlateType of a vehicle - // Blue_on_White_1 = 3, - // Blue_on_White_2 = 0, - // Blue_on_White_3 = 4, - // Yellow_on_Blue = 2, - // Yellow_on_Black = 1, - // North_Yankton = 5, - inline int GetVehicleNumberPlateTextIndex(Vehicle vehicle) { return _i(0xF11BC2DD9A3E7195, vehicle); } // 0xf11bc2dd9a3e71950x499747b6B323 - inline Void SetRandomTrains(BOOL toggle) { return _i(0x80D9F74197EA47D9, toggle); } // 0x80d9f74197ea47d90xd461ca7fB323 - // Train models HAVE TO be loaded (requested) before you use this. - // For variation 15 - request: - // - // freight - // freightcar - // freightgrain - // freightcont1 - // freightcont2 - // freighttrailer - // - // - inline Vehicle CreateMissionTrain(int variation, float x, float y, float z, BOOL direction, Any p5, Any p6) { return _i(0x63C6CCA8E68AE8C8, variation, x, y, z, direction, p5, p6); } // 0x63c6cca8e68ae8c80xd4c2eafdB323 - // Toggles whether ambient trains can spawn on the specified track or not - // - // `trackId` is the internal id of the train track to switch. - // `state` is whether ambient trains can spawn or not - // - // trackIds - // 0 (`trains1.dat`) Main track around SA - // 1 (`trains2.dat`) Davis Quartz Quarry branch - // 2 (`trains3.dat`) Second track alongside live track along Roy Lewenstein Blv. - // 3 (`trains4.dat`) Metro track circuit - // 4 (`trains5.dat`) Branch in Mirror Park Railyard - // 5 (`trains6.dat`) Branch in Mirror Park Railyard - // 6 (`trains7.dat`) LS branch to Mirror Park Railyard - // 7 (`trains8.dat`) Overground part of metro track along Forum Dr. - // 8 (`trains9.dat`) Branch to Mirror Park Railyard - // 9 (`trains10.dat`) Yankton train - // 10 (`trains11.dat`) Part of metro track near mission row - // 11 (`trains12.dat`) Yankton prologue mission train - // Full list of all train tracks + track nodes by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/traintracks.json - inline Void SwitchTrainTrack(int trackId, BOOL state) { return _i(0xFD813BB7DB977F20, trackId, state); } // 0xfd813bb7db977f200x68bfdd61B323 - // Only called once inside main_persitant with the parameters p0 = 0, p1 = 120000 - // - // trackIndex: 0 - 26 - // Full list of all train tracks + track nodes by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/traintracks.json - inline Void SetTrainTrackSpawnFrequency(int trackIndex, int frequency) { return _i(0x21973BBF8D17EDFA, trackIndex, frequency); } // 0x21973bbf8d17edfa0xd5774fb7B323 - inline Void AllowTrainToBeRemovedByPopulation(Any p0) { return _i(0x2310A8F9421EBF43, p0); } // 0x2310a8f9421ebf43B2372 - inline Void DeleteAllTrains() { return _i(0x736A718577F39C7D); } // 0x736a718577f39c7d0x83de7abfB323 - inline Void SetTrainSpeed(Vehicle train, float speed) { return _i(0xAA0BC91BE0B796E3, train, speed); } // 0xaa0bc91be0b796e30xdfc35e4dB323 - inline Void SetTrainCruiseSpeed(Vehicle train, float speed) { return _i(0x16469284DB8C62B5, train, speed); } // 0x16469284db8c62b50xb507f51dB323 - inline Void SetRandomBoats(BOOL toggle) { return _i(0x84436EC293B1415F, toggle); } // 0x84436ec293b1415f0xb505bd89B323 - inline Void SetRandomBoatsMp(BOOL toggle) { return _i(0xDA5E12F728DB30CA, toggle); } // 0xda5e12f728db30caB2372 - inline Void SetGarbageTrucks(BOOL toggle) { return _i(0x2AFD795EEAC8D30D, toggle); } // 0x2afd795eeac8d30d0xd9abb0ffB323 - // Maximum amount of vehicles with vehicle stuck check appears to be 16. - inline BOOL DoesVehicleHaveStuckVehicleCheck(Vehicle vehicle) { return _i(0x57E4C39DE5EE8470, vehicle); } // 0x57e4c39de5ee84700x5d91d9acB323 - // See RequestVehicleRecording - inline int GetVehicleRecordingId(int recording, String script) { return _i(0x21543C612379DB3C, recording, script); } // 0x21543c612379db3c0x328d601dB323 - // Request the vehicle recording defined by the lowercase format string "%s%03d.yvr". For example, RequestVehicleRecording(1, "FBIs1UBER") corresponds to fbis1uber001.yvr. - // For all vehicle recording/playback natives, "script" is a common prefix that usually corresponds to the script/mission the recording is used in, "recording" is its int suffix, and "id" (e.g., in native GetTotalDurationOfVehicleRecordingId) corresponds to a unique identifier within the recording streaming module. - // Note that only 24 recordings (hardcoded in multiple places) can ever active at a given time before clobbering begins. - inline Void RequestVehicleRecording(int recording, String script) { return _i(0xAF514CABE74CBF15, recording, script); } // 0xaf514cabe74cbf150x91afefd9B323 - // See RequestVehicleRecording - inline BOOL HasVehicleRecordingBeenLoaded(int recording, String script) { return _i(0x300D614A4C785FC4, recording, script); } // 0x300d614a4c785fc40xf52cd7f5B323 - // See RequestVehicleRecording - inline Void RemoveVehicleRecording(int recording, String script) { return _i(0xF1160ACCF98A3FC8, recording, script); } // 0xf1160accf98a3fc80xd3c05b00B323 - inline Vector3 GetPositionOfVehicleRecordingIdAtTime(int id, float time) { return _i(0x92523B76657A517D, id, time); } // 0x92523b76657a517d0xf31973bbB323 - // This native does no interpolation between pathpoints. The same position will be returned for all times up to the next pathpoint in the recording. - // - // See RequestVehicleRecording - inline Vector3 GetPositionOfVehicleRecordingAtTime(int recording, float time, String script) { return _i(0xD242728AA6F0FBA2, recording, time, script); } // 0xd242728aa6f0fba20x7178558dB323 - inline Vector3 GetRotationOfVehicleRecordingIdAtTime(int id, float time) { return _i(0xF0F2103EFAF8CBA7, id, time); } // 0xf0f2103efaf8cba70x4d1c15c2B323 - // This native does no interpolation between pathpoints. The same rotation will be returned for all times up to the next pathpoint in the recording. - // - // See RequestVehicleRecording - inline Vector3 GetRotationOfVehicleRecordingAtTime(int recording, float time, String script) { return _i(0x2058206FBE79A8AD, recording, time, script); } // 0x2058206fbe79a8ad0xd96dec68B323 - inline float GetTotalDurationOfVehicleRecordingId(int id) { return _i(0x102D125411A7B6E6, id); } // 0x102d125411a7b6e60x7116785eB323 - // See RequestVehicleRecording - inline float GetTotalDurationOfVehicleRecording(int recording, String script) { return _i(0x0E48D1C262390950, recording, script); } // 0x0e48d1c2623909500x5b35eeb7B323 - // Distance traveled in the vehicles current recording. - inline float GetPositionInRecording(Vehicle vehicle) { return _i(0x2DACD605FC681475, vehicle); } // 0x2dacd605fc6814750x7dcd644cB323 - // Can be used with GetTotalDurationOfVehicleRecording{_ID} to compute a percentage. - inline float GetTimePositionInRecording(Vehicle vehicle) { return _i(0x5746F3A7AB7FE544, vehicle); } // 0x5746f3a7ab7fe5440xf8c3e4a2B323 - // p3 is some flag related to 'trailers' (invokes CVehicle::GetTrailer). - // - // See RequestVehicleRecording - inline Void StartPlaybackRecordedVehicle(Vehicle vehicle, int recording, String script, BOOL p3) { return _i(0x3F878F92B3A7A071, vehicle, recording, script, p3); } // 0x3f878f92b3a7a0710xcf614ca8B323 - // flags requires further research, e.g., 0x4/0x8 are related to the AI driving task and 0x20 is internally set and interacts with dynamic entity components. - // - // time, often zero and capped at 500, is related to SetPlaybackToUseAiTryToRevertBackLater - inline Void StartPlaybackRecordedVehicleWithFlags(Vehicle vehicle, int recording, String script, int flags, int time, int drivingStyle) { return _i(0x7D80FD645D4DA346, vehicle, recording, script, flags, time, drivingStyle); } // 0x7d80fd645d4da3460x4e721ad2B323 - // Often called after StartPlaybackRecordedVehicle and SkipTimeInPlaybackRecordedVehicle; similar in use to ForceEntityAiAndAnimationUpdate. - inline Void ForcePlaybackRecordedVehicleUpdate(Vehicle vehicle, BOOL p1) { return _i(0x1F2E4E06DEA8992B, vehicle, p1); } // 0x1f2e4e06dea8992b0x01b91cd0B323 - inline Void StopPlaybackRecordedVehicle(Vehicle vehicle) { return _i(0x54833611C17ABDEA, vehicle); } // 0x54833611c17abdea0xae99c57cB323 - inline Void PausePlaybackRecordedVehicle(Vehicle vehicle) { return _i(0x632A689BF42301B1, vehicle); } // 0x632a689bf42301b10xccf54912B323 - inline Void UnpausePlaybackRecordedVehicle(Vehicle vehicle) { return _i(0x8879EE09268305D5, vehicle); } // 0x8879ee09268305d50x59060f75B323 - inline BOOL IsPlaybackGoingOnForVehicle(Vehicle vehicle) { return _i(0x1C8A4C2C19E68EEC, vehicle); } // 0x1c8a4c2c19e68eec0x61f7650dB323 - inline BOOL IsPlaybackUsingAiGoingOnForVehicle(Vehicle vehicle) { return _i(0xAEA8FD591FAD4106, vehicle); } // 0xaea8fd591fad41060x63022c58B323 - inline int GetCurrentPlaybackForVehicle(Vehicle vehicle) { return _i(0x42BC05C27A946054, vehicle); } // 0x42bc05c27a9460540xa3f44390B323 - inline Void SkipToEndAndStopPlaybackRecordedVehicle(Vehicle vehicle) { return _i(0xAB8E2EDA0C0A5883, vehicle); } // 0xab8e2eda0c0a58830x8dea18c8B323 - inline Void SetPlaybackSpeed(Vehicle vehicle, float speed) { return _i(0x6683AB880E427778, vehicle, speed); } // 0x6683ab880e4277780x684e26e4B323 - // AI abides by the provided driving style (e.g., stopping at red lights or waiting behind traffic) while executing the specificed vehicle recording. - // - // ForcePlaybackRecordedVehicleUpdate is a related native that deals with the AI physics for such recordings. - inline Void StartPlaybackRecordedVehicleUsingAi(Vehicle vehicle, int recording, String script, float speed, int drivingStyle) { return _i(0x29DE5FA52D00428C, vehicle, recording, script, speed, drivingStyle); } // 0x29de5fa52d00428c0x8de8e24eB323 - // SET_TIME_POSITION_IN_RECORDING can be emulated by: desired_time - GetTimePositionInRecording(vehicle) - inline Void SkipTimeInPlaybackRecordedVehicle(Vehicle vehicle, float time) { return _i(0x9438F7AD68771A20, vehicle, time); } // 0x9438f7ad68771a200xcf3efa4bB323 - // Identical to SetPlaybackToUseAiTryToRevertBackLater with 0 as arguments for p1 and p3. - inline Void SetPlaybackToUseAi(Vehicle vehicle, int drivingStyle) { return _i(0xA549C3B37EA28131, vehicle, drivingStyle); } // 0xa549c3b37ea281310xb536ccd7B323 - // Time is number of milliseconds before reverting, zero for indefinitely. - inline Void SetPlaybackToUseAiTryToRevertBackLater(Vehicle vehicle, int time, int drivingStyle, BOOL p3) { return _i(0x6E63860BBB190730, vehicle, time, drivingStyle, p3); } // 0x6e63860bbb1907300x0c8abaa4B323 - inline Void SetAdditionalRotationForRecordedVehiclePlayback(Vehicle vehicle, float x, float y, float z, Any p4) { return _i(0x5845066D8A1EA7F7, vehicle, x, y, z, p4); } // 0x5845066d8a1ea7f70x943a58ebB323 - inline Void SetPositionOffsetForRecordedVehiclePlayback(Vehicle vehicle, float x, float y, float z) { return _i(0x796A877E459B99EA, vehicle, x, y, z); } // 0x796a877e459b99ea0x5c9f477cB323 - inline Void SetGlobalPositionOffsetForRecordedVehiclePlayback(Vehicle vehicle, float x, float y, float z) { return _i(0xFAF2A78061FD9EF4, vehicle, x, y, z); } // 0xfaf2a78061fd9ef40xcd83c393B323 - // A vehicle recording playback flag only used in jewelry_heist - inline Void SetShouldLerpFromAiToFullRecording(Vehicle vehicle, BOOL p1) { return _i(0x063AE2B2CC273588, vehicle, p1); } // 0x063ae2b2cc2735880x2ef8435cB323 - inline Void ExplodeVehicleInCutscene(Vehicle vehicle, BOOL p1) { return _i(0x786A4EB67B01BF0B, vehicle, p1); } // 0x786a4eb67b01bf0b0xa85207b5B323 - inline Void AddVehicleStuckCheckWithWarp(Any p0, float p1, Any p2, BOOL p3, BOOL p4, BOOL p5, Any p6) { return _i(0x2FA9923062DD396C, p0, p1, p2, p3, p4, p5, p6); } // 0x2fa9923062dd396c0xc8b789adB323 - // Makes the vehicle stop spawning naturally in traffic. Here's an essential example: - // - // VEHICLE::SetVehicleModelIsSuppressed(MISC::GetHashKey("taco"), true); - // - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline Void SetVehicleModelIsSuppressed(Hash model, BOOL suppressed) { return _i(0x0FC2D89AC25A5814, model, suppressed); } // 0x0fc2d89ac25a58140x42a08c9bB323 - // Gets a random vehicle in a sphere at the specified position, of the specified radius. - // - // x: The X-component of the position of the sphere. - // y: The Y-component of the position of the sphere. - // z: The Z-component of the position of the sphere. - // radius: The radius of the sphere. Max is 9999.9004. - // modelHash: The vehicle model to limit the selection to. Pass 0 for any model. - // flags: The bitwise flags that modifies the behaviour of this function. - // - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline Vehicle GetRandomVehicleInSphere(float x, float y, float z, float radius, Hash modelHash, int flags) { return _i(0x386F6CE5BAF6091C, x, y, z, radius, modelHash, flags); } // 0x386f6ce5baf6091c0x57216d03B323 - inline Vehicle GetRandomVehicleFrontBumperInSphere(float p0, float p1, float p2, float p3, int p4, int p5, int p6) { return _i(0xC5574E0AEB86BA68, p0, p1, p2, p3, p4, p5, p6); } // 0xc5574e0aeb86ba680xdcadeb66B323 - inline Vehicle GetRandomVehicleBackBumperInSphere(float p0, float p1, float p2, float p3, int p4, int p5, int p6) { return _i(0xB50807EABE20A8DC, p0, p1, p2, p3, p4, p5, p6); } // 0xb50807eabe20a8dc0xd6343f6bB323 - // Example usage - // VEHICLE::GetClosestVehicle(x, y, z, radius, hash, unknown leave at 70) - // - // x, y, z: Position to get closest vehicle to. - // radius: Max radius to get a vehicle. - // modelHash: Limit to vehicles with this model. 0 for any. - // flags: The bitwise flags altering the function's behaviour. - // - // Does not return police cars or helicopters. - // - // It seems to return police cars for me, does not seem to return helicopters, planes or boats for some reason - // - // Only returns non police cars and motorbikes with the flag set to 70 and modelHash to 0. ModelHash seems to always be 0 when not a modelHash in the scripts, as stated above. - // - // These flags were found in the b617d scripts: 0,2,4,6,7,23,127,260,2146,2175,12294,16384,16386,20503,32768,67590,67711,98309,100359. - // Converted to binary, each bit probably represents a flag as explained regarding another native here: gtaforums.com/topic/822314-guide-driving-styles - // - // Conversion of found flags to binary: https://pastebin.com/kghNFkRi - // - // At exactly 16384 which is 0100000000000000 in binary and 4000 in hexadecimal only planes are returned. - // - // It's probably more convenient to use worldGetAllVehicles(int *arr, int arrSize) and check the shortest distance yourself and sort if you want by checking the vehicle type with for example VEHICLE::IsThisModelABoat - // - // ------------------------------------------------------------------------- - // - // Conclusion: This native is not worth trying to use. Use something like this instead: https://pastebin.com/xiFdXa7h - // - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline Vehicle GetClosestVehicle(float x, float y, float z, float radius, Hash modelHash, int flags) { return _i(0xF73EB622C4F1689B, x, y, z, radius, modelHash, flags); } // 0xf73eb622c4f1689b0xd7e26b2cB323 - // Corrected p1. it's basically the 'carriage/trailer number'. So if the train has 3 trailers you'd call the native once with a var or 3 times with 1, 2, 3. - inline Vehicle GetTrainCarriage(Vehicle train, int trailerNumber) { return _i(0x08AAFD0814722BC3, train, trailerNumber); } // 0x08aafd0814722bc30x2544e7a6B323 - inline BOOL IsMissionTrain(Vehicle train) { return _i(0xAD464F2E18836BFC, train); } // 0xad464f2e18836bfcB2372 - inline Void DeleteMissionTrain(Vehicle* train) { return _i(0x5B76B14AE875C795, train); } // 0x5b76b14ae875c7950x86c9497dB323 - // p1 is always 0 - inline Void SetMissionTrainAsNoLongerNeeded(Vehicle* train, BOOL p1) { return _i(0xBBE7648349B49BE8, train, p1); } // 0xbbe7648349b49be80x19808560B323 - inline Void SetMissionTrainCoords(Vehicle train, float x, float y, float z) { return _i(0x591CA673AA6AB736, train, x, y, z); } // 0x591ca673aa6ab7360xd6d70803B323 - inline BOOL IsThisModelABoat(Hash model) { return _i(0x45A9187928F4B9E3, model); } // 0x45a9187928f4b9e30x10f6085cB323 - // Checks if model is a boat, then checks for FLAG_IS_JETSKI. - inline BOOL IsThisModelAJetski(Hash model) { return _i(0x9537097412CF75FE, model); } // 0x9537097412cf75feB323 - inline BOOL IsThisModelAPlane(Hash model) { return _i(0xA0948AB42D7BA0DE, model); } // 0xa0948ab42d7ba0de0x3b3907bbB323 - inline BOOL IsThisModelAHeli(Hash model) { return _i(0xDCE4334788AF94EA, model); } // 0xdce4334788af94ea0x8af7f568B323 - // To check if the model is an amphibious car, use IsThisModelAnAmphibiousCar. - inline BOOL IsThisModelACar(Hash model) { return _i(0x7F6DB52EEFC96DF8, model); } // 0x7f6db52eefc96df80x60e4c22fB323 - inline BOOL IsThisModelATrain(Hash model) { return _i(0xAB935175B22E822B, model); } // 0xab935175b22e822b0xf87dcffdB323 - inline BOOL IsThisModelABike(Hash model) { return _i(0xB50C0B0CEDC6CE84, model); } // 0xb50c0b0cedc6ce840x7e702cddB323 - inline BOOL IsThisModelABicycle(Hash model) { return _i(0xBF94DD42F63BDED2, model); } // 0xbf94dd42f63bded20x328e6ff5B323 - inline BOOL IsThisModelAQuadbike(Hash model) { return _i(0x39DAC362EE65FA28, model); } // 0x39dac362ee65fa280xc1625277B323 - inline BOOL IsThisModelAnAmphibiousCar(Hash model) { return _i(0x633F6F44A537EBB6, model); } // 0x633f6f44a537ebb6B944 - inline BOOL IsThisModelAnAmphibiousQuadbike(Hash model) { return _i(0xA1A9FC1C76A6730D, model); } // 0xa1a9fc1c76a6730dB1103 - // Equivalent of SetHeliBladesSpeed(vehicleHandle, 1.0f); - // - // this native works on planes to? - inline Void SetHeliBladesFullSpeed(Vehicle vehicle) { return _i(0xA178472EBB8AE60D, vehicle); } // 0xa178472ebb8ae60d0x033a9408B323 - // Sets the speed of the helicopter blades in percentage of the full speed. - // - // vehicleHandle: The helicopter. - // speed: The speed in percentage, 0.0f being 0% and 1.0f being 100%. - inline Void SetHeliBladesSpeed(Vehicle vehicle, float speed) { return _i(0xFD280B4D7F3ABC4D, vehicle, speed); } // 0xfd280b4d7f3abc4d0x5c7d4ea9B323 - inline Void ForceSubThrottleForTime(Vehicle vehicle, float p1, float p2) { return _i(0x99CAD8E7AFDB60FA, vehicle, p1, p2); } // 0x99cad8e7afdb60fa0x1128a45bB323 - // This has not yet been tested - it's just an assumption of what the types could be. - inline Void SetVehicleCanBeTargetted(Vehicle vehicle, BOOL state) { return _i(0x3750146A28097A82, vehicle, state); } // 0x3750146a28097a820x64b70b1dB323 - inline Void SetDontAllowPlayerToEnterVehicleIfLockedForPlayer(Vehicle vehicle, BOOL p1) { return _i(0xDBC631F109350B8C, vehicle, p1); } // 0xdbc631f109350b8c0x486c1280B323 - inline Void SetVehicleCanBeVisiblyDamaged(Vehicle vehicle, BOOL state) { return _i(0x4C7028F78FFD3681, vehicle, state); } // 0x4c7028f78ffd36810xc5d94017B323 - inline Void SetVehicleHasUnbreakableLights(Vehicle vehicle, BOOL toggle) { return _i(0x1AA8A837D2169D94, vehicle, toggle); } // 0x1aa8a837d2169d940x009ab49eB323 - inline Void SetVehicleRespectsLocksWhenHasDriver(Vehicle vehicle, BOOL p1) { return _i(0x2311DD7159F00582, vehicle, p1); } // 0x2311dd7159f005820x758c5e2eB323 - inline Void SetVehicleCanEjectPassengersIfLocked(Any p0, Any p1) { return _i(0x065D03A9D6B2C6B5, p0, p1); } // 0x065d03a9d6b2c6b5B463 - // Dirt level does not become greater than 15.0 - inline float GetVehicleDirtLevel(Vehicle vehicle) { return _i(0x8F17BC8BA08DA62B, vehicle); } // 0x8f17bc8ba08da62b0xfd15c065B323 - // You can't use values greater than 15.0 - // Also, R* does (float)(rand() % 15) to get a random dirt level when generating a vehicle. - inline Void SetVehicleDirtLevel(Vehicle vehicle, float dirtLevel) { return _i(0x79D3B596FE44EE8B, vehicle, dirtLevel); } // 0x79d3b596fe44ee8b0x2b39128bB323 - // Appears to return true if the vehicle has any damage, including cosmetically. - inline BOOL GetDoesVehicleHaveDamageDecals(Vehicle vehicle) { return _i(0xBCDC5017D3CE1E9E, vehicle); } // 0xbcdc5017d3ce1e9e0xdac523bcB323 - // doorId: see SetVehicleDoorShut - inline BOOL IsVehicleDoorFullyOpen(Vehicle vehicle, int doorId) { return _i(0x3E933CFF7B111C22, vehicle, doorId); } // 0x3e933cff7b111c220xc2385b6fB323 - // Starts or stops the engine on the specified vehicle. - // - // vehicle: The vehicle to start or stop the engine on. - // value: true to turn the vehicle on; false to turn it off. - // instantly: if true, the vehicle will be set to the state immediately; otherwise, the current driver will physically turn on or off the engine. - // disableAutoStart: If true, the system will prevent the engine from starting when the player got into it. - // - // from what I've tested when I do this to a helicopter the propellers turn off after the engine has started. so is there any way to keep the heli propellers on? - inline Void SetVehicleEngineOn(Vehicle vehicle, BOOL value, BOOL instantly, BOOL disableAutoStart) { return _i(0x2497C4717C8B881E, vehicle, value, instantly, disableAutoStart); } // 0x2497c4717c8b881e0x7fbc86f1B323 - inline Void SetVehicleUndriveable(Vehicle vehicle, BOOL toggle) { return _i(0x8ABA6AF54B942B95, vehicle, toggle); } // 0x8aba6af54b942b950x48d02a4eB323 - inline Void SetVehicleProvidesCover(Vehicle vehicle, BOOL toggle) { return _i(0x5AFEEDD9BB2899D7, vehicle, toggle); } // 0x5afeedd9bb2899d70xefc01ca9B323 - // doorId: see SetVehicleDoorShut - inline Void SetVehicleDoorControl(Vehicle vehicle, int doorId, int speed, float angle) { return _i(0xF2BFA0430F0A0FCB, vehicle, doorId, speed, angle); } // 0xf2bfa0430f0a0fcb0x572dd360B323 - // doorId: see SetVehicleDoorShut - inline Void SetVehicleDoorLatched(Vehicle vehicle, int doorId, BOOL p2, BOOL p3, BOOL p4) { return _i(0xA5A9653A8D2CAF48, vehicle, doorId, p2, p3, p4); } // 0xa5a9653a8d2caf480x4eb7bbfcB323 - // doorId: see SetVehicleDoorShut - inline float GetVehicleDoorAngleRatio(Vehicle vehicle, int doorId) { return _i(0xFE3F9C29F7B32BD5, vehicle, doorId); } // 0xfe3f9c29f7b32bd50x0e399c26B323 - // doorId: see SetVehicleDoorShut - inline Ped GetPedUsingVehicleDoor(Vehicle vehicle, int doord) { return _i(0x218297BF0CFD853B, vehicle, doord); } // 0x218297bf0cfd853b0x0630101fB323 - // enum eDoorId - // { - // VEH_EXT_DOOR_INVALID_ID = -1, - // VEH_EXT_DOOR_DSIDE_F, - // VEH_EXT_DOOR_DSIDE_R, - // VEH_EXT_DOOR_PSIDE_F, - // VEH_EXT_DOOR_PSIDE_R, - // VEH_EXT_BONNET, - // VEH_EXT_BOOT - // }; - inline Void SetVehicleDoorShut(Vehicle vehicle, int doorId, BOOL closeInstantly) { return _i(0x93D9BD300D7789E5, vehicle, doorId, closeInstantly); } // 0x93d9bd300d7789e50x142606bdB323 - // doorId: see SetVehicleDoorShut - inline Void SetVehicleDoorBroken(Vehicle vehicle, int doorId, BOOL deleteDoor) { return _i(0xD4D4F6A4AB575A33, vehicle, doorId, deleteDoor); } // 0xd4d4f6a4ab575a330x8147fea7B323 - inline Void SetVehicleCanBreak(Vehicle vehicle, BOOL toggle) { return _i(0x59BF8C3D52C92F66, vehicle, toggle); } // 0x59bf8c3d52c92f660x90a810d1B323 - inline BOOL DoesVehicleHaveRoof(Vehicle vehicle) { return _i(0x8AC862B0B32C5B80, vehicle); } // 0x8ac862b0b32c5b800xdb817403B323 - inline Void SetVehicleRemoveAggressiveCarjackMission(Any p0) { return _i(0xC4B3347BD68BD609, p0); } // 0xc4b3347bd68bd609B573 - inline Void SetVehicleAVoidPlayerVehicleRiotVanMission(Any p0) { return _i(0xD3301660A57C9272, p0); } // 0xd3301660a57c9272B757 - inline Void SetCarjackMissionRemovalParameters(Any p0, Any p1) { return _i(0xB9562064627FF9DB, p0, p1); } // 0xb9562064627ff9dbB573 - // Returns true if MF_IS_BIG (strModelFlags 0x8) handling model flag is set. - inline BOOL IsBigVehicle(Vehicle vehicle) { return _i(0x9F243D3919F442FE, vehicle); } // 0x9f243d3919f442fe0x9cdba8deB323 - // Returns the total amount of color combinations found in the vehicle's carvariations.meta entry. - inline int GetNumberOfVehicleColours(Vehicle vehicle) { return _i(0x3B963160CD65D41E, vehicle); } // 0x3b963160cd65d41e0xf2442ee2B323 - // Sets the selected vehicle's colors to the specified index of the color combination found in the vehicle's carvariations.meta entry. - inline Void SetVehicleColourCombination(Vehicle vehicle, int colorCombination) { return _i(0x33E8CD3322E2FE31, vehicle, colorCombination); } // 0x33e8cd3322e2fe310xa557aeadB323 - // Returns the index of the color combination found in the vehicle's carvariations.meta entry. - inline int GetVehicleColourCombination(Vehicle vehicle) { return _i(0x6A842D197F845D56, vehicle); } // 0x6a842d197f845d560x77ac1b4cB323 - // `color`: is the paint index for the vehicle. - // Paint index goes from 0 to 12. - // Be aware that it only works on xenon lights. Example: https://i.imgur.com/yV3cpG9.png - // Full list of all vehicle xenon lights by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json - inline Void SetVehicleXenonLightColorIndex(Vehicle vehicle, int colorIndex) { return _i(0xE41033B25D003A07, vehicle, colorIndex); } // 0xe41033b25d003a07B1604 - // Returns the headlight color index from the vehicle. Value between 0, 12. - // Use SetVehicleXenonLightColorIndex to set the headlights color for the vehicle. - // Must enable xenon headlights before it'll take affect. - // - // Returns an int, value between 0-12 or 255 if no color is set. - inline int GetVehicleXenonLightColorIndex(Vehicle vehicle) { return _i(0x3DFF319A831E0CDB, vehicle); } // 0x3dff319a831e0cdbB1604 - // Setting this to false, makes the specified vehicle to where if you press Y your character doesn't even attempt the animation to enter the vehicle. Hence it's not considered aka ignored. - inline Void SetVehicleIsConsideredByPlayer(Vehicle vehicle, BOOL toggle) { return _i(0x31B927BBC44156CD, vehicle, toggle); } // 0x31b927bbc44156cd0x14413319B323 - inline Void SetVehicleWillForceOtherVehiclesToStop(Vehicle vehicle, BOOL toggle) { return _i(0xBE5C1255A1830FF5, vehicle, toggle); } // 0xbe5c1255a1830ff50xa6d8d7a5B323 - inline Void SetVehicleActAsIfHasSirenOn(Vehicle vehicle, BOOL p1) { return _i(0x9BECD4B9FEF3F8A6, vehicle, p1); } // 0x9becd4b9fef3f8a60xacab8ff3B323 - inline Void SetVehicleUseMoreRestrictiveSpawnChecks(Vehicle vehicle, BOOL p1) { return _i(0x88BC673CA9E0AE99, vehicle, p1); } // 0x88bc673ca9e0ae990xf0e5c41dB323 - inline Void SetVehicleMayBeUsedByGotoPointAnyMeans(Vehicle vehicle, BOOL p1) { return _i(0xE851E480B814D4BA, vehicle, p1); } // 0xe851e480b814d4ba0x2f98b4b7B323 - // Not present in the retail version! It's just a nullsub. - // - // p0 always true (except in one case) - // successIndicator: 0 if success, -1 if failed - inline Void GetRandomVehicleModelInMemory(BOOL p0, Hash* modelHash, int* successIndicator) { return _i(0x055BF0AC0C34F4FD, p0, modelHash, successIndicator); } // 0x055bf0ac0c34f4fd0xe2c45631B323 - // enum VehicleLockStatus = { - // None = 0, - // Unlocked = 1, - // Locked = 2, - // LockedForPlayer = 3, - // StickPlayerInside = 4, -- Doesn't allow players to exit the vehicle with the exit vehicle key. - // CanBeBrokenInto = 7, -- Can be broken into the car. If the glass is broken, the value will be set to 1 - // CanBeBrokenIntoPersist = 8, -- Can be broken into persist - // CannotBeTriedToEnter = 10, -- Cannot be tried to enter (Nothing happens when you press the vehicle enter key). - // } - inline int GetVehicleDoorLockStatus(Vehicle vehicle) { return _i(0x25BC98A59C2EA962, vehicle); } // 0x25bc98a59c2ea9620x0d72cef2B323 - // Returns vehicle door lock state previously set with SetVehicleIndividualDoorsLocked - inline int GetVehicleIndividualDoorLockStatus(Vehicle vehicle, int doorId) { return _i(0xCA4AC3EAAE46EC7B, vehicle, doorId); } // 0xca4ac3eaae46ec7bB1103 - // doorID starts at 0, not seeming to skip any numbers. Four door vehicles intuitively range from 0 to 3. - inline BOOL IsVehicleDoorDamaged(Vehicle veh, int doorID) { return _i(0xB8E181E559464527, veh, doorID); } // 0xb8e181e5594645270x4999e3c3B323 - // doorId: see SetVehicleDoorShut - inline Void SetDoorAllowedToBeBrokenOff(Vehicle vehicle, int doorId, BOOL isBreakable) { return _i(0x2FA133A4A9D37ED8, vehicle, doorId, isBreakable); } // 0x2fa133a4a9d37ed80x065b92b3B323 - inline BOOL IsVehicleBumperBouncing(Vehicle vehicle, BOOL frontBumper) { return _i(0x27B926779DEB502D, vehicle, frontBumper); } // 0x27b926779deb502d0xb3a2cc4fB323 - inline BOOL IsVehicleBumperBrokenOff(Vehicle vehicle, BOOL frontBumper) { return _i(0x468056A6BB6F3846, vehicle, frontBumper); } // 0x468056a6bb6f38460xaf25c027B323 - // Usage: - // - // public bool isCopInRange(Vector3 Location, float Range) - // { - // return Function.Call(Hash.IsCopPedInArea3d, Location.X - Range, Location.Y - Range, Location.Z - Range, Location.X + Range, Location.Y + Range, Location.Z + Range); - // } - inline BOOL IsCopVehicleInArea3d(float x1, float x2, float y1, float y2, float z1, float z2) { return _i(0x7EEF65D5F153E26A, x1, x2, y1, y2, z1, z2); } // 0x7eef65d5f153e26a0xfb16c6d1B323 - // Public Function isVehicleOnAllWheels(vh As Vehicle) As Boolean - // Return Native.Function.Call(Of Boolean)(Hash.IsVehicleOnAllWheels, vh) - // End Function - // - inline BOOL IsVehicleOnAllWheels(Vehicle vehicle) { return _i(0xB104CD1BABF302E2, vehicle); } // 0xb104cd1babf302e20x10089f8eB323 - // Returns `nMonetaryValue` from handling.meta for specific model. - inline int GetVehicleModelValue(Hash vehicleModel) { return _i(0x5873C14A52D74236, vehicleModel); } // 0x5873c14a52d742360x58fefc3dB463 - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline Hash GetVehicleLayoutHash(Vehicle vehicle) { return _i(0x28D37D4F71AC5C58, vehicle); } // 0x28d37d4f71ac5c580xe0b35187B323 - inline Hash GetInVehicleClipsetHashForSeat(Vehicle vehicle, int p1) { return _i(0xA01BC64DD4BFBBAC, vehicle, p1); } // 0xa01bc64dd4bfbbacB323 - // Makes the train all jumbled up and derailed as it moves on the tracks (though that wont stop it from its normal operations) - inline Void SetRenderTrainAsDerailed(Vehicle train, BOOL toggle) { return _i(0x317B11A312DF5534, train, toggle); } // 0x317b11a312df55340x899d9092B323 - // They use the same color indexs as SetVehicleColours. - inline Void SetVehicleExtraColours(Vehicle vehicle, int pearlescentColor, int wheelColor) { return _i(0x2036F561ADD12E33, vehicle, pearlescentColor, wheelColor); } // 0x2036f561add12e330x515db2a0B323 - inline Void GetVehicleExtraColours(Vehicle vehicle, int* pearlescentColor, int* wheelColor) { return _i(0x3BC4245933A166F7, vehicle, pearlescentColor, wheelColor); } // 0x3bc4245933a166f70x80e4659bB323 - inline Void SetVehicleExtraColour5(Vehicle vehicle, int color) { return _i(0xF40DD601A65F7F19, vehicle, color); } // 0xf40dd601a65f7f19B505 - inline Void GetVehicleExtraColour5(Vehicle vehicle, int* color) { return _i(0x7D1464D472D32136, vehicle, color); } // 0x7d1464d472d32136B505 - inline Void SetVehicleExtraColour6(Vehicle vehicle, int color) { return _i(0x6089CDF6A57F326C, vehicle, color); } // 0x6089cdf6a57f326cB505 - inline Void GetVehicleExtraColour6(Vehicle vehicle, int* color) { return _i(0xB7635E80A5C31BFF, vehicle, color); } // 0xb7635e80a5c31bffB505 - inline Void StopAllGarageActivity() { return _i(0x0F87E938BDF29D66); } // 0x0f87e938bdf29d660x17a0bce5B323 - // This fixes a vehicle. - // If the vehicle's engine's broken then you cannot fix it with this native. - inline Void SetVehicleFixed(Vehicle vehicle) { return _i(0x115722B1B9C14C1C, vehicle); } // 0x115722b1b9c14c1c0x17469aa1B323 - // This fixes the deformation of a vehicle but the vehicle health doesn't improve - inline Void SetVehicleDeformationFixed(Vehicle vehicle) { return _i(0x953DA1E1B12C0491, vehicle); } // 0x953da1e1b12c04910xdd2920c8B323 - inline Void SetVehicleCanEngineMissfire(Vehicle vehicle, BOOL toggle) { return _i(0x206BC5DC9D1AC70A, vehicle, toggle); } // 0x206bc5dc9d1ac70a0x8eacbd13B323 - inline Void SetVehicleCanLeakOil(Vehicle vehicle, BOOL toggle) { return _i(0x51BB2D88D31A914B, vehicle, toggle); } // 0x51bb2d88d31a914b0x88f0f7e7B323 - inline Void SetVehicleCanLeakPetrol(Vehicle vehicle, BOOL toggle) { return _i(0x192547247864DFDD, vehicle, toggle); } // 0x192547247864dfdd0x90d6ee57B323 - inline Void SetDisableVehiclePetrolTankFires(Vehicle vehicle, BOOL toggle) { return _i(0x465BF26AB9684352, vehicle, toggle); } // 0x465bf26ab96843520xc40192b5B323 - inline Void SetDisableVehiclePetrolTankDamage(Vehicle vehicle, BOOL toggle) { return _i(0x37C8252A7C92D017, vehicle, toggle); } // 0x37c8252a7c92d0170xad3e05f2B323 - inline Void SetDisableVehicleEngineFires(Vehicle vehicle, BOOL toggle) { return _i(0x91A0BD635321F145, vehicle, toggle); } // 0x91a0bd635321f1450x1784ba1aB323 - inline Void SetVehicleLimitSpeedWhenPlayerInactive(Vehicle vehicle, BOOL toggle) { return _i(0xC50CE861B55EAB8B, vehicle, toggle); } // 0xc50ce861b55eab8b0x40c323aeB323 - // sfink: sets bit in vehicle's structure, used by maintransition, fm_mission_controller, mission_race and a couple of other scripts. see dissassembly: - // CVehicle *__fastcall sub_140CDAA10(signed int a1, char a2) - // { - // CVehicle *result; // rax@1 - // - // result = EntityAsCVehicle(a1); - // if ( result ) - // { - // result->field_886 &= 0xEFu; - // result->field_886 |= 16 * (a2 & 1); - // } - // return result; - // } - inline Void SetVehicleStopInstantlyWhenPlayerInactive(Vehicle vehicle, BOOL toggle) { return _i(0x6EBFB22D646FFC18, vehicle, toggle); } // 0x6ebfb22d646ffc180x847f1304B323 - inline Void SetDisablePretendOccupants(Vehicle vehicle, BOOL toggle) { return _i(0x25367DE49D64CF16, vehicle, toggle); } // 0x25367de49d64cf160xcbd98ba1B323 - inline Void RemoveVehiclesFromGeneratorsInArea(float x1, float y1, float z1, float x2, float y2, float z2, Any p6) { return _i(0x46A1E1A299EC4BBA, x1, y1, z1, x2, y2, z2, p6); } // 0x46a1e1a299ec4bba0x42cc15e0B323 - // Locks the vehicle's steering to the desired angle, explained below. - // - // Requires to be called onTick. Steering is unlocked the moment the function stops being called on the vehicle. - // - // Steer bias: - // -1.0 = full right - // 0.0 = centered steering - // 1.0 = full left - inline Void SetVehicleSteerBias(Vehicle vehicle, float value) { return _i(0x42A8EC77D5150CBE, vehicle, value); } // 0x42a8ec77d5150cbe0x7357c1ebB323 - inline BOOL IsVehicleExtraTurnedOn(Vehicle vehicle, int extraId) { return _i(0xD2E6822DBFD6C8BD, vehicle, extraId); } // 0xd2e6822dbfd6c8bd0x042098b5B323 - // Available extraIds are 1-14, however none of the vehicles have extras above 12. - inline Void SetVehicleExtra(Vehicle vehicle, int extraId, BOOL disable) { return _i(0x7EE3A3C5E4A40CC9, vehicle, extraId, disable); } // 0x7ee3a3c5e4a40cc90x642d065cB323 - // Checks via CVehicleModelInfo - inline BOOL DoesExtraExist(Vehicle vehicle, int extraId) { return _i(0x1262D55792428154, vehicle, extraId); } // 0x1262d557924281540x409411ccB323 - // Returns true if specified extra part is broken off. It only works for extras that can break off during collisions, non-breakable extras always return false. Also returns true if the breakable extra is toggled off through script. - inline BOOL IsExtraBrokenOff(Vehicle vehicle, int extraId) { return _i(0x534E36D4DB9ECC5D, vehicle, extraId); } // 0x534e36d4db9ecc5dB1493 - inline Void SetConvertibleRoof(Vehicle vehicle, BOOL p1) { return _i(0xF39C4F538B5124C2, vehicle, p1); } // 0xf39c4f538b5124c20xc87b6a51B323 - inline Void LowerConvertibleRoof(Vehicle vehicle, BOOL instantlyLower) { return _i(0xDED51F703D0FA83D, vehicle, instantlyLower); } // 0xded51f703d0fa83d0xc5f72eaeB323 - inline Void RaiseConvertibleRoof(Vehicle vehicle, BOOL instantlyRaise) { return _i(0x8F5FB35D7E88FC70, vehicle, instantlyRaise); } // 0x8f5fb35d7e88fc700xa4e4cba3B323 - // 0 -> up - // 1 -> lowering down - // 2 -> down - // 3 -> raising up - inline int GetConvertibleRoofState(Vehicle vehicle) { return _i(0xF8C397922FC03F41, vehicle); } // 0xf8c397922fc03f410x1b09714dB323 - // Returns true if the vehicle has a convertible roof. - // - // p1 is false almost always. However, in launcher_carwash/carwash1/carwash2 scripts, p1 is true and is accompanied by DoesVehicleHaveRoof. If p1 is true, it seems that every single vehicle will return true irrespective of being a convertible. - inline BOOL IsVehicleAConvertible(Vehicle vehicle, BOOL p1) { return _i(0x52F357A30698BCCE, vehicle, p1); } // 0x52f357a30698bcce0x6ef54490B323 - // Transforms the `stormberg`/`toreador` to its "submarine" variant. If the vehicle is already in that state then the vehicle transformation audio will still play, but the vehicle won't change at all. - inline BOOL TransformToSubmarine(Vehicle vehicle, BOOL noAnimation) { return _i(0xBE4C854FFDB6EEBE, vehicle, noAnimation); } // 0xbe4c854ffdb6eebe0xcafe5fe0B1365 - // Transforms the `stormberg`/`toreador` to its "road vehicle" variant. If the vehicle is already in that state then the vehicle transformation audio will still play, but the vehicle won't change at all. - inline Void TransformToCar(Vehicle vehicle, BOOL noAnimation) { return _i(0x2A69FFD1B42BFF9E, vehicle, noAnimation); } // 0x2a69ffd1b42bff9e0xd8b90941B1290 - inline BOOL IsVehicleInSubmarineMode(Vehicle vehicle) { return _i(0xA77DC70BD689A1E5, vehicle); } // 0xa77dc70bd689a1e50xe2ff06dbB1290 - inline BOOL IsVehicleStoppedAtTrafficLights(Vehicle vehicle) { return _i(0x2959F696AE390A99, vehicle); } // 0x2959f696ae390a990x69200fa4B323 - // Apply damage to vehicle at a location. Location is relative to vehicle model (not world). - // - // Radius of effect damage applied in a sphere at impact location - // When `focusOnModel` set to `true`, the damage sphere will travel towards the vehicle from the given point, thus guaranteeing an impact - inline Void SetVehicleDamage(Vehicle vehicle, float xOffset, float yOffset, float zOffset, float damage, float radius, BOOL focusOnModel) { return _i(0xA1DD317EA8FD4F29, vehicle, xOffset, yOffset, zOffset, damage, radius, focusOnModel); } // 0xa1dd317ea8fd4f290x21b458b2B323 - inline Void SetVehicleOccupantsTakeExplosiveDamage(Vehicle vehicle, BOOL toggle) { return _i(0x35BB21DE06784373, vehicle, toggle); } // 0x35bb21de06784373B463 - // Returns 1000.0 if the function is unable to get the address of the specified vehicle or if it's not a vehicle. - // - // Minimum: -4000 - // Maximum: 1000 - // - // -4000: Engine is destroyed - // 0 and below: Engine catches fire and health rapidly declines - // 300: Engine is smoking and losing functionality - // 1000: Engine is perfect - inline float GetVehicleEngineHealth(Vehicle vehicle) { return _i(0xC45D23BAF168AAB8, vehicle); } // 0xc45d23baf168aab80x8880038aB323 - // 1000 is max health - // Begins leaking gas at around 650 health - // Minimum: -4000 - // Maximum: 1000 - // - // -4000: Engine is destroyed - // 0 and below: Engine catches fire and health rapidly declines - // 300: Engine is smoking and losing functionality - // 1000: Engine is perfect - inline Void SetVehicleEngineHealth(Vehicle vehicle, float health) { return _i(0x45F6D8EEF34ABEF1, vehicle, health); } // 0x45f6d8eef34abef10x1b760fb5B323 - // Works just like SetVehicleEngineHealth, but only for planes. - inline Void SetPlaneEngineHealth(Vehicle vehicle, float health) { return _i(0x2A86A0475B6A1434, vehicle, health); } // 0x2a86a0475b6a1434B1103 - // 1000 is max health - // Begins leaking gas at around 650 health - // -999.90002441406 appears to be minimum health, although nothing special occurs - inline float GetVehiclePetrolTankHealth(Vehicle vehicle) { return _i(0x7D5DABE888D2D074, vehicle); } // 0x7d5dabe888d2d0740xe41595ceB323 - // 1000 is max health - // Begins leaking gas at around 650 health - // -999.90002441406 appears to be minimum health, although nothing special occurs - inline Void SetVehiclePetrolTankHealth(Vehicle vehicle, float health) { return _i(0x70DB57649FA8D0D8, vehicle, health); } // 0x70db57649fa8d0d80x660a3692B323 - // p1 can be anywhere from 0 to 3 in the scripts. - // p2 being how long in milliseconds the vehicle has been stuck - inline BOOL IsVehicleStuckTimerUp(Vehicle vehicle, int p1, int ms) { return _i(0x679BE1DAF71DA874, vehicle, p1, ms); } // 0x679be1daf71da8740x2fcf58c1B323 - // The inner function has a switch on the second parameter. It's the stuck timer index. - // - // Here's some pseudo code I wrote for the inner function: - // Void __fastcall NATIVE_RESET_VEHICLE_STUCK_TIMER_INNER(CUnknown* unknownClassInVehicle, int timerIndex) - // { - // switch (timerIndex) - // { - // case 0: - // unknownClassInVehicle->FirstStuckTimer = (WORD)0u; - // case 1: - // unknownClassInVehicle->SecondStuckTimer = (WORD)0u; - // case 2: - // unknownClassInVehicle->ThirdStuckTimer = (WORD)0u; - // case 3: - // unknownClassInVehicle->FourthStuckTimer = (WORD)0u; - // case 4: - // unknownClassInVehicle->FirstStuckTimer = (WORD)0u; - // unknownClassInVehicle->SecondStuckTimer = (WORD)0u; - // unknownClassInVehicle->ThirdStuckTimer = (WORD)0u; - // unknownClassInVehicle->FourthStuckTimer = (WORD)0u; - // break; - // }; - // } - inline Void ResetVehicleStuckTimer(Vehicle vehicle, int nullAttributes) { return _i(0xD7591B0065AFAA7A, vehicle, nullAttributes); } // 0xd7591b0065afaa7a0xef2a6016B323 - // p1 is always 0 in the scripts. - // - // p1 = check if vehicle is on fire - inline BOOL IsVehicleDriveable(Vehicle vehicle, BOOL isOnFireCheck) { return _i(0x4C241E39B23DF959, vehicle, isOnFireCheck); } // 0x4c241e39b23df9590x41a7267aB323 - inline Void SetVehicleHasBeenOwnedByPlayer(Vehicle vehicle, BOOL owned) { return _i(0x2B5F9D2AF1F1722D, vehicle, owned); } // 0x2b5f9d2af1f1722d0xb4d3dbfbB323 - inline Void SetVehicleNeedsToBeHotwired(Vehicle vehicle, BOOL toggle) { return _i(0xFBA550EA44404EE6, vehicle, toggle); } // 0xfba550ea44404ee60xd8260751B323 - inline Void SetVehicleBlipThrottleRandomly(Vehicle vehicle, BOOL p1) { return _i(0x9F3F689B814F2599, vehicle, p1); } // 0x9f3f689b814f2599B323 - inline Void SetPoliceFocusWillTrackVehicle(Vehicle vehicle, BOOL toggle) { return _i(0x4E74E62E0A97E901, vehicle, toggle); } // 0x4e74e62e0a97e9010x5690f6c3B323 - // Sounds the horn for the specified vehicle. - // - // vehicle: The vehicle to activate the horn for. - // mode: The hash of "NORMAL" or "HELDDOWN". Can be 0. - // duration: The duration to sound the horn, in milliseconds. - // - // Note: If a player is in the vehicle, it will only sound briefly. - inline Void StartVehicleHorn(Vehicle vehicle, int duration, Hash mode, BOOL forever) { return _i(0x9C8C6504B5B63D2C, vehicle, duration, mode, forever); } // 0x9c8c6504b5b63d2c0x0df5adb3B323 - // If set to TRUE, it seems to suppress door noises and doesn't allow the horn to be continuous. - inline Void SetVehicleInCarModShop(Vehicle vehicle, BOOL toggle) { return _i(0x9D44FCCE98450843, vehicle, toggle); } // 0x9d44fcce984508430x968e5770B323 - // if true, axles won't bend. - inline Void SetVehicleHasStrongAxles(Vehicle vehicle, BOOL toggle) { return _i(0x92F0CF722BC4202F, vehicle, toggle); } // 0x92f0cf722bc4202f0x0d1cbc65B323 - // Returns model name of vehicle in all caps. Needs to be displayed through localizing text natives to get proper display name. - // ----------------------------------------------------------------------------------------------------------------------------------------- - // While often the case, this does not simply return the model name of the vehicle (which could be hashed to return the model hash). Variations of the same vehicle may also use the same display name. - // ----------------------------------------------------------------------------------------------------------------------------------------- - // - // Returns "CARNOTFOUND" if the hash doesn't match a vehicle hash. - // - // Using HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION, you can get the localized name. - // - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline String GetDisplayNameFromVehicleModel(Hash modelHash) { return _i(0xB215AAC32D25D019, modelHash); } // 0xB215AAC32D25D019 0xEC86DF39 b323 - // Will return a vehicle's manufacturer display label. - // Returns "CARNOTFOUND" if the hash doesn't match a vehicle hash. - // - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline String GET_MAKE_NAME_FROM_VEHICLE_MODEL(Hash modelHash) { return _i(0xF7AF4F159FF99F97, modelHash); } // 0xF7AF4F159FF99F97 b1868 - // The only example I can find of this function in the scripts, is this: - // - // struct _s = VEHICLE::GetVehicleDeformationAtPos(rPtr((A_0) + 4), 1.21f, 6.15f, 0.3f); - // - // ----------------------------------------------------------------------------------------------------------------------------------------- - // PC scripts: - // - // v_5/*{3}*/ = VEHICLE::GetVehicleDeformationAtPos(a_0._f1, 1.21, 6.15, 0.3); - inline Vector3 GetVehicleDeformationAtPos(Vehicle vehicle, float offsetX, float offsetY, float offsetZ) { return _i(0x4EC6CFBC7B2E9536, vehicle, offsetX, offsetY, offsetZ); } // 0x4ec6cfbc7b2e95360xabf02075B323 - inline Void SetVehicleLivery(Vehicle vehicle, int livery) { return _i(0x60BF608F1B8CD1B6, vehicle, livery); } // 0x60bf608f1b8cd1b60x7ad87059B323 - // -1 = no livery - inline int GetVehicleLivery(Vehicle vehicle) { return _i(0x2BB9230590DA5E8A, vehicle); } // 0x2bb9230590da5e8a0xec82a51dB323 - // Returns -1 if the vehicle has no livery - inline int GetVehicleLiveryCount(Vehicle vehicle) { return _i(0x87B63E25A529D526, vehicle); } // 0x87b63e25a529d5260xfb0ca947B323 - // Used to set the secondary livery (the roof on Tornado Custom being one such example.) - // - // Livery value is dependent on the amount of liveries present in the vehicle's texture dictionary, for Tornado Custom this would be 0-6. - inline Void SetVehicleLivery2(Vehicle vehicle, int livery) { return _i(0xA6D3A8750DC73270, vehicle, livery); } // 0xa6d3a8750dc73270B505 - // Returns index of the current vehicle's secondary livery. A getter for SetVehicleLivery2. - inline int GetVehicleLivery2(Vehicle vehicle) { return _i(0x60190048C0764A26, vehicle); } // 0x60190048c0764a26B505 - // Returns a number of available secondary liveries, or -1 if vehicle has no secondary liveries available. - inline int GetVehicleLivery2Count(Vehicle vehicle) { return _i(0x5ECB40269053C0D4, vehicle); } // 0x5ecb40269053c0d4B505 - // This will return false if the window is broken, or rolled down. - // Window indexes: - // 0 = Front Right Window - // 1 = Front Left Window - // 2 = Back Right Window - // 3 = Back Left Window - // - // - // Those numbers go on for vehicles that have more than 4 doors with windows. - inline BOOL IsVehicleWindowIntact(Vehicle vehicle, int windowIndex) { return _i(0x46E571A0E20D01F1, vehicle, windowIndex); } // 0x46e571a0e20d01f10xac4ef23dB323 - // Appears to return false if any window is broken. - inline BOOL AreAllVehicleWindowsIntact(Vehicle vehicle) { return _i(0x11D862A3E977A9EF, vehicle); } // 0x11d862a3e977a9ef0xbb619744B323 - // Returns false if every seat is occupied. - inline BOOL AreAnyVehicleSeatsFree(Vehicle vehicle) { return _i(0x2D34FC3BC4ADB780, vehicle); } // 0x2d34fc3bc4adb7800x648e685aB323 - inline Void ResetVehicleWheels(Vehicle vehicle, BOOL toggle) { return _i(0x21D2E5662C1F6FED, vehicle, toggle); } // 0x21d2e5662c1f6fed0xd5ffe779B323 - inline BOOL IsHeliPartBroken(Vehicle vehicle, BOOL p1, BOOL p2, BOOL p3) { return _i(0xBC74B4BE25EB6C8A, vehicle, p1, p2, p3); } // 0xbc74b4be25eb6c8a0xf4e4c439B323 - // Max 1000. - // At 0 the main rotor will stall. - inline float GetHeliMainRotorHealth(Vehicle vehicle) { return _i(0xE4CB7541F413D2C5, vehicle); } // 0xe4cb7541f413d2c50xf01e2aabB323 - // Max 1000. - // At 0 the tail rotor will stall. - inline float GetHeliTailRotorHealth(Vehicle vehicle) { return _i(0xAE8CE82A4219AC8C, vehicle); } // 0xae8ce82a4219ac8c0xa41bc13dB323 - // Max 1000. - // At -100 both helicopter rotors will stall. - inline float GetHeliTailBoomHealth(Vehicle vehicle) { return _i(0xAC51915D27E4A5F7, vehicle); } // 0xac51915d27e4a5f70x8a68388fB323 - inline Void SetHeliMainRotorHealth(Vehicle vehicle, float health) { return _i(0x4056EA1105F5ABD7, vehicle, health); } // 0x4056ea1105f5abd7B463 - inline Void SetHeliTailRotorHealth(Vehicle vehicle, float health) { return _i(0xFE205F38AAA58E5B, vehicle, health); } // 0xfe205f38aaa58e5bB463 - inline BOOL SetHeliTailBoomCanBreakOff(Vehicle vehicle, BOOL toggle) { return _i(0x3EC8BF18AA453FE9, vehicle, toggle); } // 0x3ec8bf18aa453fe90x2916d69bB323 - // NOTE: Debugging functions are not present in the retail version of the game. - inline Void SetVehicleNameDebug(Vehicle vehicle, String name) { return _i(0xBFDF984E2C22B94F, vehicle, name); } // 0xbfdf984e2c22b94f0xa712ff5cB323 - // Sets a vehicle to be strongly resistant to explosions. p0 is the vehicle; set p1 to false to toggle the effect on/off. - inline Void SetVehicleExplodesOnHighExplosionDamage(Vehicle vehicle, BOOL toggle) { return _i(0x71B0892EC081D60A, vehicle, toggle); } // 0x71b0892ec081d60a0x38cc692bB323 - inline Void SetVehicleExplodesOnExplosionDamageAtZeroBodyHealth(Vehicle vehicle, BOOL toggle) { return _i(0xD565F438137F0E10, vehicle, toggle); } // 0xd565f438137f0e10B1103 - inline Void SetAllowVehicleExplodesOnContact(Vehicle vehicle, BOOL toggle) { return _i(0x3441CAD2F2231923, vehicle, toggle); } // 0x3441cad2f22319230xc306a9a3B323 - inline Void SetVehicleDisableTowing(Vehicle vehicle, BOOL toggle) { return _i(0x2B6747FAA9DB9D6B, vehicle, toggle); } // 0x2b6747faa9db9d6b0x95a9accbB323 - inline BOOL GetVehicleHasLandingGear(Vehicle vehicle) { return _i(0xE43701C36CAFF1A4, vehicle); } // 0xe43701c36caff1a4B1180 - // Works for vehicles with a retractable landing gear - // - // Landing gear states: - // - // 0: Deployed - // 1: Closing - // 2: Opening - // 3: Retracted - inline Void ControlLandingGear(Vehicle vehicle, int state) { return _i(0xCFC8BE9A5E1FE575, vehicle, state); } // 0xcfc8be9a5e1fe5750x24f873fbB323 - // Landing gear states: - // - // 0: Deployed - // 1: Closing (Retracting) - // 2: (Landing gear state 2 is never used.) - // 3: Opening (Deploying) - // 4: Retracted - // - // Returns the current state of the vehicles landing gear. - inline int GetLandingGearState(Vehicle vehicle) { return _i(0x9B0F3DCA3DB0F4CD, vehicle); } // 0x9b0f3dca3db0f4cd0xa6f02670B323 - inline BOOL IsAnyVehicleNearPoint(float x, float y, float z, float radius) { return _i(0x61E1DD6125A3EEE6, x, y, z, radius); } // 0x61e1dd6125a3eee60x2867a834B323 - inline Void RequestVehicleHighDetailModel(Vehicle vehicle) { return _i(0xA6E9FDCB2C76785E, vehicle); } // 0xa6e9fdcb2c76785e0x9da21956B323 - inline Void RemoveVehicleHighDetailModel(Vehicle vehicle) { return _i(0x00689CDE5F7C6787, vehicle); } // 0x00689cde5f7c67870x382be070B323 - inline BOOL IsVehicleHighDetail(Vehicle vehicle) { return _i(0x1F25887F3C104278, vehicle); } // 0x1f25887f3c1042780x55d41928B323 - // RequestVehicleAsset(GetHashKey(cargobob3), 3); - // - // vehicle found that have asset's: - // cargobob3 - // submersible - // blazer - inline Void RequestVehicleAsset(Hash vehicleHash, int vehicleAsset) { return _i(0x81A15811460FAB3A, vehicleHash, vehicleAsset); } // 0x81a15811460fab3a0x902b4f06B323 - inline BOOL HasVehicleAssetLoaded(int vehicleAsset) { return _i(0x1BBE0523B8DB9A21, vehicleAsset); } // 0x1bbe0523b8db9a210x8daac3cbB323 - inline Void RemoveVehicleAsset(int vehicleAsset) { return _i(0xACE699C71AB9DEB5, vehicleAsset); } // 0xace699c71ab9deb50x9620e9c6B323 - // Sets how much the crane on the tow truck is raised, where 0.0 is fully lowered and 1.0 is fully raised. - inline Void SetVehicleTowTruckArmPosition(Vehicle vehicle, float position) { return _i(0xFE54B92A344583CA, vehicle, position); } // 0xfe54b92a344583ca0x88236e22B323 - // HookOffset defines where the hook is attached. leave at 0 for default attachment. - inline Void AttachVehicleToTowTruck(Vehicle towTruck, Vehicle vehicle, BOOL rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ) { return _i(0x29A16F8D621C4508, towTruck, vehicle, rear, hookOffsetX, hookOffsetY, hookOffsetZ); } // 0x29a16f8d621c45080x8151571aB323 - // First two parameters swapped. Scripts verify that towTruck is the first parameter, not the second. - inline Void DetachVehicleFromTowTruck(Vehicle towTruck, Vehicle vehicle) { return _i(0xC2DB6B6708350ED8, towTruck, vehicle); } // 0xc2db6b6708350ed80xc666cf33B323 - inline BOOL DetachVehicleFromAnyTowTruck(Vehicle vehicle) { return _i(0xD0E9CE05A1E68CD8, vehicle); } // 0xd0e9ce05a1e68cd80x3bf93651B323 - // Scripts verify that towTruck is the first parameter, not the second. - inline BOOL IsVehicleAttachedToTowTruck(Vehicle towTruck, Vehicle vehicle) { return _i(0x146DF9EC4C4B9FD4, towTruck, vehicle); } // 0x146df9ec4c4b9fd40x9699cfdcB323 - inline Entity GetEntityAttachedToTowTruck(Vehicle towTruck) { return _i(0xEFEA18DCF10F8F75, towTruck); } // 0xefea18dcf10f8f750x11ec7844B323 - inline Entity SetVehicleAutomaticallyAttaches(Vehicle vehicle, BOOL p1, Any p2) { return _i(0x8BA6F76BC53A1493, vehicle, p1, p2); } // 0x8ba6f76bc53a14930x4273a8d3B323 - // Sets the arm position of a bulldozer. Position must be a value between 0.0 and 1.0. Ignored when `p2` is set to false, instead incrementing arm position by 0.1 (or 10%). - inline Void SetVehicleBulldozerArmPosition(Vehicle vehicle, float position, BOOL p2) { return _i(0xF8EBCCC96ADB9FB7, vehicle, position, p2); } // 0xf8ebccc96adb9fb70xed23c8a3B323 - inline Void SetVehicleTankTurretPosition(Vehicle vehicle, float position, BOOL p2) { return _i(0x56B94C6D7127DFBA, vehicle, position, p2); } // 0x56b94c6d7127dfba0xb1a52ef7B323 - inline Void SetVehicleTurretTarget(Vehicle vehicle, BOOL p1, float x, float y, float z, BOOL p5) { return _i(0x0581730AB9380412, vehicle, p1, x, y, z, p5); } // 0x0581730ab9380412B1103 - inline Void SetVehicleTankStationary(Vehicle vehicle, BOOL p1) { return _i(0x737E398138550FFF, vehicle, p1); } // 0x737e398138550fffB944 - inline Void SetVehicleTurretSpeedThisFrame(Vehicle vehicle, float speed) { return _i(0x1093408B4B9D1146, vehicle, speed); } // 0x1093408b4b9d11460xf30c566fB323 - inline Void DisableVehicleTurretMovementThisFrame(Vehicle vehicle) { return _i(0x32CAEDF24A583345, vehicle); } // 0x32caedf24a583345B463 - inline Void SetVehicleFlightNozzlePosition(Vehicle vehicle, float angleRatio) { return _i(0x30D779DE7C4F6DD3, vehicle, angleRatio); } // 0x30d779de7c4f6dd30xa7df64d7B323 - inline Void SetVehicleFlightNozzlePositionImmediate(Vehicle vehicle, float angle) { return _i(0x9AA47FFF660CB932, vehicle, angle); } // 0x9aa47fff660cb9320xdd7936f5B323 - inline float GetVehicleFlightNozzlePosition(Vehicle plane) { return _i(0xDA62027C8BDB326E, plane); } // 0xda62027c8bdb326e0xad40ad55B1180 - // True stops vtols from switching modes. Doesn't stop the sound though. - inline Void SetDisableVerticalFlightModeTransition(Vehicle vehicle, BOOL toggle) { return _i(0xCE2B43770B655F8F, vehicle, toggle); } // 0xce2b43770b655f8fB1290 - inline BOOL GenerateVehicleCreationPosFromPaths(Vector3* outVec, Any p1, Vector3* outVec1, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8) { return _i(0xA4822F1CF23F4810, outVec, p1, outVec1, p3, p4, p5, p6, p7, p8); } // 0xa4822f1cf23f48100x34e02fcdB323 - // On accelerating, spins the driven wheels with the others braked, so you don't go anywhere. - inline Void SetVehicleBurnout(Vehicle vehicle, BOOL toggle) { return _i(0xFB8794444A7D60FB, vehicle, toggle); } // 0xfb8794444a7d60fb0x9b6ef0eaB323 - // Returns whether the specified vehicle is currently in a burnout. - // - // - // vb.net - // Public Function isVehicleInBurnout(vh As Vehicle) As Boolean - // Return Native.Function.Call(Of Boolean)(Hash.IsVehicleInBurnout, vh) - // End Function - inline BOOL IsVehicleInBurnout(Vehicle vehicle) { return _i(0x1297A88E081430EB, vehicle); } // 0x1297a88e081430eb0x6632bc12B323 - // Reduces grip significantly so it's hard to go anywhere. - inline Void SetVehicleReduceGrip(Vehicle vehicle, BOOL toggle) { return _i(0x222FF6A823D122E2, vehicle, toggle); } // 0x222ff6a823d122e20x90d3a0d9B323 - // val is 0-3 - // Often used in conjunction with: SetVehicleReduceGrip - inline Void SetVehicleReduceGripLevel(Vehicle vehicle, int val) { return _i(0x6DEE944E1EE90CFB, vehicle, val); } // 0x6dee944e1ee90cfbB1604 - // Sets the turn signal enabled for a vehicle. - // Set turnSignal to 1 for left light, 0 for right light. - inline Void SetVehicleIndicatorLights(Vehicle vehicle, int turnSignal, BOOL toggle) { return _i(0xB5D45264751B7DF0, vehicle, turnSignal, toggle); } // 0xb5d45264751b7df00xa6073b5dB323 - inline Void SetVehicleBrakeLights(Vehicle vehicle, BOOL toggle) { return _i(0x92B35082E0B42F66, vehicle, toggle); } // 0x92b35082e0b42f660x6d9ba11eB323 - inline Void SetVehicleTailLights(Vehicle vehicle, BOOL toggle) { return _i(0x5815BD2763178DF4, vehicle, toggle); } // 0x5815bd2763178df4B2802 - inline Void SetVehicleHandbrake(Vehicle vehicle, BOOL toggle) { return _i(0x684785568EF26A22, vehicle, toggle); } // 0x684785568ef26a220xba729a25B323 - inline Void SetVehicleBrake(Vehicle vehicle, BOOL toggle) { return _i(0xE4E2FD323574965C, vehicle, toggle); } // 0xe4e2fd323574965c0x5a36bc37B757 - inline Void InstantlyFillVehiclePopulation() { return _i(0x48ADC8A773564670); } // 0x48adc8a7735646700x37bc6acbB323 - inline BOOL HasInstantFillVehiclePopulationFinished() { return _i(0x91D6DD290888CBAB); } // 0x91d6dd290888cbab0x71d898efB323 - inline Void NetworkEnableEmptyCrowdingVehiclesRemoval(BOOL toggle) { return _i(0x51DB102F4A3BA5E0, toggle); } // 0x51db102f4a3ba5e00x0b0523b0B323 - // Default:1000||This sets a value which is used when NetworkEnableEmptyCrowdingVehiclesRemoval(true) is called each frame. - inline Void NetworkCapEmptyCrowdingVehiclesRemoval(int p0) { return _i(0xA4A9A4C40E615885, p0); } // 0xa4a9a4c40e615885B1604 - // Gets the trailer of a vehicle and puts it into the trailer parameter. - inline BOOL GetVehicleTrailerVehicle(Vehicle vehicle, Vehicle* trailer) { return _i(0x1CDD6BADC297830D, vehicle, trailer); } // 0x1cdd6badc297830d0xae84d758B323 - inline Vehicle GetVehicleTrailerParentVehicle(Vehicle trailer) { return _i(0x80D9D32636369C92, trailer); } // 0x80d9d32636369c92B2802 - // vehicle must be a plane - inline Void SetVehicleUsesLargeRearRamp(Vehicle vehicle, BOOL toggle) { return _i(0xCAC66558B944DA67, vehicle, toggle); } // 0xcac66558b944da670x0b200ce2B323 - inline Void SetVehicleRudderBroken(Vehicle vehicle, BOOL toggle) { return _i(0x09606148B6C71DEF, vehicle, toggle); } // 0x09606148b6c71def0x3fac3cd4B323 - inline Void SetConvertibleRoofLatchState(Vehicle vehicle, BOOL state) { return _i(0x1A78AD3D8240536F, vehicle, state); } // 0x1a78ad3d8240536f0x0858678cB323 - inline float GetVehicleEstimatedMaxSpeed(Vehicle vehicle) { return _i(0x53AF99BAA671CA47, vehicle); } // 0x53af99baa671ca470x7d1a0616B323 - inline float GetVehicleMaxBraking(Vehicle vehicle) { return _i(0xAD7E85FC227197C4, vehicle); } // 0xad7e85fc227197c40x03b926f6B323 - inline float GetVehicleMaxTraction(Vehicle vehicle) { return _i(0xA132FB5370554DB0, vehicle); } // 0xa132fb5370554db00x7e5a1587B323 - // inline - max acceleration - inline float GetVehicleAcceleration(Vehicle vehicle) { return _i(0x5DD35C8D074E57AE, vehicle); } // 0x5dd35c8d074e57ae0x00478321B323 - // Returns max speed (without mods) of the specified vehicle model in m/s. - // - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline float GetVehicleModelEstimatedMaxSpeed(Hash modelHash) { return _i(0xF417C2502FFFED43, modelHash); } // 0xf417c2502fffed430x8f291c4aB323 - // Returns max braking of the specified vehicle model. - // - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline float GetVehicleModelMaxBraking(Hash modelHash) { return _i(0xDC53FD41B4ED944C, modelHash); } // 0xdc53fd41b4ed944c0x7ef02883B323 - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline float GetVehicleModelMaxBrakingMaxMods(Hash modelHash) { return _i(0xBFBA3BA79CFF7EBF, modelHash); } // 0xbfba3ba79cff7ebf0xf3a7293fB323 - // Returns max traction of the specified vehicle model. - // - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline float GetVehicleModelMaxTraction(Hash modelHash) { return _i(0x539DE94D44FDFD0D, modelHash); } // 0x539de94d44fdfd0d0x7f985597B323 - // Returns the acceleration of the specified model. - // - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline float GetVehicleModelAcceleration(Hash modelHash) { return _i(0x8C044C5C84505B6A, modelHash); } // 0x8c044c5c84505b6a0x29cb3537B323 - // 9.8 * thrust if air vehicle, else 0.38 + drive force? - // - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline float GetVehicleModelAccelerationMaxMods(Hash modelHash) { return _i(0x53409B5163D5B846, modelHash); } // 0x53409b5163d5b8460x37fba7bcB323 - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline float GetFlyingVehicleModelAgility(Hash modelHash) { return _i(0xC6AD107DDC9054CC, modelHash); } // 0xc6ad107ddc9054cc0x95bb67ebB323 - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline float GetBoatVehicleModelAgility(Hash modelHash) { return _i(0x5AA3F878A178C4FC, modelHash); } // 0x5aa3f878a178c4fc0x87c5d271B323 - inline float GetVehicleClassEstimatedMaxSpeed(int vehicleClass) { return _i(0x00C09F246ABEDD82, vehicleClass); } // 0x00c09f246abedd820xce67162cB323 - inline float GetVehicleClassMaxTraction(int vehicleClass) { return _i(0xDBC86D85C5059461, vehicleClass); } // 0xdbc86d85c50594610x5b4fdc16B323 - inline float GetVehicleClassMaxAgility(int vehicleClass) { return _i(0x4F930AD022D6DE3B, vehicleClass); } // 0x4f930ad022d6de3b0x45f2bd83B323 - inline float GetVehicleClassMaxAcceleration(int vehicleClass) { return _i(0x2F83E7E45D9EA7AE, vehicleClass); } // 0x2f83e7e45d9ea7ae0x3e220a9bB323 - inline float GetVehicleClassMaxBraking(int vehicleClass) { return _i(0x4BF54C16EC8FEC03, vehicleClass); } // 0x4bf54c16ec8fec030xd08cc1a5B323 - inline int AddRoadNodeSpeedZone(float x, float y, float z, float radius, float speed, BOOL p5) { return _i(0x2CE544C68FB812A0, x, y, z, radius, speed, p5); } // 0x2ce544c68fb812a00xd6685803B323 - inline BOOL RemoveRoadNodeSpeedZone(int speedzone) { return _i(0x1033371FC8E842A7, speedzone); } // 0x1033371fc8e842a70x0c0332a6B323 - inline Void OpenBombBayDoors(Vehicle vehicle) { return _i(0x87E7F24270732CB1, vehicle); } // 0x87e7f24270732cb10x6574041dB323 - inline Void CloseBombBayDoors(Vehicle vehicle) { return _i(0x3556041742A0DC74, vehicle); } // 0x3556041742a0dc740xf8ec5751B323 - // Returns true when the bomb bay doors of this plane are open. False if they're closed. - inline BOOL GetAreBombBayDoorsOpen(Vehicle aircraft) { return _i(0xD0917A423314BBA8, aircraft); } // 0xd0917a423314bba8B1180 - // Possibly: Returns whether the searchlight (found on police vehicles) is toggled on. - // - // @Author Nac - inline BOOL IsVehicleSearchlightOn(Vehicle vehicle) { return _i(0xC0F97FCE55094987, vehicle); } // 0xc0f97fce550949870xadaf3513B323 - // Only works during nighttime. - inline Void SetVehicleSearchlight(Vehicle heli, BOOL toggle, BOOL canBeUsedByAI) { return _i(0x14E85C5EE7A4D542, heli, toggle, canBeUsedByAI); } // 0x14e85c5ee7a4d5420xe2c0dd8aB323 - inline BOOL DoesVehicleHaveSearchlight(Vehicle vehicle) { return _i(0x99015ED7DBEA5113, vehicle); } // 0x99015ed7dbea5113B2189 - // Check if a vehicle seat is accessible. If you park your vehicle near a wall and the ped cannot enter/exit this side, the return value toggles from true (not blocked) to false (blocked). - // - // seatIndex = -1 being the driver seat. - // Use GetVehicleMaxNumberOfPassengers(vehicle) - 1 for last seat index. - // side = only relevant for bikes/motorcycles to check if the left (false)/right (true) side is blocked. - // onEnter = check if you can enter (true) or exit (false) a vehicle. - inline BOOL IsEntryPointForSeatClear(Ped ped, Vehicle vehicle, int seatIndex, BOOL side, BOOL onEnter) { return _i(0x639431E895B9AA57, ped, vehicle, seatIndex, side, onEnter); } // 0x639431e895b9aa570xab0e79ebB323 - // doorId: see SetVehicleDoorShut - inline Vector3 GetEntryPointPosition(Vehicle vehicle, int doorId) { return _i(0xC0572928C0ABFDA3, vehicle, doorId); } // 0xc0572928c0abfda3B944 - inline BOOL CanShuffleSeat(Vehicle vehicle, int seatIndex) { return _i(0x30785D90C956BF35, vehicle, seatIndex); } // 0x30785d90c956bf350xb3eb01edB323 - inline int GetNumModKits(Vehicle vehicle) { return _i(0x33F2E3FE70EAAE1D, vehicle); } // 0x33f2e3fe70eaae1d0xe4903aa0B323 - // Set modKit to 0 if you plan to call SetVehicleMod. That's what the game does. Most body modifications through SetVehicleMod will not take effect until this is set to 0. - // - // Full list of vehicle mod kits and mods by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleModKits.json - inline Void SetVehicleModKit(Vehicle vehicle, int modKit) { return _i(0x1F2AA07F00B3217A, vehicle, modKit); } // 0x1f2aa07f00b3217a0xb8132158B323 - inline int GetVehicleModKit(Vehicle vehicle) { return _i(0x6325D1A044AE510D, vehicle); } // 0x6325d1a044ae510d0x9fe60927B323 - inline int GetVehicleModKitType(Vehicle vehicle) { return _i(0xFC058F5121E54C32, vehicle); } // 0xfc058f5121e54c320xe5f76765B323 - // Returns an int - // - // Wheel Types: - // 0: Sport - // 1: Muscle - // 2: Lowrider - // 3: SUV - // 4: Offroad - // 5: Tuner - // 6: Bike Wheels - // 7: High End - // 8: Benny's Originals - // 9: Benny's Bespoke - // 10: Racing - // 11: Street - // 12: Track - // - // Tested in Los Santos Customs - inline int GetVehicleWheelType(Vehicle vehicle) { return _i(0xB3ED1BFB4BE636DC, vehicle); } // 0xb3ed1bfb4be636dc0xda58d7aeB323 - // 0: Sport - // 1: Muscle - // 2: Lowrider - // 3: SUV - // 4: Offroad - // 5: Tuner - // 6: Bike Wheels - // 7: High End - // 8: Benny's Originals - // 9: Benny's Bespoke - // 10: Racing - // 11: Street - // 12: Track - inline Void SetVehicleWheelType(Vehicle vehicle, int WheelType) { return _i(0x487EB21CC7295BA1, vehicle, WheelType); } // 0x487eb21cc7295ba10x64bdaaadB323 - // paintType: - // 0: Normal - // 1: Metallic - // 2: Pearl - // 3: Matte - // 4: Metal - // 5: Chrome - // 6: Chameleon - inline int GetNumModColors(int paintType, BOOL p1) { return _i(0xA551BE18C11A476D, paintType, p1); } // 0xa551be18c11a476d0x73722cd9B323 - // paintType: - // 0: Normal - // 1: Metallic - // 2: Pearl - // 3: Matte - // 4: Metal - // 5: Chrome - // 6: Chameleon - // - // color: number of the color. - // - // p3 seems to always be 0. - // - // Full list of vehicle colors and vehicle plates by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json - inline Void SetVehicleModColor1(Vehicle vehicle, int paintType, int color, int pearlescentColor) { return _i(0x43FEB945EE7F85B8, vehicle, paintType, color, pearlescentColor); } // 0x43feb945ee7f85b80xcbe9a54dB323 - // Changes the secondary paint type and color - // paintType: - // 0: Normal - // 1: Metallic - // 2: Pearl - // 3: Matte - // 4: Metal - // 5: Chrome - // 6: Chameleon - // - // color: number of the color - // - // Full list of vehicle colors and vehicle plates by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json - inline Void SetVehicleModColor2(Vehicle vehicle, int paintType, int color) { return _i(0x816562BADFDEC83E, vehicle, paintType, color); } // 0x816562badfdec83e0xc32613c2B323 - inline Void GetVehicleModColor1(Vehicle vehicle, int* paintType, int* color, int* pearlescentColor) { return _i(0xE8D65CA700C9A693, vehicle, paintType, color, pearlescentColor); } // 0xe8d65ca700c9a6930xe625510aB323 - inline Void GetVehicleModColor2(Vehicle vehicle, int* paintType, int* color) { return _i(0x81592BE4E3878728, vehicle, paintType, color); } // 0x81592be4e38787280x9b76bb8eB323 - // Returns a string which is the codename of the vehicle's currently selected primary color - // - // p1 is always 0 - inline String GET_VEHICLE_MOD_COLOR_1_NAME(Vehicle vehicle, BOOL p1) { return _i(0xB45085B721EFD38C, vehicle, p1); } // 0xB45085B721EFD38C 0x9A0840FD b323 - // Returns a string which is the codename of the vehicle's currently selected secondary color - inline String GET_VEHICLE_MOD_COLOR_2_NAME(Vehicle vehicle) { return _i(0x4967A516ED23A5A1, vehicle); } // 0x4967A516ED23A5A1 0x9BDC0B49 b323 - inline BOOL HaveVehicleModsStreamedIn(Vehicle vehicle) { return _i(0x9A83F5F9963775EF, vehicle); } // 0x9a83f5f9963775ef0x112d637aB323 - // Returns true for any mod part listed in GEN9_EXCLUSIVE_ASSETS_VEHICLES_FILE. - inline BOOL IsVehicleModGen9Exclusive(Vehicle vehicle, int modType, int modIndex) { return _i(0x00834EAC4A96E010, vehicle, modType, modIndex); } // 0x00834eac4a96e010B2699 - // In b944, there are 50 (0 - 49) mod types. - // - // Sets the vehicle mod. - // The vehicle must have a mod kit first. - // - // Any out of range ModIndex is stock. - // - // #Mod Type - // Spoilers - 0 - // Front Bumper - 1 - // Rear Bumper - 2 - // Side Skirt - 3 - // Exhaust - 4 - // Frame - 5 - // Grille - 6 - // Hood - 7 - // Fender - 8 - // Right Fender - 9 - // Roof - 10 - // Engine - 11 - // Brakes - 12 - // Transmission - 13 - // Horns - 14 (modIndex from 0 to 51) - // Suspension - 15 - // Armor - 16 - // Front Wheels - 23 - // Back Wheels - 24 //only for motocycles - // Plate holders - 25 - // Trim Design - 27 - // Ornaments - 28 - // Dial Design - 30 - // Steering Wheel - 33 - // Shifter Leavers - 34 - // Plaques - 35 - // Hydraulics - 38 - // Livery - 48 - // - // ENUMS: https://pastebin.com/QzEAn02v - inline Void SetVehicleMod(Vehicle vehicle, int modType, int modIndex, BOOL customTires) { return _i(0x6AF0636DDEDCB6DD, vehicle, modType, modIndex, customTires); } // 0x6af0636ddedcb6dd0xb52e5ed5B323 - // In b944, there are 50 (0 - 49) mod types. See SetVehicleMod for the list. - // - // Returns -1 if the vehicle mod is stock - inline int GetVehicleMod(Vehicle vehicle, int modType) { return _i(0x772960298DA26FDB, vehicle, modType); } // 0x772960298da26fdb0xdc520069B323 - // Only used for wheels(ModType = 23/24) Returns true if the wheels are custom wheels - inline int GetVehicleModVariation(Vehicle vehicle, int modType) { return _i(0xB3924ECD70E095DC, vehicle, modType); } // 0xb3924ecd70e095dc0xc1b92003B323 - // Returns how many possible mods a vehicle has for a given mod type - inline int GetNumVehicleMods(Vehicle vehicle, int modType) { return _i(0xE38E9162A2500646, vehicle, modType); } // 0xe38e9162a25006460x8a814ff9B323 - inline Void RemoveVehicleMod(Vehicle vehicle, int modType) { return _i(0x92D619E420858204, vehicle, modType); } // 0x92d619e4208582040x9cc80a43B323 - // Toggles: - // UNK17 - 17 - // Turbo - 18 - // UNK19 - 19 - // Tire Smoke - 20 - // UNK21 - 21 - // Xenon Headlights - 22 - inline Void ToggleVehicleMod(Vehicle vehicle, int modType, BOOL toggle) { return _i(0x2A1F4F37F95BAD08, vehicle, modType, toggle); } // 0x2a1f4f37f95bad080xd095f811B323 - inline BOOL IsToggleModOn(Vehicle vehicle, int modType) { return _i(0x84B233A8C8FC8AE7, vehicle, modType); } // 0x84b233a8c8fc8ae70xf0e1689fB323 - // Returns the text label of a mod type for a given vehicle - // - // Use GET_FILENAME_FOR_AUDIO_CONVERSATION to get the part name in the game's language - inline String GetModTextLabel(Vehicle vehicle, int modType, int modValue) { return _i(0x8935624F8C5592CC, vehicle, modType, modValue); } // 0x8935624F8C5592CC 0x0BA39CA7 b323 - // Returns the name for the type of vehicle mod(Armour, engine etc) - // - inline String GET_MOD_SLOT_NAME(Vehicle vehicle, int modType) { return _i(0x51F0FEB9F6AE98C0, vehicle, modType); } // 0x51F0FEB9F6AE98C0 0x5E113483 b323 - // Returns the text label of the vehicle's liveryIndex, as specified by the liveryNames section of the vehicle's modkit data in the carcols file. - // - // example - // - // int count = VEHICLE::GetVehicleLiveryCount(veh); - // for (int i = 0; i < count; i++) - // { - // String LiveryName = VEHICLE::GET_LIVERY_NAME(veh, i); - // } - // - // - // this example will work fine to fetch all names - // for example for Sanchez we get - // - // SANC_LV1 - // SANC_LV2 - // SANC_LV3 - // SANC_LV4 - // SANC_LV5 - // - // - // Use GET_FILENAME_FOR_AUDIO_CONVERSATION, to get the localized livery name. - // - // Full list of vehicle mod kits and mods by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleModKits.json - inline String GET_LIVERY_NAME(Vehicle vehicle, int liveryIndex) { return _i(0xB4C7A93837C91A1F, vehicle, liveryIndex); } // 0xB4C7A93837C91A1F 0xED80B5BE b323 - inline int GetVehicleModModifierValue(Vehicle vehicle, int modType, int modIndex) { return _i(0x90A38E9838E0A8C1, vehicle, modType, modIndex); } // 0x90a38e9838e0a8c10x73ae5505B323 - // Can be used for IsDlcVehicleMod and GetDlcVehicleModLockHash - inline Hash GetVehicleModIdentifierHash(Vehicle vehicle, int modType, int modIndex) { return _i(0x4593CF82AA179706, vehicle, modType, modIndex); } // 0x4593cf82aa1797060x94850968B323 - inline Void PreloadVehicleMod(Vehicle vehicle, int modType, int modIndex) { return _i(0x758F49C24925568A, vehicle, modType, modIndex); } // 0x758f49c24925568a0x6ea5f4a8B323 - inline BOOL HasPreloadModsFinished(Vehicle vehicle) { return _i(0x06F43E5175EB6D96, vehicle); } // 0x06f43e5175eb6d960xa8a0d246B323 - inline Void ReleasePreloadMods(Vehicle vehicle) { return _i(0x445D79F995508307, vehicle); } // 0x445d79f9955083070xd442521fB323 - // Sets the tire smoke's color of this vehicle. - // - // vehicle: The vehicle that is the target of this method. - // r: The red level in the RGB color code. - // g: The green level in the RGB color code. - // b: The blue level in the RGB color code. - // - // Note: setting r,g,b to 0 will give the car the "Patriot" tire smoke. - inline Void SetVehicleTyreSmokeColor(Vehicle vehicle, int r, int g, int b) { return _i(0xB5BA80F839791C0F, vehicle, r, g, b); } // 0xb5ba80f839791c0f0x3edec0dbB323 - inline Void GetVehicleTyreSmokeColor(Vehicle vehicle, int* r, int* g, int* b) { return _i(0xB635392A4938B3C3, vehicle, r, g, b); } // 0xb635392a4938b3c30x75280015B323 - // enum WindowTints - // { - // WINDOWTINT_NONE, - // WINDOWTINT_PURE_BLACK, - // WINDOWTINT_DARKSMOKE, - // WINDOWTINT_LIGHTSMOKE, - // WINDOWTINT_STOCK, - // WINDOWTINT_LIMO, - // WINDOWTINT_GREEN - // }; - // Full list of all vehicle window tints by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json - inline Void SetVehicleWindowTint(Vehicle vehicle, int tint) { return _i(0x57C51E6BAD752696, vehicle, tint); } // 0x57c51e6bad7526960x497c8787B323 - inline int GetVehicleWindowTint(Vehicle vehicle) { return _i(0x0EE21293DAD47C95, vehicle); } // 0x0ee21293dad47c950x13d53892B323 - inline int GetNumVehicleWindowTints() { return _i(0x9D1224004B3A6707); } // 0x9d1224004b3a67070x625c7b66B323 - // What's this for? Primary and Secondary RGB have their own natives and this one doesn't seem specific. - inline Void GetVehicleColor(Vehicle vehicle, int* r, int* g, int* b) { return _i(0xF3CC740D36221548, vehicle, r, g, b); } // 0xf3cc740d362215480x03bc8f1bB323 - // Some kind of flags. - inline int GetVehicleColoursWhichCanBeSet(Vehicle vehicle) { return _i(0xEEBFC7A7EFDC35B4, vehicle); } // 0xeebfc7a7efdc35b40x749deea2B323 - // iVar3 = get_vehicle_cause_of_destruction(uLocal_248[iVar2]); - // if (iVar3 == joaat("weapon_stickybomb")) - // { - // func_171(726); - // iLocal_260 = 1; - // } - inline Hash GetVehicleCauseOfDestruction(Vehicle vehicle) { return _i(0xE495D1EF4C91FD20, vehicle); } // 0xe495d1ef4c91fd200x7f8c20ddB323 - // Used for helis. - inline Void OverridePlaneDamageThrehsold(Vehicle vehicle, float health) { return _i(0x5EE5632F47AE9695, vehicle, health); } // 0x5ee5632f47ae9695B463 - // From the driver's perspective, is the left headlight broken. - inline BOOL GetIsLeftVehicleHeadlightDamaged(Vehicle vehicle) { return _i(0x5EF77C9ADD3B11A3, vehicle); } // 0x5ef77c9add3b11a30xa0777943B323 - // From the driver's perspective, is the right headlight broken. - inline BOOL GetIsRightVehicleHeadlightDamaged(Vehicle vehicle) { return _i(0xA7ECB73355EB2F20, vehicle); } // 0xa7ecb73355eb2f200xf178390bB323 - // Returns true when both headlights are broken. This does not include extralights. - inline BOOL GetBothVehicleHeadlightsDamaged(Vehicle vehicle) { return _i(0xEC69ADF931AAE0C3, vehicle); } // 0xec69adf931aae0c3B505 - inline Void ModifyVehicleTopSpeed(Vehicle vehicle, float value) { return _i(0x93A3996368C94158, vehicle, value); } // 0x93a3996368c941580xe943b09cB323 - // To reset the max speed, set the `speed` value to `0.0` or lower. - inline Void SetVehicleMaxSpeed(Vehicle vehicle, float speed) { return _i(0xBAA045B4E42F3C06, vehicle, speed); } // 0xbaa045b4e42f3c06B1103 - // Has something to do with trains. Always precedes SetMissionTrainAsNoLongerNeeded. - // May be true that it can be used with trains not sure, but not specifically for trains. Go find Xbox360 decompiled scripts and search for 'func_1333' in freemode.c it isn't used just for trains. Thanks for the info tho. - inline Void SetVehicleStaysFrozenWhenCleanedUp(Vehicle vehicle, BOOL toggle) { return _i(0x1CF38D529D7441D9, vehicle, toggle); } // 0x1cf38d529d7441d90xdf594d8dB323 - inline Void SetVehicleActAsIfHighSpeedForFragSmashing(Vehicle vehicle, BOOL p1) { return _i(0x1F9FB66F3A3842D2, vehicle, p1); } // 0x1f9fb66f3a3842d20x4d840fc4B323 - // Sets some bit and float of vehicle. float is >= 0 - inline Void SetPedsCanFallOffThisVehicleFromLargeFallDamage(Vehicle vehicle, BOOL toggle, float p2) { return _i(0x59C3757B3B7408E8, vehicle, toggle, p2); } // 0x59c3757b3b7408e8B1493 - inline int AddVehicleCombatAngledAVoidanceArea(float p0, float p1, float p2, float p3, float p4, float p5, float p6) { return _i(0x54B0F614960F4A5F, p0, p1, p2, p3, p4, p5, p6); } // 0x54b0f614960f4a5f0x5ab26c2bB323 - inline Void RemoveVehicleCombatAVoidanceArea(int p0) { return _i(0xE30524E1871F481D, p0); } // 0xe30524e1871f481d0xef05f807B323 - inline BOOL IsAnyPedRappellingFromHeli(Vehicle vehicle) { return _i(0x291E373D483E7EE7, vehicle); } // 0x291e373d483e7ee70xd656e7e5B323 - // <1.0 - Decreased torque - // =1.0 - Default torque - // >1.0 - Increased torque - // - // Negative values will cause the vehicle to go backwards instead of forwards while accelerating. - // - // value - is between 0.2 and 1.8 in the decompiled scripts. - // - // This needs to be called every frame to take effect. - inline Void SetVehicleCheatPowerIncrease(Vehicle vehicle, float value) { return _i(0xB59E4BD37AE292DB, vehicle, value); } // 0xb59e4bd37ae292db0x642da5aaB323 - inline Void SetVehicleInfluencesWantedLevel(Any p0, BOOL p1) { return _i(0x0AD9E8F87FF7C16F, p0, p1); } // 0x0ad9e8f87ff7c16f0x04f5546cB323 - // Sets the wanted state of this vehicle. - inline Void SetVehicleIsWanted(Vehicle vehicle, BOOL state) { return _i(0xF7EC25A3EBEEC726, vehicle, state); } // 0xf7ec25a3ebeec7260xdaa388e8B323 - // Sets the boat boom position for the `TR3` trailer. - // Ratio value is between `0.0` and `1.0`, where `0.0` is 90 degrees to the left of the boat, and `1.0` is just slightly to the right/back of the boat. - // To get the current boom position ratio, use GetBoatBoomPositionRatio - inline Void SwingBoatBoomToRatio(Vehicle vehicle, float ratio) { return _i(0xF488C566413B4232, vehicle, ratio); } // 0xf488c566413b42320xa25ccb8cB323 - // Same call as AllowBoatBoomToAnimate - inline Void SwingBoatBoomFreely(Vehicle vehicle, BOOL toggle) { return _i(0xC1F981A6F74F0C23, vehicle, toggle); } // 0xc1f981a6f74f0c230x00966934B323 - inline Void AllowBoatBoomToAnimate(Vehicle vehicle, BOOL toggle) { return _i(0x0F3B4D4E43177236, vehicle, toggle); } // 0x0f3b4d4e431772360x113df5fdB323 - inline float GetBoatBoomPositionRatio(Vehicle vehicle) { return _i(0x6636C535F6CC2725, vehicle); } // 0x6636c535f6cc27250x7c8d6464B323 - inline Void DisablePlaneAileron(Vehicle vehicle, BOOL p1, BOOL p2) { return _i(0x23428FC53C60919C, vehicle, p1, p2); } // 0x23428fc53c60919c0x7e84c45cB323 - // Returns true when in a vehicle, false whilst entering/exiting. - inline BOOL GetIsVehicleEngineRunning(Vehicle vehicle) { return _i(0xAE31E7DF9B5B132E, vehicle); } // 0xae31e7df9b5b132e0x7dc6d022B323 - inline Void SetVehicleUseAlternateHandling(Vehicle vehicle, BOOL toggle) { return _i(0x1D97D1E3A70A649F, vehicle, toggle); } // 0x1d97d1e3a70a649f0xa03e42dfB323 - // Only works on bikes, both X and Y work in the -1 - 1 range. - // - // X forces the bike to turn left or right (-1, 1) - // Y forces the bike to lean to the left or to the right (-1, 1) - // - // Example with X -1/Y 1 - // http://i.imgur.com/TgIuAPJ.jpg - inline Void SetBikeOnStand(Vehicle vehicle, float x, float y) { return _i(0x9CFA4896C3A53CBB, vehicle, x, y); } // 0x9cfa4896c3a53cbb0x15d40761B323 - inline Void SetVehicleNotStealableAmbiently(Vehicle vehicle, BOOL p1) { return _i(0xAB04325045427AAE, vehicle, p1); } // 0xab04325045427aae0x1984f88dB323 - inline Void LockDoorsWhenNoLongerNeeded(Vehicle vehicle) { return _i(0xCFD778E7904C255E, vehicle); } // 0xcfd778e7904c255e0x3fbe904fB323 - inline Void SetLastDrivenVehicle(Vehicle vehicle) { return _i(0xACFB2463CC22BED2, vehicle); } // 0xacfb2463cc22bed20xd1b71a25B323 - inline Vehicle GetLastDrivenVehicle() { return _i(0xB2D06FAEDE65B577); } // 0xb2d06faede65b5770xfeb0c0c8B323 - inline Void ClearLastDrivenVehicle() { return _i(0xE01903C47C7AC89E); } // 0xe01903c47c7ac89e0x07186ad9B323 - inline Void SetVehicleHasBeenDrivenFlag(Vehicle vehicle, BOOL toggle) { return _i(0x02398B627547189C, vehicle, toggle); } // 0x02398b627547189c0x08cd58f9B323 - inline Void SetTaskVehicleGotoPlaneMinHeightAboveTerrain(Vehicle plane, int height) { return _i(0xB893215D8D4C015B, plane, height); } // 0xb893215d8d4c015b0x8c4b63e2B323 - inline Void SetVehicleLodMultiplier(Vehicle vehicle, float multiplier) { return _i(0x93AE6A61BE015BF1, vehicle, multiplier); } // 0x93ae6a61be015bf10x569e5ae3B323 - inline Void SetVehicleCanSaveInGarage(Vehicle vehicle, BOOL toggle) { return _i(0x428BACCDF5E26EAD, vehicle, toggle); } // 0x428baccdf5e26ead0x1604c2f5B323 - // Also includes some "turnOffBones" when vehicle mods are installed. - inline int GetVehicleNumOfBrokenOffParts(Vehicle vehicle) { return _i(0x42A4BEB35D372407, vehicle); } // 0x42a4beb35d3724070x8cdb0c09B323 - inline int GetVehicleNumOfBrokenLoosenParts(Vehicle vehicle) { return _i(0x2C8CBFE1EA5FC631, vehicle); } // 0x2c8cbfe1ea5fc6310xabc99e21B323 - inline Void SetForceVehicleEngineDamageByBullet(Any p0, BOOL p1) { return _i(0x4D9D109F63FEE1D4, p0, p1); } // 0x4d9d109f63fee1d40x900c878cB323 - // Allows creation of CEventShockingPlaneFlyby, CEventShockingHelicopterOverhead, and other(?) Shocking events - inline Void SetVehicleGeneratesEngineShockingEvents(Vehicle vehicle, BOOL toggle) { return _i(0x279D50DE5652D935, vehicle, toggle); } // 0x279d50de5652d9350xb3200f72B323 - // Copies sourceVehicle's damage (broken bumpers, broken lights, etc.) to targetVehicle. - inline Void CopyVehicleDamages(Vehicle sourceVehicle, Vehicle targetVehicle) { return _i(0xE44A982368A4AF23, sourceVehicle, targetVehicle); } // 0xe44a982368a4af230xbae491c7B323 - inline Void DisableVehicleExplosionBreakOffParts() { return _i(0xF25E02CB9C5818F8); } // 0xf25e02cb9c5818f80xf0e59bc1B323 - inline Void SetLightsCutoffDistanceTweak(float distance) { return _i(0xBC3CCA5844452B06, distance); } // 0xbc3cca5844452b060x929801c6B323 - // Commands the driver of an armed vehicle (p0) to shoot its weapon at a target (p1). p3, p4 and p5 are the coordinates of the target. Example: - // - // WEAPON::SetCurrentPedVehicleWeapon(pilot,MISC::GetHashKey("VEHICLE_WEAPON_PLANE_ROCKET")); VEHICLE::SetVehicleShootAtTarget(pilot, target, targPos.x, targPos.y, targPos.z); - inline Void SetVehicleShootAtTarget(Ped driver, Entity entity, float xTarget, float yTarget, float zTarget) { return _i(0x74CD9A9327A282EA, driver, entity, xTarget, yTarget, zTarget); } // 0x74cd9a9327a282ea0x2343ffdfB323 - inline BOOL GetVehicleLockOnTarget(Vehicle vehicle, Entity* entity) { return _i(0x8F5EBAB1F260CFCE, vehicle, entity); } // 0x8f5ebab1f260cfce0x4a557117B323 - inline Void SetForceHdVehicle(Vehicle vehicle, BOOL toggle) { return _i(0x97CE68CB032583F0, vehicle, toggle); } // 0x97ce68cb032583f00xe0fc6a32B323 - inline Void SetVehicleCustomPathNodeStreamingRadius(Vehicle vehicle, float p1) { return _i(0x182F266C2D9E2BEB, vehicle, p1); } // 0x182f266c2d9e2beb0x7d0de7eaB323 - inline int GetVehiclePlateType(Vehicle vehicle) { return _i(0x9CCC9525BF2408E0, vehicle); } // 0x9ccc9525bf2408e00x65ca9286B323 - // in script hook .net - // - // Vehicle v = ...; - // Function.Call(Hash.TrackVehicleVisibility, v.Handle); - inline Void TrackVehicleVisibility(Vehicle vehicle) { return _i(0x64473AEFDCF47DCA, vehicle); } // 0x64473aefdcf47dca0x78122dc1B323 - // must be called after TrackVehicleVisibility - // - // it's not instant so probabilly must pass an 'update' to see correct result. - inline BOOL IsVehicleVisible(Vehicle vehicle) { return _i(0xAA0A52D24FB98293, vehicle); } // 0xaa0a52d24fb982930x7e0d6056B323 - inline Void SetVehicleGravity(Vehicle vehicle, BOOL toggle) { return _i(0x89F149B6131E57DA, vehicle, toggle); } // 0x89f149b6131e57da0x07b2a6dcB323 - // Enable/Disables global slipstream physics - inline Void SetEnableVehicleSlipstreaming(BOOL toggle) { return _i(0xE6C0C80B8C867537, toggle); } // 0xe6c0c80b8c8675370xd2b8acbdB323 - inline Void SetVehicleSlipstreamingShouldTimeOut(BOOL toggle) { return _i(0xF051D9BFB6BA39C0, toggle); } // 0xf051d9bfb6ba39c0B877 - // Returns a float value between 0.0 and 3.0 related to its slipstream draft (boost/speedup). - inline float GetVehicleCurrentTimeInSlipStream(Vehicle vehicle) { return _i(0x36492C2F0D134C56, vehicle); } // 0x36492c2f0d134c560xa4a75fcfB323 - // Returns true if the vehicle is being slipstreamed by another vehicle - inline BOOL IsVehicleProducingSlipStream(Vehicle vehicle) { return _i(0x48C633E94A8142A7, vehicle); } // 0x48c633e94a8142a7B877 - inline Void SetVehicleInactiveDuringPlayback(Vehicle vehicle, BOOL toggle) { return _i(0x06582AFF74894C75, vehicle, toggle); } // 0x06582aff74894c750x50f89338B323 - inline Void SetVehicleActiveDuringPlayback(Vehicle vehicle, BOOL toggle) { return _i(0xDFFCEF48E511DB48, vehicle, toggle); } // 0xdffcef48e511db480xeb7d7c27B323 - // Returns false if the vehicle has the FLAG_NO_RESPRAY flag set. - inline BOOL IsVehicleSprayable(Vehicle vehicle) { return _i(0x8D474C8FAEFF6CDE, vehicle); } // 0x8d474c8faeff6cde0x5eb00a6aB323 - inline Void SetVehicleEngineCanDegrade(Vehicle vehicle, BOOL toggle) { return _i(0x983765856F2564F9, vehicle, toggle); } // 0x983765856f2564f90x081dac12B323 - // Adds some kind of shadow to the vehicle. - // - // p1 and p2 use values from 0-255 and both make the shadow darker the lower the value is. -1 disables the effect. - inline Void DisableVehcileDynamicAmbientScales(Vehicle vehicle, int p1, int p2) { return _i(0xF0E4BA16D1DB546C, vehicle, p1, p2); } // 0xf0e4ba16d1db546c0x5bd8d82dB323 - // Remove the weird shadow applied by DisableVehcileDynamicAmbientScales. - inline Void EnableVehicleDynamicAmbientScales(Vehicle vehicle) { return _i(0xF87D9F2301F7D206, vehicle); } // 0xf87d9f2301f7d2060x450ad03aB323 - inline BOOL IsPlaneLandingGearIntact(Vehicle plane) { return _i(0x4198AB0022B15F87, plane); } // 0x4198ab0022b15f870xbd085dcaB323 - inline BOOL ArePlanePropellersIntact(Vehicle plane) { return _i(0x755D6D5267CBBD7E, plane); } // 0x755d6d5267cbbd7e0xabbdd5c6B323 - inline BOOL SetPlanePropellerHealth(Vehicle plane, float health) { return _i(0x4C815EB175086F84, plane, health); } // 0x4c815eb175086f84B1103 - inline Void SetVehicleCanDeformWheels(Vehicle vehicle, BOOL toggle) { return _i(0x0CDDA42F9E360CA6, vehicle, toggle); } // 0x0cdda42f9e360ca60x9b581de7B323 - // Only returns true if the vehicle was marked as stolen with SetVehicleIsStolen. - inline BOOL IsVehicleStolen(Vehicle vehicle) { return _i(0x4AF9BD80EEBEB453, vehicle); } // 0x4af9bd80eebeb4530x20b61ddeB323 - inline Void SetVehicleIsStolen(Vehicle vehicle, BOOL isStolen) { return _i(0x67B2C79AA7FF5738, vehicle, isStolen); } // 0x67b2c79aa7ff57380x70912e42B323 - // This native sets the turbulence multiplier. It only works for planes. - // 0.0 = no turbulence at all. - // 1.0 = heavy turbulence. - // Works by just calling it once, does not need to be called every tick. - inline Void SetPlaneTurbulenceMultiplier(Vehicle vehicle, float multiplier) { return _i(0xAD2D28A1AFDFF131, vehicle, multiplier); } // 0xad2d28a1afdff1310xed159ae6B323 - inline BOOL AreWingsOfPlaneIntact(Vehicle plane) { return _i(0x5991A01434CE9677, plane); } // 0x5991a01434ce96770xaf8cb3dfB323 - // This native doesn't seem to do anything, might be a debug-only native. - // - // Confirmed, it is a debug native. - inline Void AllowAmbientVehiclesToAVoidAdverseConditions(Vehicle vehicle) { return _i(0xB264C4D2F2B0A78B, vehicle); } // 0xb264c4d2f2b0a78b0x45f72495B323 - inline Void DetachVehicleFromCargobob(Vehicle vehicle, Vehicle cargobob) { return _i(0x0E21D3DF1051399D, vehicle, cargobob); } // 0x0e21d3df1051399d0x83d3d331B323 - inline BOOL DetachVehicleFromAnyCargobob(Vehicle vehicle) { return _i(0xADF7BE450512C12F, vehicle); } // 0xadf7be450512c12f0x50e0eabeB323 - inline BOOL DetachEntityFromCargobob(Vehicle cargobob, Entity entity) { return _i(0xAF03011701811146, cargobob, entity); } // 0xaf03011701811146B678 - inline BOOL IsVehicleAttachedToCargobob(Vehicle cargobob, Vehicle vehicleAttached) { return _i(0xD40148F22E81A1D9, cargobob, vehicleAttached); } // 0xd40148f22e81a1d90x5deec76cB323 - // Returns attached vehicle (Vehicle in parameter must be cargobob) - inline Vehicle GetVehicleAttachedToCargobob(Vehicle cargobob) { return _i(0x873B82D42AC2B9E5, cargobob); } // 0x873b82d42ac2b9e50x301a1d24B323 - inline Entity GetEntityAttachedToCargobob(Any p0) { return _i(0x99093F60746708CA, p0); } // 0x99093f60746708caB1103 - inline Void AttachVehicleToCargobob(Vehicle cargobob, Vehicle vehicle, int p2, float x, float y, float z) { return _i(0x4127F1D84E347769, cargobob, vehicle, p2, x, y, z); } // 0x4127f1d84e3477690x607dc9d5B323 - inline Void AttachEntityToCargobob(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0xA1DD82F3CCF9A01E, p0, p1, p2, p3, p4, p5); } // 0xa1dd82f3ccf9a01e0xaeb29f98B944 - // Stops cargobob from being able to detach the attached vehicle. - inline Void SetCargobobForceDontDetachVehicle(Vehicle cargobob, BOOL toggle) { return _i(0x571FEB383F629926, cargobob, toggle); } // 0x571feb383f6299260x49949fdaB323 - inline Void SetCargobobExcludeFromPickupEntity(Any p0, Any p1) { return _i(0x1F34B0626C594380, p0, p1); } // 0x1f34b0626c594380B757 - inline BOOL CanCargobobPickUpEntity(Any p0, Any p1) { return _i(0x2C1D8B3B19E517CC, p0, p1); } // 0x2c1d8b3b19e517ccB757 - // Gets the position of the cargobob hook, in world coords. - inline Vector3 GetAttachedPickUpHookPosition(Vehicle cargobob) { return _i(0xCBDB9B923CACC92D, cargobob); } // 0xcbdb9b923cacc92d0xe6633dcfB323 - // Returns true only when the hook is active, will return false if the magnet is active - inline BOOL DoesCargobobHavePickUpRope(Vehicle cargobob) { return _i(0x1821D91AD4B56108, cargobob); } // 0x1821d91ad4b561080xaf769b81B323 - // Drops the Hook/Magnet on a cargobob - // - // state - // enum eCargobobHook - // { - // CARGOBOB_HOOK = 0, - // CARGOBOB_MAGNET = 1, - // }; - inline Void CreatePickUpRopeForCargobob(Vehicle cargobob, int state) { return _i(0x7BEB0C7A235F6F3B, cargobob, state); } // 0x7beb0c7a235f6f3b0x4d3c9a99B323 - // Retracts the hook on the cargobob. - // - // Note: after you retract it the natives for dropping the hook no longer work - inline Void RemovePickUpRopeForCargobob(Vehicle cargobob) { return _i(0x9768CF648F54C804, cargobob); } // 0x9768cf648f54c8040xa8211ee9B323 - // min: 1.9f, max: 100.0f - inline Void SetPickupRopeLengthForCargobob(Vehicle cargobob, float length1, float length2, BOOL p3) { return _i(0x877C1EAEAC531023, cargobob, length1, length2, p3); } // 0x877c1eaeac5310230x3a8ab081B323 - inline Void SetPickupRopeLengthWithoutCreatingRopeForCargobob(Any p0, Any p1, Any p2) { return _i(0xC0ED6438E6D39BA8, p0, p1, p2); } // 0xc0ed6438e6d39ba8B944 - inline Void SetCargobobPickupRopeDampingMultiplier(Any p0, Any p1) { return _i(0xCF1182F682F65307, p0, p1); } // 0xcf1182f682f653070x7d927e1bB323 - inline Void SetCargobobPickupRopeType(Any p0, Any p1) { return _i(0x0D5F65A8F4EBDAB5, p0, p1); } // 0x0d5f65a8f4ebdab50xf258ada1B1103 - // Returns true only when the magnet is active, will return false if the hook is active - inline BOOL DoesCargobobHavePickupMagnet(Vehicle cargobob) { return _i(0x6E08BF5B3722BAC9, cargobob); } // 0x6e08bf5b3722bac90x4778ca0aB323 - // Won't attract or magnetize to any helicopters or planes of course, but that's common sense. - inline Void SetCargobobPickupMagnetActive(Vehicle cargobob, BOOL isActive) { return _i(0x9A665550F8DA349B, cargobob, isActive); } // 0x9a665550f8da349b0xf57066daB323 - inline Void SetCargobobPickupMagnetStrength(Vehicle cargobob, float strength) { return _i(0xBCBFCD9D1DAC19E2, cargobob, strength); } // 0xbcbfcd9d1dac19e20xcc3cf97dB323 - inline Void SetCargobobPickupMagnetFalloff(Vehicle cargobob, float p1) { return _i(0xA17BAD153B51547E, cargobob, p1); } // 0xa17bad153b51547eB323 - inline Void SetCargobobPickupMagnetReducedStrength(Vehicle cargobob, float p1) { return _i(0x66979ACF5102FD2F, cargobob, p1); } // 0x66979acf5102fd2fB323 - inline Void SetCargobobPickupMagnetReducedFalloff(Vehicle cargobob, float p1) { return _i(0x6D8EAC07506291FB, cargobob, p1); } // 0x6d8eac07506291fbB323 - inline Void SetCargobobPickupMagnetPullStrength(Vehicle cargobob, float p1) { return _i(0xED8286F71A819BAA, cargobob, p1); } // 0xed8286f71a819baa0x8191bc1aB323 - inline Void SetCargobobPickupMagnetPullRopeLength(Vehicle vehicle, float p1) { return _i(0x685D5561680D088B, vehicle, p1); } // 0x685d5561680d088bB323 - inline Void SetCargobobPickupMagnetSetTargetedMode(Vehicle vehicle, Vehicle cargobob) { return _i(0xE301BD63E9E13CF0, vehicle, cargobob); } // 0xe301bd63e9e13cf0B323 - inline Void SetCargobobPickupMagnetSetAmbientMode(Vehicle vehicle, BOOL p1, BOOL p2) { return _i(0x9BDDC73CC6A115D4, vehicle, p1, p2); } // 0x9bddc73cc6a115d40x50cdb295B323 - inline Void SetCargobobPickupMagnetEnsurePickupEntityUpright(Vehicle vehicle, BOOL p1) { return _i(0x56EB5E94318D3FB6, vehicle, p1); } // 0x56eb5e94318d3fb60x30f43fe3B323 - inline BOOL DoesVehicleHaveWeapons(Vehicle vehicle) { return _i(0x25ECB9F8017D98E0, vehicle); } // 0x25ecb9f8017d98e00xb2e1e1fbB323 - inline Void SetVehicleWillTellOthersToHurry(Vehicle vehicle, BOOL p1) { return _i(0x2C4A1590ABF43E8B, vehicle, p1); } // 0x2c4a1590abf43e8b0x2ec19a8bB323 - // Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void DisableVehicleWeapon(BOOL disabled, Hash weaponHash, Vehicle vehicle, Ped owner) { return _i(0xF4FC6A6F67D8D856, disabled, weaponHash, vehicle, owner); } // 0xf4fc6a6f67d8d8560xa688b7d1B323 - // Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline BOOL IsVehicleWeaponDisabled(Hash weaponHash, Vehicle vehicle, Ped owner) { return _i(0x563B65A643ED072E, weaponHash, vehicle, owner); } // 0x563b65a643ed072eB1011 - inline Void SetVehicleUsedForPilotSchool(Vehicle vehicle, BOOL toggle) { return _i(0xE05DD0E9707003A3, vehicle, toggle); } // 0xe05dd0e9707003a30x123e5b90B323 - inline Void SetVehicleActiveForPedNavigation(Vehicle vehicle, BOOL toggle) { return _i(0x21115BCD6E44656A, vehicle, toggle); } // 0x21115bcd6e44656a0xebc225c1B323 - // Returns an int - // - // Vehicle Classes: - // 0: Compacts - // 1: Sedans - // 2: SUVs - // 3: Coupes - // 4: Muscle - // 5: Sports Classics - // 6: Sports - // 7: Super - // 8: Motorcycles - // 9: Off-road - // 10: Industrial - // 11: Utility - // 12: Vans - // 13: Cycles - // 14: Boats - // 15: Helicopters - // 16: Planes - // 17: Service - // 18: Emergency - // 19: Military - // 20: Commercial - // 21: Trains - // - // char buffer[128]; - // std::sprintf(buffer, "VEH_CLASS_%i", VEHICLE::GetVehicleClass(vehicle)); - // - // String className = HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION(buffer); - inline int GetVehicleClass(Vehicle vehicle) { return _i(0x29439776AAA00A62, vehicle); } // 0x29439776aaa00a620xc025338eB323 - // char buffer[128]; - // std::sprintf(buffer, "VEH_CLASS_%i", VEHICLE::GetVehicleClassFromName (hash)); - // - // String className = HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION(buffer); - // - // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - inline int GetVehicleClassFromName(Hash modelHash) { return _i(0xDEDF1C8BD47C2200, modelHash); } // 0xdedf1c8bd47c22000xea469980B323 - inline Void SetPlayersLastVehicle(Vehicle vehicle) { return _i(0xBCDF8BAF56C87B6A, vehicle); } // 0xbcdf8baf56c87b6a0xde86447dB323 - inline Void SetVehicleCanBeUsedByFleeingPeds(Vehicle vehicle, BOOL toggle) { return _i(0x300504B23BD3B711, vehicle, toggle); } // 0x300504b23bd3b7110x5130db1eB323 - inline Void SetAircraftPilotSkillNoiseScalar(Vehicle vehicle, float p1) { return _i(0xE5810AC70602F2F5, vehicle, p1); } // 0xe5810ac70602f2f50xb6be07e0B323 - // Money pickups are created around cars when they explode. Only works when the vehicle model is a car. A single pickup is between 1 and 18 dollars in size. All car models seem to give the same amount of money. - // - // youtu.be/3arlUxzHl5Y - // i.imgur.com/WrNpYFs.jpg - inline Void SetVehicleDropsMoneyWhenBlownUp(Vehicle vehicle, BOOL toggle) { return _i(0x068F64F2470F9656, vehicle, toggle); } // 0x068f64f2470f96560x4bb5605dB323 - inline Void SetVehicleKeepEngineOnWhenAbandoned(Vehicle vehicle, BOOL toggle) { return _i(0xB8FBC8B1330CA9B4, vehicle, toggle); } // 0xb8fbc8b1330ca9b40x51e0064fB323 - // Seems to copy some values in vehicle - inline Void SetVehicleImpatienceTimer(Vehicle vehicle, Any p1) { return _i(0x6A973569BA094650, vehicle, p1); } // 0x6a973569ba094650B1604 - // Use the "AIHandling" string found in handling.meta - inline Void SetVehicleHandlingOverride(Vehicle vehicle, Hash hash) { return _i(0x10655FAB9915623D, vehicle, hash); } // 0x10655fab9915623dB323 - // Max value is 32767 - inline Void SetVehicleExtendedRemovalRange(Vehicle vehicle, int range) { return _i(0x79DF7E806202CE01, vehicle, range); } // 0x79df7e806202ce010xaef9611cB323 - inline Void SetVehicleSteeringBiasScalar(Any p0, float p1) { return _i(0x9007A2F21DC108D4, p0, p1); } // 0x9007a2f21dc108d40x585e49b6B323 - // value between 0.0 and 1.0 - inline Void SetHeliControlLaggingRateScalar(Vehicle helicopter, float multiplier) { return _i(0x6E0859B530A365CC, helicopter, multiplier); } // 0x6e0859b530a365cc0x6e67fd35B323 - // Seems to be related to the metal parts, not tyres (like i was expecting lol) - inline Void SetVehicleFrictionOverride(Vehicle vehicle, float friction) { return _i(0x1837AF7C627009BA, vehicle, friction); } // 0x1837af7c627009ba0x32afd42eB323 - inline Void SetVehicleWheelsCanBreakOffWhenBlowUp(Vehicle vehicle, BOOL toggle) { return _i(0xA37B9A517B133349, vehicle, toggle); } // 0xa37b9a517b1333490x670913a4B323 - inline BOOL ArePlaneControlPanelsIntact(Vehicle vehicle, BOOL p1) { return _i(0xF78F94D60248C737, vehicle, p1); } // 0xf78f94d60248c7370x3b51b348B323 - inline Void SetVehicleCeilingHeight(Vehicle vehicle, float height) { return _i(0xA46413066687A328, vehicle, height); } // 0xa46413066687a3280x98a10a86B323 - inline Void SetVehicleNoExplosionDamageFromDriver(Vehicle vehicle, BOOL toggle) { return _i(0x5E569EC46EC21CAE, vehicle, toggle); } // 0x5e569ec46ec21cae0xbc649c49B323 - inline Void ClearVehicleRouteHistory(Vehicle vehicle) { return _i(0x6D6AF961B72728AE, vehicle); } // 0x6d6af961b72728ae0x8dd9aa0cB323 - inline Vehicle DoesVehicleExistWithDecorator(String decorator) { return _i(0x956B409B984D9BF7, decorator); } // 0x956b409b984d9bf70x39e68eddB323 - // Used to be incorrectly named SetVehicleExclusiveDriver - // Toggles a flag related to SetVehicleExclusiveDriver, however, doesn't enable that feature (or trigger script events related to it). - inline Void SetVehicleAiCanUseExclusiveSeats(Vehicle vehicle, BOOL toggle) { return _i(0x41062318F23ED854, vehicle, toggle); } // 0x41062318f23ed854B323 - // index: 0 - 1 - // - // Used to be incorrectly named _SET_VEHICLE_EXCLUSIVE_DRIVER_2 - inline Void SetVehicleExclusiveDriver(Vehicle vehicle, Ped ped, int index) { return _i(0xB5C51B5502E85E83, vehicle, ped, index); } // 0xb5c51b5502e85e830xaa8bd440B323 - inline BOOL IsPedExclusiveDriverOfVehicle(Ped ped, Vehicle vehicle, int* outIndex) { return _i(0xB09D25E77C33EB3F, ped, vehicle, outIndex); } // 0xb09d25e77c33eb3fB463 - inline Void DisableIndividualPlanePropeller(Vehicle vehicle, int propeller) { return _i(0x500873A45724C863, vehicle, propeller); } // 0x500873a45724c8630x004926a3B323 - inline Void SetVehicleForceAfterburner(Vehicle vehicle, BOOL toggle) { return _i(0xB055A34527CB8FD7, vehicle, toggle); } // 0xb055a34527cb8fd70xc195803bB323 - // R* used it to "remove" vehicle windows when "nightshark" had some mod, which adding some kind of armored windows. When enabled, you can't break vehicles glass. All your bullets wiil shoot through glass. You also will not able to break the glass with any other way (hitting and etc) - inline Void SetDontProcessVehicleGlass(Vehicle vehicle, BOOL toggle) { return _i(0x1087BC8EC540DAEB, vehicle, toggle); } // 0x1087bc8ec540daebB1103 - inline Void SetDisableWantedConesResponse(Vehicle vehicle, BOOL toggle) { return _i(0x4AD280EB48B2D8E6, vehicle, toggle); } // 0x4ad280eb48b2d8e6B1868 - inline Void SetUseDesiredZCruiseSpeedForLanding(Vehicle vehicle, BOOL toggle) { return _i(0xB68CFAF83A02768D, vehicle, toggle); } // 0xb68cfaf83a02768dB1290 - inline Void SetArriveDistanceOverrideForVehiclePersuitAttack(Vehicle vehicle, float p1) { return _i(0x0205F5365292D2EB, vehicle, p1); } // 0x0205f5365292d2ebB1290 - inline Void SetVehicleReadyForCleanup(Any p0) { return _i(0xCF9159024555488C, p0); } // 0xcf9159024555488cB944 - // Toggles to render distant vehicles. They may not be vehicles but images to look like vehicles. - inline Void SetDistantCarsEnabled(BOOL toggle) { return _i(0xF796359A959DF65D, toggle); } // 0xf796359a959df65d0xb5cc548bB323 - // Sets the color of the neon lights of the specified vehicle. - inline Void SetVehicleNeonColour(Vehicle vehicle, int r, int g, int b) { return _i(0x8E0A582209A62695, vehicle, r, g, b); } // 0x8e0a582209a62695B323 - // Index references CVehicleModelColor - inline Void SetVehicleNeonIndexColour(Vehicle vehicle, int index) { return _i(0xB93B2867F7B479D1, vehicle, index); } // 0xb93b2867f7b479d1B1493 - // Gets the color of the neon lights of the specified vehicle. - // - // See SetVehicleNeonColour (0x8E0A582209A62695) for more information - inline Void GetVehicleNeonColour(Vehicle vehicle, int* r, int* g, int* b) { return _i(0x7619EEE8C886757F, vehicle, r, g, b); } // 0x7619eee8c886757fB323 - // Sets the neon lights of the specified vehicle on/off. - // - // Indices: - // 0 = Left - // 1 = Right - // 2 = Front - // 3 = Back - inline Void SetVehicleNeonEnabled(Vehicle vehicle, int index, BOOL toggle) { return _i(0x2AA720E4287BF269, vehicle, index, toggle); } // 0x2aa720e4287bf269B323 - // indices: - // 0 = Left - // 1 = Right - // 2 = Front - // 3 = Back - inline BOOL GetVehicleNeonEnabled(Vehicle vehicle, int index) { return _i(0x8C4B92553E4766A5, vehicle, index); } // 0x8c4b92553e4766a5B323 - inline Void SetAmbientVehicleNeonEnabled(BOOL p0) { return _i(0x35E0654F4BAD7971, p0); } // 0x35e0654f4bad7971B323 - inline Void SuppressNeonsOnVehicle(Vehicle vehicle, BOOL toggle) { return _i(0x83F813570FF519DE, vehicle, toggle); } // 0x83f813570ff519deB573 - inline Void SetDisableSuperdummy(Vehicle vehicle, BOOL p1) { return _i(0xB088E9A47AE6EDD5, vehicle, p1); } // 0xb088e9a47ae6edd5B323 - inline Void RequestVehicleDial(Vehicle vehicle) { return _i(0xDBA3C090E3D74690, vehicle); } // 0xdba3c090e3d74690B323 - // Seems related to vehicle health, like the one in IV. - // Max 1000, min 0. - // Vehicle does not necessarily explode or become undrivable at 0. - inline float GetVehicleBodyHealth(Vehicle vehicle) { return _i(0xF271147EB7B40F12, vehicle); } // 0xf271147eb7b40f120x2b2fcc28B323 - // p2 often set to 1000.0 in the decompiled scripts. - inline Void SetVehicleBodyHealth(Vehicle vehicle, float value) { return _i(0xB77D05AC8C78AADB, vehicle, value); } // 0xb77d05ac8c78aadb0x920c2517B323 - // Outputs 2 Vector3's. - // Scripts check if out2.x - out1.x > someshit.x - // Could be suspension related, as in max suspension height and min suspension height, considering the natives location. - inline Void GetVehicleSize(Vehicle vehicle, Vector3* out1, Vector3* out2) { return _i(0xDF7E3EEB29642C38, vehicle, out1, out2); } // 0xdf7e3eeb29642c38B323 - // Gets the height of the vehicle's suspension. - // The higher the value the lower the suspension. Each 0.002 corresponds with one more level lowered. - // 0.000 is the stock suspension. - // 0.008 is Ultra Suspension. - inline float GetFakeSuspensionLoweringAmount(Vehicle vehicle) { return _i(0x53952FD2BAA19F17, vehicle); } // 0x53952fd2baa19f170xb73a1486B323 - inline Void SetCarHighSpeedBumpSeverityMultiplier(float multiplier) { return _i(0x84FD40F56075E816, multiplier); } // 0x84fd40f56075e816B323 - inline int GetNumberOfVehicleDoors(Vehicle vehicle) { return _i(0x92922A607497B14D, vehicle); } // 0x92922a607497b14dB463 - // If false, lowers hydraulics (if raised) and disables hydraulics controls. If true, raises hydraulics and enables hydraulics controls. - // - // Only used once in each carmod script, on a car that does not have hydraulics to begin with. - inline Void SetHydraulicsControl(Vehicle vehicle, BOOL toggle) { return _i(0x28B18377EB6E25F6, vehicle, toggle); } // 0x28b18377eb6e25f6B505 - inline Void SetCanAdjustGroundClearance(Vehicle vehicle, BOOL p1) { return _i(0xA7DCDF4DED40A8F4, vehicle, p1); } // 0xa7dcdf4ded40a8f4B323 - // 0 min 100 max - // starts at 100 - // Seams to have health zones - // Front of vehicle when damaged goes from 100-50 and stops at 50. - // Rear can be damaged from 100-0 - // Only tested with two cars. - // - // any idea how this differs from the first one? - // - // -- - // May return the vehicle health on a scale of 0.0 - 100.0 (needs to be confirmed) - // - // example: - // - // v_F = ENTITY::GetEntityModel(v_3); - // if (((v_F == ${tanker}) || (v_F == ${armytanker})) || (v_F == ${tanker2})) { - // if (VEHICLE::GetVehicleHealthPercentage(v_3) <= 1.0) { - // NETWORK::NetworkExplodeVehicle(v_3, 1, 1, -1); - // } - // } - inline float GetVehicleHealthPercentage(Vehicle vehicle, float maxEngineHealth, float maxPetrolTankHealth, float maxBodyHealth, float maxMainRotorHealth, float maxTailRotorHealth, float maxUnkHealth) { return _i(0xB8EF61207C2393A9, vehicle, maxEngineHealth, maxPetrolTankHealth, maxBodyHealth, maxMainRotorHealth, maxTailRotorHealth, maxUnkHealth); } // 0xb8ef61207c2393a90x196ba503B323 - inline BOOL GetVehicleIsMercenary(Vehicle vehicle) { return _i(0xD4C4642CB7F50B5D, vehicle); } // 0xd4c4642cb7f50b5d0x575504deB323 - inline Void SetVehicleBrokenPartsDontAffectAiHandling(Vehicle vehicle, BOOL p1) { return _i(0xC361AA040D6637A8, vehicle, p1); } // 0xc361aa040d6637a80x819cd954B323 - inline Void SetVehicleKersAllowed(Vehicle vehicle, BOOL toggle) { return _i(0x99C82F8A139F3E4E, vehicle, toggle); } // 0x99c82f8a139f3e4e0x71cdd52fB323 - // Returns true if the vehicle has a HF_HAS_KERS (strHandlingFlags 0x4) handing flag set, for instance the lectro/vindicator bikes or the open wheelers. - inline BOOL GetVehicleHasKers(Vehicle vehicle) { return _i(0x50634E348C8D44EF, vehicle); } // 0x50634e348c8d44ef0x0761e635B372 - inline Void SetPlaneResistToExplosion(Vehicle vehicle, BOOL toggle) { return _i(0xE16142B94664DEFD, vehicle, toggle); } // 0xe16142b94664defd0xfbba699aB323 - inline Void SetHeliResistToExplosion(Vehicle vehicle, BOOL toggle) { return _i(0x8074CC1886802912, vehicle, toggle); } // 0x8074cc1886802912B2545 - inline Void SetDisableBmxExtraTrickForces(Any p0) { return _i(0x26D99D5A82FD18E8, p0); } // 0x26d99d5a82fd18e8B463 - // Works only on vehicles that support hydraulics. - inline Void SetHydraulicSuspensionRaiseFactor(Vehicle vehicle, int wheelId, float value) { return _i(0x84EA99C62CB3EF0C, vehicle, wheelId, value); } // 0x84ea99c62cb3ef0cB505 - inline float GetHydraulicSuspensionRaiseFactor(Vehicle vehicle, int wheelId) { return _i(0x0BB5CBDDD0F25AE3, vehicle, wheelId); } // 0x0bb5cbddd0f25ae3B2372 - inline Void SetCanUseHydraulics(Vehicle vehicle, BOOL toggle) { return _i(0x1201E8A3290A3B98, vehicle, toggle); } // 0x1201e8a3290a3b98B505 - // States: - // 4 = raise - // 5 = lower - // 6 = jump - inline Void SetHydraulicVehicleState(Vehicle vehicle, int state) { return _i(0x8EA86DF356801C7D, vehicle, state); } // 0x8ea86df356801c7dB505 - // Sets vehicle wheel hydraulic states transition. Known states: - // 0 - reset - // 1 - raise wheel (uses value arg, works just like _SET_VEHICLE_HYDRAULIC_WHEEL_VALUE) - // 2 - jump using wheel - inline Void SetHydraulicWheelState(Vehicle vehicle, int wheelId, int state, float value, Any p4) { return _i(0xC24075310A8B9CD1, vehicle, wheelId, state, value, p4); } // 0xc24075310a8b9cd1B505 - inline BOOL HasVehiclePetroltankSetOnFireByEntity(Any p0, Any p1) { return _i(0x5BA68A0840D546AC, p0, p1); } // 0x5ba68a0840d546acB463 - inline Void ClearVehiclePetroltankFireCulprit(Vehicle vehicle) { return _i(0x4419966C9936071A, vehicle); } // 0x4419966c9936071aB463 - // Controls how fast bobbleheads and tsurikawas move on each axis. - // - // p2 is probably z, but changing that value didn't seem to have a noticeable effect. - inline Void SetVehicleBobbleheadVelocity(float x, float y, float p2) { return _i(0x870B8B7A766615C8, x, y, p2); } // 0x870b8b7a766615c8B505 - inline BOOL GetVehicleIsDummy(Any p0) { return _i(0x8533CAFDE1F0F336, p0); } // 0x8533cafde1f0f336B505 - inline BOOL SetVehicleDamageScale(Vehicle vehicle, float p1) { return _i(0x4E20D2A627011E8E, vehicle, p1); } // 0x4e20d2a627011e8eB757 - inline BOOL SetVehicleWeaponDamageScale(Vehicle vehicle, float multiplier) { return _i(0x45A561A9421AB6AD, vehicle, multiplier); } // 0x45a561a9421ab6adB944 - inline BOOL SetDisableDamageWithPickedUpEntity(Any p0, Any p1) { return _i(0xD4196117AF7BB974, p0, p1); } // 0xd4196117af7bb974B757 - inline Void SetVehicleUsesMpPlayerDamageMultiplier(Any p0, Any p1) { return _i(0xBB2333BB87DDD87F, p0, p1); } // 0xbb2333bb87ddd87fB757 - // When enabled, the player won't fall off the bike when landing from large heights. - inline Void SetBikeEasyToLand(Vehicle vehicle, BOOL toggle) { return _i(0x73561D4425A021A2, vehicle, toggle); } // 0x73561d4425a021a2B791 - // Inverts vehicle's controls. So INPUT_VEH_ACCELERATE will be INPUT_VEH_BRAKE and vise versa (same for A/D controls) - // Doesn't work for planes/helis. - inline Void SetInvertVehicleControls(Vehicle vehicle, BOOL state) { return _i(0x5B91B229243351A8, vehicle, state); } // 0x5b91b229243351a8B791 - // Disables the screen effects and sound effects when driving over a speed boost pad. - inline Void SetSpeedBoostEffectDisabled(BOOL disabled) { return _i(0x7BBE7FF626A591FE, disabled); } // 0x7bbe7ff626a591feB877 - // Disables the screen effects and sound effects when driving over a slowdown pad. - inline Void SetSlowDownEffectDisabled(BOOL disabled) { return _i(0x65B080555EA48149, disabled); } // 0x65b080555ea48149B1011 - inline Void SetFormationLeader(Vehicle vehicle, float x, float y, float z, float p4) { return _i(0x428AD3E26C8D9EB0, vehicle, x, y, z, p4); } // 0x428ad3e26c8d9eb0B877 - // Resets the effect of SetFormationLeader - inline Void ResetFormationLeader() { return _i(0xE2F53F172B45EDE1); } // 0xe2f53f172b45ede1B877 - inline BOOL GetIsBoatCapsized(Vehicle vehicle) { return _i(0xBA91D045575699AD, vehicle); } // 0xba91d045575699adB877 - inline Void SetAllowRammingSoopOrRamp(Any p0, Any p1) { return _i(0x80E3357FDEF45C21, p0, p1); } // 0x80e3357fdef45c21B944 - inline Void SetScriptRampImpulseScale(Vehicle vehicle, float impulseScale) { return _i(0xEFC13B1CE30D755D, vehicle, impulseScale); } // 0xefc13b1ce30d755dB944 - // doorId: see SetVehicleDoorShut - inline BOOL GetIsDoorValid(Vehicle vehicle, int doorId) { return _i(0x645F4B6E8499F632, vehicle, doorId); } // 0x645f4b6e8499f632B944 - inline Void SetScriptRocketBoostRechargeTime(Vehicle vehicle, float seconds) { return _i(0xE00F2AB100B76E89, vehicle, seconds); } // 0xe00f2ab100b76e89B944 - inline BOOL GetHasRocketBoost(Vehicle vehicle) { return _i(0x36D782F68B309BDA, vehicle); } // 0x36d782f68b309bdaB944 - inline BOOL IsRocketBoostActive(Vehicle vehicle) { return _i(0x3D34E80EED4AE3BE, vehicle); } // 0x3d34e80eed4ae3beB944 - inline Void SetRocketBoostActive(Vehicle vehicle, BOOL active) { return _i(0x81E1552E35DC3839, vehicle, active); } // 0x81e1552e35dc3839B944 - inline BOOL GetHasRetractableWheels(Vehicle vehicle) { return _i(0xDCA174A42133F08C, vehicle); } // 0xdca174a42133f08cB944 - inline BOOL GetIsWheelsRetracted(Vehicle vehicle) { return _i(0x1DA0DA9CB3F0C8BF, vehicle); } // 0x1da0da9cb3f0c8bfB944 - inline Void SetWheelsExtendedInstantly(Vehicle vehicle) { return _i(0xF660602546D27BA8, vehicle); } // 0xf660602546d27ba8B944 - inline Void SetWheelsRetractedInstantly(Vehicle vehicle) { return _i(0x5335BE58C083E74E, vehicle); } // 0x5335be58c083e74eB1011 - // Returns true if the vehicle has the FLAG_JUMPING_CAR flag set. - inline BOOL GetCarHasJump(Vehicle vehicle) { return _i(0x9078C0C5EF8C19E9, vehicle); } // 0x9078c0c5ef8c19e9B944 - // Allows vehicles with the FLAG_JUMPING_CAR flag to jump higher (i.e. Ruiner 2000). - inline Void SetUseHigherCarJump(Vehicle vehicle, BOOL toggle) { return _i(0xF06A16CA55D138D8, vehicle, toggle); } // 0xf06a16ca55d138d8B944 - inline Void SetClearFreezeWaitingOnCollisionOncePlayerEnters(Vehicle vehicle, BOOL toggle) { return _i(0xB2E0C0D6922D31F2, vehicle, toggle); } // 0xb2e0c0d6922d31f2B944 - // Set vehicle's primary mounted weapon 2 ammo. For example, use it on APC. - // For example, you can "remove" any vehicle weapon from any vehicle. - // ammoAmount -1 = infinite ammo (default value for any spawned vehicle tho) - inline Void SetVehicleWeaponRestrictedAmmo(Vehicle vehicle, int weaponIndex, int capacity) { return _i(0x44CD1F493DB2A0A6, vehicle, weaponIndex, capacity); } // 0x44cd1f493db2a0a6B944 - inline int GetVehicleWeaponRestrictedAmmo(Vehicle vehicle, int weaponIndex) { return _i(0x8181CE2F25CB9BB7, vehicle, weaponIndex); } // 0x8181ce2f25cb9bb7B1011 - inline BOOL GetVehicleHasParachute(Vehicle vehicle) { return _i(0xBC9CFF381338CB4F, vehicle); } // 0xbc9cff381338cb4fB944 - inline BOOL GetVehicleCanDeployParachute(Vehicle vehicle) { return _i(0xA916396DF4154EE3, vehicle); } // 0xa916396df4154ee3B944 - inline Void VehicleStartParachuting(Vehicle vehicle, BOOL active) { return _i(0x0BFFB028B3DD0A97, vehicle, active); } // 0x0bffb028b3dd0a97B944 - inline BOOL IsVehicleParachuteDeployed(Vehicle vehicle) { return _i(0x3DE51E9C80B116CF, vehicle); } // 0x3de51e9c80b116cfB1011 - inline Void VehicleSetRampAndRammingCarsTakeDamage(Vehicle vehicle, BOOL toggle) { return _i(0x28D034A93FE31BF5, vehicle, toggle); } // 0x28d034a93fe31bf5B944 - inline Void VehicleSetEnableRampCarSideImpulse(Any p0, Any p1) { return _i(0x1BBAC99C0BC53656, p0, p1); } // 0x1bbac99c0bc53656B944 - inline Void VehicleSetEnableNormaliseRampCarVerticalVeloctiy(Any p0, Any p1) { return _i(0x756AE6E962168A04, p0, p1); } // 0x756ae6e962168a04B944 - inline Void VehicleSetJetWashForceEnabled(Any p0) { return _i(0x9D30687C57BAA0BB, p0); } // 0x9d30687c57baa0bbB1011 - inline Void SetVehicleWeaponCanTargetObjects(Vehicle vehicle, BOOL toggle) { return _i(0x86B4B6212CB8B627, vehicle, toggle); } // 0x86b4b6212cb8b627B1011 - // Used for blazer5. Changes the quadbike-jetski transformation input from raise/lower convertible roof (hold H by default) to horn (press E by default.) - inline Void SetVehicleUseBoostButtonForWheelRetract(BOOL toggle) { return _i(0x41290B40FA63E6DA, toggle); } // 0x41290b40fa63e6daB1011 - // Parachute models: - // - sr_prop_specraces_para_s_01 - // - imp_prop_impexp_para_s (SecuroServ; Default) - // Plus, many more props can be used as vehicle parachutes, like umbrellas (prop_beach_parasol_03), and unlike SetPlayerParachuteModelOverride, you won't get stuck mid-air when using an umbrella. - inline Void VehicleSetParachuteModelOverride(Vehicle vehicle, Hash modelHash) { return _i(0x4D610C6B56031351, vehicle, modelHash); } // 0x4d610c6b56031351B1011 - // Variations available for the generic parachute (sr_prop_specraces_para_s_01): - // - 0: Rainbow - // - 1: Red - // - 2: White, blue, yellow - // - 3: Black, red, white - // - 4: Red, white, blue - // - 5: Blue - // - 6: Black - // - 7: Black, yellow - inline Void VehicleSetParachuteModelTintIndex(Vehicle vehicle, int textureVariation) { return _i(0xA74AD2439468C883, vehicle, textureVariation); } // 0xa74ad2439468c883B1011 - inline int VehicleSetOverrideExtenableSideRatio(Any p0, Any p1) { return _i(0x0419B167EE128F33, p0, p1); } // 0x0419b167ee128f33B1103 - inline int VehicleSetExtenableSideTargetRatio(Any p0, Any p1) { return _i(0xF3B0E0AED097A3F5, p0, p1); } // 0xf3b0e0aed097a3f5B1103 - inline int VehicleSetOverrideSideRatio(Any p0, Any p1) { return _i(0xD3E51C0AB8C26EEE, p0, p1); } // 0xd3e51c0ab8c26eeeB1103 - inline int GetAllVehicles(Any* vehsStruct) { return _i(0x9B8E1BF04B51F2E8, vehsStruct); } // 0x9b8e1bf04b51f2e8B1103 - inline Void SetCargobobExtaPickupRange(Any p0, Any p1) { return _i(0x72BECCF4B829522E, p0, p1); } // 0x72beccf4b829522eB1103 - inline Void SetOverrideVehicleDoorTorque(Any p0, Any p1, Any p2) { return _i(0x66E3AAFACE2D1EB8, p0, p1, p2); } // 0x66e3aaface2d1eb8B1103 - // Enables/disables the ability to wheelie on motorcycles. - inline Void SetWheelieEnabled(Vehicle vehicle, BOOL enabled) { return _i(0x1312DDD8385AEE4E, vehicle, enabled); } // 0x1312ddd8385aee4eB1103 - inline Void SetDisableHeliExplodeFromBodyDamage(Any p0, Any p1) { return _i(0xEDBC8405B3895CC9, p0, p1); } // 0xedbc8405b3895cc9B1103 - inline Void SetDisableExplodeFromBodyDamageOnCollision(Vehicle vehicle, float value) { return _i(0x26E13D440E7F6064, vehicle, value); } // 0x26e13d440e7f6064B1290 - inline Void SetTrailerAttachmentEnabled(Any p0, Any p1) { return _i(0x2FA2494B47FDD009, p0, p1); } // 0x2fa2494b47fdd009B1103 - inline Void SetRocketBoostFill(Vehicle vehicle, float percentage) { return _i(0xFEB2DDED3509562E, vehicle, percentage); } // 0xfeb2dded3509562eB1103 - // Set state to true to extend the wings, false to retract them. - inline Void SetGliderActive(Vehicle vehicle, BOOL state) { return _i(0x544996C0081ABDEB, vehicle, state); } // 0x544996c0081abdebB1103 - // Resets the vehicle's turret to its default position in scripted cameras. Doesn't seem to affect turrets that are occupied by a ped. - inline Void SetShouldResetTurretInScriptedCameras(Vehicle vehicle, BOOL shouldReset) { return _i(0x78CEEE41F49F421F, vehicle, shouldReset); } // 0x78ceee41f49f421fB1103 - inline Void SetVehicleDisableCollisionUponCreation(Vehicle vehicle, BOOL disable) { return _i(0xAF60E6A2936F982A, vehicle, disable); } // 0xaf60e6a2936f982aB1103 - inline Void SetGroundEffectReducesDrag(BOOL toggle) { return _i(0x430A7631A84C9BE7, toggle); } // 0x430a7631a84c9be7B1180 - // Disables collision for this vehicle (maybe it also supports other entities, not sure). - // Only world/building/fixed world objects will have their collisions disabled, props, peds, or any other entity still collides with the vehicle. - // Example: https://streamable.com/6n45d5 - // Not sure if there is a native (and if so, which one) that resets the collisions. - inline Void SetDisableMapCollision(Vehicle vehicle) { return _i(0x75627043C6AA90AD, vehicle); } // 0x75627043c6aa90adB1180 - inline Void SetDisablePedStandOnTop(Vehicle vehicle, BOOL toggle) { return _i(0x8235F1BEAD557629, vehicle, toggle); } // 0x8235f1bead557629B1180 - inline Void SetVehicleDamageScales(Vehicle vehicle, Any p1, Any p2, Any p3, Any p4) { return _i(0x9640E30A7F395E4B, vehicle, p1, p2, p3, p4); } // 0x9640e30a7f395e4bB1290 - inline Void SetPlaneSectionDamageScale(Vehicle vehicle, Any p1, Any p2) { return _i(0x0BBB9A7A8FFE931B, vehicle, p1, p2); } // 0x0bbb9a7a8ffe931bB1290 - // Stops the cargobob from being able to attach any vehicle - inline Void SetHeliCanPickupEntityThatHasPickUpDisabled(Vehicle vehicle, BOOL toggle) { return _i(0x94A68DA412C4007D, vehicle, toggle); } // 0x94a68da412c4007dB1180 - // Sets the amount of bombs that this vehicle has. As far as I know, this does _not_ impact vehicle weapons or the ammo of those weapons in any way, it is just a way to keep track of the amount of bombs in a specific plane. - inline Void SetVehicleBombAmmo(Vehicle vehicle, int bombCount) { return _i(0xF4B2ED59DEB5D774, vehicle, bombCount); } // 0xf4b2ed59deb5d774B1180 - // Gets the amount of bombs that this vehicle has. As far as I know, this does _not_ impact vehicle weapons or the ammo of those weapons in any way, it is just a way to keep track of the amount of bombs in a specific plane. - inline int GetVehicleBombAmmo(Vehicle vehicle) { return _i(0xEA12BD130D7569A1, vehicle); } // 0xea12bd130d7569a1B1180 - // Similar to SetVehicleBombAmmo, this sets the amount of countermeasures that are present on this vehicle. - // Use GetVehicleBombAmmo to get the current amount. - inline Void SetVehicleCountermeasureAmmo(Vehicle vehicle, int counterMeasureCount) { return _i(0x9BDA23BF666F0855, vehicle, counterMeasureCount); } // 0x9bda23bf666f0855B1180 - // Similar to `GetVehicleBombAmmo`, this gets the amount of countermeasures that are present on this vehicle. - // Use SetVehicleCountermeasureAmmo to set the current amount. - inline int GetVehicleCountermeasureAmmo(Vehicle vehicle) { return _i(0xF846AA63DF56B804, vehicle); } // 0xf846aa63df56b804B1180 - inline Void SetHeliCombatOffset(Vehicle vehicle, float x, float y, float z) { return _i(0x0A3F820A9A9A9AC5, vehicle, x, y, z); } // 0x0a3f820a9a9a9ac5B1180 - // Used in decompiled scripts in combination with GetVehicleSize - // p7 is usually 2 - // p8 is usually 1 - inline BOOL GetCanVehicleBePlacedHere(Vehicle vehicle, float x, float y, float z, float rotX, float rotY, float rotZ, int p7, Any p8) { return _i(0x51F30DB60626A20E, vehicle, x, y, z, rotX, rotY, rotZ, p7, p8); } // 0x51f30db60626a20eB1180 - // Sets a flag on heli and another vehicle type. - inline Void SetDisableAutomaticCrashTask(Vehicle vehicle, BOOL toggle) { return _i(0x97841634EF7DF1D6, vehicle, toggle); } // 0x97841634ef7df1d6B1180 - // Used in conjunction with SetSpecialFlightModeTargetRatio, in Rockstar's scripts. Using this will instantly transform the vehicle into hover mode starting from the given ratio (ranging from 0.0 to 1.0, values greater than 1.0 will put the vehicle into a glitched state.) If this is not used alongside SetSpecialFlightModeTargetRatio, the vehicle will automatically transform back into car mode. - // - // Usable only with the deluxo and other vehicles with deluxo-like hover mode toggle, modded or otherwise. Does nothing when used on oppressor2. - // - // Example: - // Ped playerPed = PLAYER::PlayerPedId(); - // Vehicle veh = PED::GetVehiclePedIsUsing(playerPed); - // VEHICLE::SetSpecialFlightModeRatio(veh, 0.7f); - // VEHICLE::SetSpecialFlightModeTargetRatio(veh, 1.0f); - inline Void SetSpecialFlightModeRatio(Vehicle vehicle, float ratio) { return _i(0xD138FA15C9776837, vehicle, ratio); } // 0xd138fa15c9776837B1290 - // Used in conjunction with SetSpecialFlightModeRatio, in Rockstar's scripts. The vehicle will transform into the given targetRatio, starting from the vehicle's current hover mode transform ratio (which can also be manually set by SetSpecialFlightModeRatio,) i.e. setting targetRatio to 0.0 while the vehicle is in hover mode will transform the vehicle into car mode, likewise setting targetRatio to 1.0 while the vehicle is in car mode will transform the vehicle into hover mode, and if the current transform ratio is set to 0.7 while targetRatio is 1.0 the vehicle will transform into hover mode starting from being already partially transformed. - // - // targetRatio is recommended to always be 0.0 or 1.0, otherwise the vehicle will transform into a glitched state. - // - // Usable only with the deluxo and other vehicles with deluxo-like hover mode toggle, modded or otherwise. Does nothing when used on oppressor2. - // - // Example: - // Ped playerPed = PLAYER::PlayerPedId(); - // Vehicle veh = PED::GetVehiclePedIsUsing(playerPed); - // VEHICLE::SetSpecialFlightModeRatio(veh, 0.7f); - // VEHICLE::SetSpecialFlightModeTargetRatio(veh, 1.0f); - inline Void SetSpecialFlightModeTargetRatio(Vehicle vehicle, float targetRatio) { return _i(0x438B3D7CA026FE91, vehicle, targetRatio); } // 0x438b3d7ca026fe91B1290 - // It will override the ability to transform deluxo. For oppressor it will work just like SetDisableHoverModeFlight - inline Void SetSpecialFlightModeAllowed(Vehicle vehicle, BOOL toggle) { return _i(0xF1211889DF15A763, vehicle, toggle); } // 0xf1211889df15a763B1290 - // Disables "wings" for some flying vehicles. Works only for oppressor _2_ and deluxo. - // For deluxo it just immediately removes vehicle's "wings" and you will be not able to fly up. - // For oppressor 2 it will remove wings right after you land. And you will not able to fly up anymore too. - // But for opressor 2 you still can fly if you somehow get back in the air. - inline Void SetDisableHoverModeFlight(Vehicle vehicle, BOOL toggle) { return _i(0x2D55FE374D5FDB91, vehicle, toggle); } // 0x2d55fe374d5fdb91B1290 - // Checks if Chernobog's stabilizers are deployed or not. - // These are the metal supports that allow it to fire. - // This native only applies to the Chernobog. - inline BOOL GetOutriggersDeployed(Vehicle vehicle) { return _i(0x3A9128352EAC9E85, vehicle); } // 0x3a9128352eac9e85B1290 - // Native is significantly more complicated than simply generating a random vector & length. - // The 'point' is either 400.0 or 250.0 units away from the Ped's current coordinates; and paths into functions like rage::grcViewport___IsSphereVisible - inline Vector3 FindSpawnCoordinatesForHeli(Ped ped) { return _i(0x8DC9675797123522, ped); } // 0x8dc9675797123522B1290 - // Only used with the "akula" and "annihilator2" in the decompiled native scripts. - inline Void SetDeployFoldingWings(Vehicle vehicle, BOOL deploy, BOOL p2) { return _i(0xB251E0B33E58B424, vehicle, deploy, p2); } // 0xb251e0b33e58b424B1290 - // Only used with the "akula" and "annihilator2" in the decompiled native scripts. - inline BOOL AreFoldingWingsDeployed(Vehicle vehicle) { return _i(0xAEF12960FA943792, vehicle); } // 0xaef12960fa943792B1290 - inline Void SetDeployMissileBays(Vehicle vehicle, BOOL deploy) { return _i(0x0C02468829E4AA65, vehicle, deploy); } // 0x0c02468829e4aa65B2944 - inline BOOL AreMissileBaysDeployed(Vehicle vehicle) { return _i(0xEA4743874D515F13, vehicle); } // 0xea4743874d515f13B2944 - inline Void SetDipStraightDownWhenCrashingPlane(Vehicle vehicle, BOOL toggle) { return _i(0xAA653AE61924B0A0, vehicle, toggle); } // 0xaa653ae61924b0a0B1290 - // Toggles specific flag on turret - inline Void SetTurretHidden(Vehicle vehicle, int index, BOOL toggle) { return _i(0xC60060EB0D8AC7B1, vehicle, index, toggle); } // 0xc60060eb0d8ac7b1B1290 - inline Void SetHoverModeWingRatio(Vehicle vehicle, float ratio) { return _i(0x70A252F60A3E036B, vehicle, ratio); } // 0x70a252f60a3e036bB1365 - // Disables turret movement when called in a loop. You can still fire and aim. You cannot shoot backwards though. - inline Void SetDisableTurretMovement(Vehicle vehicle, int turretId) { return _i(0xE615BB7A7752C76A, vehicle, turretId); } // 0xe615bb7a7752c76aB1365 - inline Void SetForceFixLinkMatrices(Vehicle vehicle) { return _i(0x887FA38787DE8C72, vehicle); } // 0x887fa38787de8c72B1365 - // Affects the playback speed of the submarine car conversion animations. Does not affect hardcoded animations such as the wheels being retracted. - inline Void SetTransformRateForAnimation(Vehicle vehicle, float transformRate) { return _i(0x498218259FB7C72D, vehicle, transformRate); } // 0x498218259fb7c72dB1365 - // When set to true, the key to transform a car to submarine mode changes from raise/lower convertible roof (hold H by default) to special vehicle transform (press X by default.) - inline Void SetTransformToSubmarineUsesAlternateInput(Vehicle vehicle, BOOL toggle) { return _i(0x41B9FB92EDED32A6, vehicle, toggle); } // 0x41b9fb92eded32a6B1365 - // Does nothing. It's a nullsub. - inline Void SetVehicleCombatMode(BOOL toggle) { return _i(0x36DE109527A2C0C4, toggle); } // 0x36de109527a2c0c4B1604 - // Does nothing. It's a nullsub. - inline Void SetVehicleDetonationMode(BOOL toggle) { return _i(0x82E0AC411E41A5B4, toggle); } // 0x82e0ac411e41a5b4B1604 - // Does nothing. It's a nullsub. - inline Void SetVehicleShuntOnStick(BOOL toggle) { return _i(0x99A05839C46CE316, toggle); } // 0x99a05839c46ce316B1604 - inline BOOL GetIsVehicleShunting(Vehicle vehicle) { return _i(0xA2459F72C14E2E8D, vehicle); } // 0xa2459f72c14e2e8dB1604 - inline BOOL GetHasVehicleBeenHitByShunt(Vehicle vehicle) { return _i(0xE8718FAF591FD224, vehicle); } // 0xe8718faf591fd224B1604 - // Returns last vehicle that was rammed by the given vehicle using the shunt boost. - inline Vehicle GetLastShuntVehicle(Vehicle vehicle) { return _i(0x04F2FA6E234162F7, vehicle); } // 0x04f2fa6e234162f7B1604 - inline Void SetDisableVehicleExplosionsDamage(BOOL toggle) { return _i(0x143921E45EC44D62, toggle); } // 0x143921e45ec44d62B1604 - inline Void SetOverrideNitrousLevel(Vehicle vehicle, BOOL toggle, float level, float power, float rechargeTime, BOOL disableSound) { return _i(0xC8E9B6B71B8E660D, vehicle, toggle, level, power, rechargeTime, disableSound); } // 0xc8e9b6b71b8e660dB1604 - inline Void SetIncreaseWheelCrushDamage(Vehicle vehicle, BOOL toggle) { return _i(0x2970EAA18FD5E42F, vehicle, toggle); } // 0x2970eaa18fd5e42fB1604 - // Sets some global vehicle related bool - inline Void SetDisableWeaponBladeForces(BOOL toggle) { return _i(0x211E95CE9903940C, toggle); } // 0x211e95ce9903940cB1604 - // Changes the car jump control to require a double-tap to activate. - inline Void SetUseDoubleClickForCarJump(BOOL toggle) { return _i(0x5BBCF35BF6E456F7, toggle); } // 0x5bbcf35bf6e456f7B1604 - // Returns true only if the "tombstone" bone is attached to the vehicle, irrespective of "FLAG_HAS_TOMBSTONE" being present or not. Detaching the tombstone will return false. - inline BOOL GetDoesVehicleHaveTombstone(Vehicle vehicle) { return _i(0x71AFB258CCED3A27, vehicle); } // 0x71afb258cced3a27B1604 - // Disables detachable bumber from domnator4, dominator5, dominator6, see https://gfycat.com/SecondUnluckyGosling - inline Void HideTombstone(Vehicle vehicle, BOOL toggle) { return _i(0xAE71FB656C600587, vehicle, toggle); } // 0xae71fb656c600587B1604 - // Returns whether this vehicle is currently disabled by an EMP mine. - inline BOOL GetIsVehicleDisabledByEmp(Vehicle vehicle) { return _i(0x0506ED94363AD905, vehicle); } // 0x0506ed94363ad905B1604 - inline Void SetDisableRetractingWeaponBlades(BOOL toggle) { return _i(0x8F0D5BA1C2CC91D7, toggle); } // 0x8f0d5ba1c2cc91d7B1604 - // Usable wheels: - // 0: wheel_lf - // 1: wheel_rf - // 2: wheel_lm1 - // 3: wheel_rm1 - // 4: wheel_lr - // 5: wheel_rr - inline float GetTyreHealth(Vehicle vehicle, int wheelIndex) { return _i(0x55EAB010FAEE9380, vehicle, wheelIndex); } // 0x55eab010faee9380B1868 - // SetTyreWearRate must be active, otherwise values set to <1000.0f will default to 350.0f - // - // Usable wheels: - // 0: wheel_lf - // 1: wheel_rf - // 2: wheel_lm1 - // 3: wheel_rm1 - // 4: wheel_lr - // 5: wheel_rr - inline Void SetTyreHealth(Vehicle vehicle, int wheelIndex, float health) { return _i(0x74C68EF97645E79D, vehicle, wheelIndex, health); } // 0x74c68ef97645e79dB1868 - // Returns the multiplier value from SetTyreWearRate - // - // Usable wheels: - // 0: wheel_lf - // 1: wheel_rf - // 2: wheel_lm1 - // 3: wheel_rm1 - // 4: wheel_lr - // 5: wheel_rr - inline float GetTyreWearRate(Vehicle vehicle, int wheelIndex) { return _i(0x6E387895952F4F71, vehicle, wheelIndex); } // 0x6e387895952f4f71B2060 - // Needs to be run for tire wear to work. Multiplier affects the downforce and how fast the tires will wear out, higher values essentially make the vehicle slower on straights and its tires will wear down quicker when cornering. Value must be >0f. - // Default value in Rockstar's Open Wheel Race JSON's ("owrtws", "owrtwm", "owrtwh") is 1.0 - // - // Usable wheels: - // 0: wheel_lf - // 1: wheel_rf - // 2: wheel_lm1 - // 3: wheel_rm1 - // 4: wheel_lr - // 5: wheel_rr - inline Void SetTyreWearRate(Vehicle vehicle, int wheelIndex, float multiplier) { return _i(0x01894E2EDE923CA2, vehicle, wheelIndex, multiplier); } // 0x01894e2ede923ca2B1868 - // Controls how fast the tires wear out. - // - // Default values from Rockstar's Open Wheel Race JSON's: - // "owrtss" (Soft): 2.2 - // "owrtsm" (Medium): 1.7 - // "owrtsh" (Hard): 1.2 - // - // Usable wheels: - // 0: wheel_lf - // 1: wheel_rf - // 2: wheel_lm1 - // 3: wheel_rm1 - // 4: wheel_lr - // 5: wheel_rr - inline Void SetTyreWearRateScale(Vehicle vehicle, int wheelIndex, float multiplier) { return _i(0x392183BB9EA57697, vehicle, wheelIndex, multiplier); } // 0x392183bb9ea57697B2060 - // Controls how much traction the wheel loses. - // - // Default values from Rockstar's Open Wheel Race JSON's: - // "owrtds" (Soft): 0.05 - // "owrtdm" (Medium): 0.45 - // "owrtdh" (Hard): 0.8 - // - // Usable wheels: - // 0: wheel_lf - // 1: wheel_rf - // 2: wheel_lm1 - // 3: wheel_rm1 - // 4: wheel_lr - // 5: wheel_rr - inline Void SetTyreMaximumGripDifferenceDueToWearRate(Vehicle vehicle, int wheelIndex, float multiplier) { return _i(0xC970D0E0FC31D768, vehicle, wheelIndex, multiplier); } // 0xc970d0e0fc31d768B2060 - inline Void SetAircraftIgnoreHightmapOptimisation(Vehicle vehicle, int p1) { return _i(0xF8B49F5BA7F850E7, vehicle, p1); } // 0xf8b49f5ba7f850e7B2060 - // Lowers the vehicle's stance. Only works for vehicles that have strAdvancedFlags 0x8000 and 0x4000000 set. - inline Void SetReducedSuspensionForce(Vehicle vehicle, BOOL enable) { return _i(0x3A375167F5782A65, vehicle, enable); } // 0x3a375167f5782a65B2372 - inline Void SetDriftTyres(Vehicle vehicle, BOOL toggle) { return _i(0x5AC79C98C5C17F05, vehicle, toggle); } // 0x5ac79c98c5c17f05B2372 - inline BOOL GetDriftTyresSet(Vehicle vehicle) { return _i(0x2F5A72430E78C8D3, vehicle); } // 0x2f5a72430e78c8d3B2372 - // Implemented only for trains. - inline Void NetworkUseHighPrecisionTrainBlending(Vehicle vehicle, BOOL toggle) { return _i(0xEC0C1D4922AF9754, vehicle, toggle); } // 0xec0c1d4922af9754B2372 - // Only used in R* Script fm_content_cargo - inline Void SetCheckForEnoughRoomForPed(Vehicle vehicle, BOOL p1) { return _i(0xEF9D388F8D377F44, vehicle, p1); } // 0xef9d388f8d377f44B2699 + // p7 when set to true allows you to spawn vehicles under -100 z. + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline Vehicle CreateVehicle(Hash modelHash, float x, float y, float z, float heading, BOOL isNetwork, BOOL bScriptHostVeh, BOOL p7) { return _i(0xAF35D0D2583051B0, modelHash, x, y, z, heading, isNetwork, bScriptHostVeh, p7); } // 0xaf35d0d2583051b00xdd75460aB323 + // Deletes a vehicle. + // The vehicle must be a mission entity to delete, so call this before deleting: SetEntityAsMissionEntity(vehicle, true, true); + // + // eg how to use: + // SetEntityAsMissionEntity(vehicle, true, true); + // DeleteVehicle(&vehicle); + // + // Deletes the specified vehicle, then sets the handle pointed to by the pointer to NULL. + inline Void DeleteVehicle(Vehicle* vehicle) { return _i(0xEA386986E786A54F, vehicle); } // 0xea386986e786a54f0x9803af60B323 + inline Void SetVehicleAllowHomingMissleLockon(Vehicle vehicle, BOOL toggle, BOOL p2) { return _i(0x7D6F9A3EF26136A0, vehicle, toggle, p2); } // 0x7d6f9a3ef26136a00xbb54eccaB323 + inline Void SetVehicleAllowHomingMissleLockonSynced(Vehicle vehicle, BOOL canBeLockedOn, BOOL p2) { return _i(0x1DDA078D12879EEE, vehicle, canBeLockedOn, p2); } // 0x1dda078d12879eeeB463 + // Makes the vehicle accept no passengers. + inline Void SetVehicleAllowNoPassengersLockon(Vehicle veh, BOOL toggle) { return _i(0x5D14D4154BFE7B2C, veh, toggle); } // 0x5d14d4154bfe7b2c0x8baac437B323 + // Returns a value depending on the lock-on state of vehicle weapons. + // 0: not locked on + // 1: locking on + // 2: locked on + inline int GetVehicleHomingLockonState(Vehicle vehicle) { return _i(0xE6B0E8CFC3633BF0, vehicle); } // 0xe6b0e8cfc3633bf00xfbde9fd8B323 + inline int GetVehicleHomingLockedontoState(Any p0) { return _i(0x6EAAEFC76ACC311F, p0); } // 0x6eaaefc76acc311fB757 + inline Void SetVehicleHomingLockedontoState(Any p0, Any p1) { return _i(0x407DC5E97DB1A4D3, p0, p1); } // 0x407dc5e97db1a4d3B1493 + inline BOOL IsVehicleModel(Vehicle vehicle, Hash model) { return _i(0x423E8DE37D934D89, vehicle, model); } // 0x423e8de37d934d890x013b10b6B323 + inline BOOL DoesScriptVehicleGeneratorExist(int vehicleGenerator) { return _i(0xF6086BC836400876, vehicleGenerator); } // 0xf6086bc8364008760xf6bdda30B323 + // Creates a script vehicle generator at the given coordinates. Most parameters after the model hash are unknown. + // + // Parameters: + // x/y/z - Generator position + // heading - Generator heading + // p4 - Unknown (always 5.0) + // p5 - Unknown (always 3.0) + // modelHash - Vehicle model hash + // p7/8/9/10 - Unknown (always -1) + // p11 - Unknown (usually TRUE, only one instance of FALSE) + // p12/13 - Unknown (always FALSE) + // p14 - Unknown (usally FALSE, only two instances of TRUE) + // p15 - Unknown (always TRUE) + // p16 - Unknown (always -1) + // + // Vector3 coords = GetEntityCoords(PlayerPedId(), 0); CreateScriptVehicleGenerator(coords.x, coords.y, coords.z, 1.0f, 5.0f, 3.0f, GetHashKey("adder"), -1. -1, -1, -1, -1, true, false, false, false, true, -1); + inline int CreateScriptVehicleGenerator(float x, float y, float z, float heading, float p4, float p5, Hash modelHash, int p7, int p8, int p9, int p10, BOOL p11, BOOL p12, BOOL p13, BOOL p14, BOOL p15, int p16) { return _i(0x9DEF883114668116, x, y, z, heading, p4, p5, modelHash, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16); } // 0x9def8831146681160x25a9a261B323 + inline Void DeleteScriptVehicleGenerator(int vehicleGenerator) { return _i(0x22102C9ABFCF125D, vehicleGenerator); } // 0x22102c9abfcf125d0xe4328e3fB323 + // Only called once in the decompiled scripts. Presumably activates the specified generator. + inline Void SetScriptVehicleGenerator(int vehicleGenerator, BOOL enabled) { return _i(0xD9D620E0AC6DC4B0, vehicleGenerator, enabled); } // 0xd9d620e0ac6dc4b00x40d73747B323 + // When p6 is true, vehicle generators are active. + // p7 seems to always be true in story mode scripts, but it's sometimes false in online scripts. + inline Void SetAllVehicleGeneratorsActiveInArea(float x1, float y1, float z1, float x2, float y2, float z2, BOOL toggle, BOOL p7) { return _i(0xC12321827687FE4D, x1, y1, z1, x2, y2, z2, toggle, p7); } // 0xc12321827687fe4d0xb4e0e69aB323 + inline Void SetAllVehicleGeneratorsActive() { return _i(0x34AD89078831A4BC); } // 0x34ad89078831a4bc0xab1fdd76B323 + inline Void SetAllLowPriorityVehicleGeneratorsActive(BOOL active) { return _i(0x608207E7A8FB787C, active); } // 0x608207e7a8fb787c0x87f767f2B323 + // Related to car generators & CPlayerSwitchMgrLong + inline Void SetVehicleGeneratorAreaOfInterest(float x, float y, float z, float radius) { return _i(0x9A75585FB2E54FAD, x, y, z, radius); } // 0x9a75585fb2e54fad0x935a95daB323 + inline Void ClearVehicleGeneratorAreaOfInterest() { return _i(0x0A436B8643716D14); } // 0x0a436b8643716d140x6c73e45aB323 + // Sets a vehicle on the ground on all wheels. Returns whether or not the operation was successful. + // + // sfink: This has an additional param(Vehicle vehicle, float p1) which is always set to 5.0f in the b944 scripts. + inline BOOL SetVehicleOnGroundProperly(Vehicle vehicle, float p1) { return _i(0x49733E92263139D1, vehicle, p1); } // 0x49733e92263139d10xe14fdba6B323 + inline BOOL SetVehicleUseCutsceneWheelCompression(Vehicle p0, BOOL p1, BOOL p2, BOOL p3) { return _i(0xE023E8AC4EF7C117, p0, p1, p2, p3); } // 0xe023e8ac4ef7c1170xa0909adbB323 + inline BOOL IsVehicleStuckOnRoof(Vehicle vehicle) { return _i(0xB497F06B288DCFDF, vehicle); } // 0xb497f06b288dcfdf0x18d07c6cB323 + inline Void AddVehicleUpsidedownCheck(Vehicle vehicle) { return _i(0xB72E26D81006005B, vehicle); } // 0xb72e26d81006005b0x3a13d384B323 + inline Void RemoveVehicleUpsidedownCheck(Vehicle vehicle) { return _i(0xC53EB42A499A7E90, vehicle); } // 0xc53eb42a499a7e900xf390ba1bB323 + // Returns true if the vehicle's current speed is less than, or equal to 0.0025f. + // + // For some vehicles it returns true if the current speed is <= 0.00039999999. + inline BOOL IsVehicleStopped(Vehicle vehicle) { return _i(0x5721B434AD84D57A, vehicle); } // 0x5721b434ad84d57a0x655f072cB323 + // Gets the number of passengers. + // + // This native was modified in b2545 to take two additional parameters, allowing you to include the driver or exclude dead passengers. + // + // To keep it working like before b2545, set includeDriver to false and includeDeadOccupants to true. + inline int GetVehicleNumberOfPassengers(Vehicle vehicle, BOOL includeDriver, BOOL includeDeadOccupants) { return _i(0x24CB2137731FFE89, vehicle, includeDriver, includeDeadOccupants); } // 0x24cb2137731ffe890x1ef20849B323 + inline int GetVehicleMaxNumberOfPassengers(Vehicle vehicle) { return _i(0xA7C4F2C6E744A550, vehicle); } // 0xa7c4f2c6e744a5500x0a2fc08cB323 + // Returns max number of passengers (including the driver) for the specified vehicle model. + // + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline int GetVehicleModelNumberOfSeats(Hash modelHash) { return _i(0x2AD93716F184EDA4, modelHash); } // 0x2ad93716f184eda40x838f7bf7B323 + inline BOOL IsSeatWarpOnly(Vehicle vehicle, int seatIndex) { return _i(0xF7F203E31F96F6A1, vehicle, seatIndex); } // 0xf7f203e31f96f6a10x769e5cf2B323 + inline BOOL IsTurretSeat(Vehicle vehicle, int seatIndex) { return _i(0xE33FFA906CE74880, vehicle, seatIndex); } // 0xe33ffa906ce748800x7c43d32aB323 + // Returns true if the vehicle has the FLAG_ALLOWS_RAPPEL flag set. + inline BOOL DoesVehicleAllowRappel(Vehicle vehicle) { return _i(0x4E417C547182C84D, vehicle); } // 0x4e417c547182c84dB757 + // Use this native inside a looped function. + // Values: + // - `0.0` = no vehicles on streets + // - `1.0` = normal vehicles on streets + inline Void SetVehicleDensityMultiplierThisFrame(float multiplier) { return _i(0x245A6883D966D537, multiplier); } // 0x245a6883d966d5370xf4187e51B323 + inline Void SetRandomVehicleDensityMultiplierThisFrame(float multiplier) { return _i(0xB3B3359379FE77D3, multiplier); } // 0xb3b3359379fe77d30x543f712bB323 + inline Void SetParkedVehicleDensityMultiplierThisFrame(float multiplier) { return _i(0xEAE6DCC7EEE3DB1D, multiplier); } // 0xeae6dcc7eee3db1d0xdd46cebeB323 + inline Void SetDisableRandomTrainsThisFrame(BOOL toggle) { return _i(0xD4B8E3D1917BC86B, toggle); } // 0xd4b8e3d1917bc86b0x09462665B323 + inline Void SetAmbientVehicleRangeMultiplierThisFrame(float value) { return _i(0x90B6DA738A9A25DA, value); } // 0x90b6da738a9a25da0xdae2a2beB323 + inline Void SetFarDrawVehicles(BOOL toggle) { return _i(0x26324F33423F3CC3, toggle); } // 0x26324f33423f3cc30x9f019c49B323 + inline Void SetNumberOfParkedVehicles(int value) { return _i(0xCAA15F13EBD417FF, value); } // 0xcaa15f13ebd417ff0x206a58e8B323 + // enum eVehicleLockState + // { + // VEHICLELOCK_NONE, + // VEHICLELOCK_UNLOCKED, + // VEHICLELOCK_LOCKED, + // VEHICLELOCK_LOCKOUT_PLAYER_ONLY, + // VEHICLELOCK_LOCKED_PLAYER_INSIDE, + // VEHICLELOCK_LOCKED_INITIALLY, + // VEHICLELOCK_FORCE_SHUT_DOORS, + // VEHICLELOCK_LOCKED_BUT_CAN_BE_DAMAGED, + // VEHICLELOCK_LOCKED_BUT_BOOT_UNLOCKED, + // VEHICLELOCK_LOCKED_NO_PASSENGERS, + // VEHICLELOCK_CANNOT_ENTER + // }; + inline Void SetVehicleDoorsLocked(Vehicle vehicle, int doorLockStatus) { return _i(0xB664292EAECF7FA6, vehicle, doorLockStatus); } // 0xb664292eaecf7fa60x4cdd35d0B323 + // doorId: see SetVehicleDoorShut + inline Void SetVehicleIndividualDoorsLocked(Vehicle vehicle, int doorId, int doorLockStatus) { return _i(0xBE70724027F85BCD, vehicle, doorId, doorLockStatus); } // 0xbe70724027f85bcd0xd61d182dB323 + // If set to true, prevents vehicle sirens from having sound, leaving only the lights. + inline Void SetVehicleHasMutedSirens(Vehicle vehicle, BOOL toggle) { return _i(0xD8050E0EB60CF274, vehicle, toggle); } // 0xd8050e0eb60cf2740xc54156a9B323 + inline Void SetVehicleDoorsLockedForPlayer(Vehicle vehicle, Player player, BOOL toggle) { return _i(0x517AAF684BB50CD1, vehicle, player, toggle); } // 0x517aaf684bb50cd10x49829236B323 + inline BOOL GetVehicleDoorsLockedForPlayer(Vehicle vehicle, Player player) { return _i(0xF6AF6CB341349015, vehicle, player); } // 0xf6af6cb3413490150x1dc50247B323 + // After some analysis, I've decided that these are what the parameters are. + // + // We can see this being used in R* scripts such as "am_mp_property_int.ysc.c4": + // l_11A1 = PED::GetVehiclePedIsIn(PLAYER::PlayerPedId(), 1); + // ... + // VEHICLE::SetVehicleDoorsLockedForAllPlayers(l_11A1, 1); + inline Void SetVehicleDoorsLockedForAllPlayers(Vehicle vehicle, BOOL toggle) { return _i(0xA2F80B8D040727CC, vehicle, toggle); } // 0xa2f80b8d040727cc0x891ba8a4B323 + inline Void SetVehicleDoorsLockedForNonScriptPlayers(Vehicle vehicle, BOOL toggle) { return _i(0x9737A37136F07E75, vehicle, toggle); } // 0x9737a37136f07e750xe4ef6514B323 + inline Void SetVehicleDoorsLockedForTeam(Vehicle vehicle, int team, BOOL toggle) { return _i(0xB81F6D4A8F5EEBA8, vehicle, team, toggle); } // 0xb81f6d4a8f5eeba80x4f85e783B323 + inline Void SetVehicleDoorsLockedForAllTeams(Vehicle vehicle, BOOL toggle) { return _i(0x203B527D1B77904C, vehicle, toggle); } // 0x203b527d1b77904cB1365 + inline Void SetVehicleDontTerminateTaskWhenAchieved(Vehicle vehicle) { return _i(0x76D26A22750E849E, vehicle); } // 0x76d26a22750e849eB1103 + // 0.0f = engine rev minimum + // 1.0f = engine rev limit + inline Void SetVehicleMaxLaunchEngineRevs(Vehicle vehicle, float modifier) { return _i(0x5AE614ECA5FDD423, vehicle, modifier); } // 0x5ae614eca5fdd423B3095 + inline float GetVehicleThrottle(Vehicle vehicle) { return _i(0x92D96892FC06AF22, vehicle); } // 0x92d96892fc06af22B3095 + // Explodes a selected vehicle. + // + // Vehicle vehicle = Vehicle you want to explode. + // BOOL isAudible = If explosion makes a sound. + // BOOL isInvisible = If the explosion is invisible or not. + // + // First BOOL does not give any visual explosion, the vehicle just falls apart completely but slowly and starts to burn. + inline Void ExplodeVehicle(Vehicle vehicle, BOOL isAudible, BOOL isInvisible) { return _i(0xBA71116ADF5B514C, vehicle, isAudible, isInvisible); } // 0xba71116adf5b514c0xbedeacebB323 + // Tested on the player's current vehicle. Unless you kill the driver, the vehicle doesn't loose control, however, if enabled, explodeOnImpact is still active. The moment you crash, boom. + inline Void SetVehicleOutOfControl(Vehicle vehicle, BOOL killDriver, BOOL explodeOnImpact) { return _i(0xF19D095E42D430CC, vehicle, killDriver, explodeOnImpact); } // 0xf19d095e42d430cc0x3764d734B323 + inline Void SetVehicleTimedExplosion(Vehicle vehicle, Ped ped, BOOL toggle) { return _i(0x2E0A74E1002380B1, vehicle, ped, toggle); } // 0x2e0a74e1002380b10xdb8cb8e2B323 + inline Void AddVehiclePhoneExplosiveDevice(Vehicle vehicle) { return _i(0x99AD4CCCB128CBC9, vehicle); } // 0x99ad4cccb128cbc90x811373deB323 + inline Void ClearVehiclePhoneExplosiveDevice() { return _i(0xAA3F739ABDDCF21F); } // 0xaa3f739abddcf21fB463 + inline BOOL HasVehiclePhoneExplosiveDevice() { return _i(0x6ADAABD3068C5235); } // 0x6adaabd3068c52350xa4e69134B323 + inline Void DetonateVehiclePhoneExplosiveDevice() { return _i(0xEF49CF0270307CBE); } // 0xef49cf0270307cbe0x65255524B323 + inline BOOL HaveVehicleRearDoorsBeenBlownOpenByStickybomb(Vehicle vehicle) { return _i(0x6B407F2525E93644, vehicle); } // 0x6b407f2525e93644B2944 + // This is not tested - it's just an assumption. + // - Nac + // + // Doesn't seem to work. I'll try with an int instead. --JT + // + // Read the scripts, im dumpass. + // + // if (!VEHICLE::IsTaxiLightOn(l_115)) { + // VEHICLE::SetTaxiLights(l_115, 1); + // } + inline Void SetTaxiLights(Vehicle vehicle, BOOL state) { return _i(0x598803E85E8448D9, vehicle, state); } // 0x598803e85e8448d90x68639d85B323 + inline BOOL IsTaxiLightOn(Vehicle vehicle) { return _i(0x7504C0F113AB50FC, vehicle); } // 0x7504c0f113ab50fc0x6fc4924aB323 + // garageName example "Michael - Beverly Hills" + // + // Full list of garages by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/garages.json + inline BOOL IsVehicleInGarageArea(String garageName, Vehicle vehicle) { return _i(0xCEE4490CD57BB3C2, garageName, vehicle); } // 0xcee4490cd57bb3c20xa90ec257B323 + // colorPrimary & colorSecondary are the paint index for the vehicle. + // For a list of valid paint indexes, view: https://pastebin.com/pwHci0xK + // ------------------------------------------------------------------------- + // Note: minimum color index is 0, maximum color index is (numColorIndices - 1) + // + // Full list of vehicle colors by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json + inline Void SetVehicleColours(Vehicle vehicle, int colorPrimary, int colorSecondary) { return _i(0x4F1D4BE3A7F24601, vehicle, colorPrimary, colorSecondary); } // 0x4f1d4be3a7f246010x57f24253B323 + // It switch to highbeam when p1 is set to true. + inline Void SetVehicleFullbeam(Vehicle vehicle, BOOL toggle) { return _i(0x8B7FD87F0DDB421E, vehicle, toggle); } // 0x8b7fd87f0ddb421e0x9c49cc15B323 + // p1 (toggle) was always 1 (true) except in one case in the b678 scripts. + inline Void SetVehicleIsRacing(Vehicle vehicle, BOOL toggle) { return _i(0x07116E24E9D1929D, vehicle, toggle); } // 0x07116e24e9d1929d0xa59e3dcdB323 + // p1, p2, p3 are RGB values for color (255,0,0 for Red, ect) + inline Void SetVehicleCustomPrimaryColour(Vehicle vehicle, int r, int g, int b) { return _i(0x7141766F91D15BEA, vehicle, r, g, b); } // 0x7141766f91d15bea0x8df9f9bcB323 + inline Void GetVehicleCustomPrimaryColour(Vehicle vehicle, int* r, int* g, int* b) { return _i(0xB64CF2CCA9D95F52, vehicle, r, g, b); } // 0xb64cf2cca9d95f520x1c2b9fefB323 + inline Void ClearVehicleCustomPrimaryColour(Vehicle vehicle) { return _i(0x55E1D2758F34E437, vehicle); } // 0x55e1d2758f34e4370x51e1e33dB323 + inline BOOL GetIsVehiclePrimaryColourCustom(Vehicle vehicle) { return _i(0xF095C0405307B21B, vehicle); } // 0xf095c0405307b21b0xd7ec8760B323 + // p1, p2, p3 are RGB values for color (255,0,0 for Red, ect) + inline Void SetVehicleCustomSecondaryColour(Vehicle vehicle, int r, int g, int b) { return _i(0x36CED73BFED89754, vehicle, r, g, b); } // 0x36ced73bfed897540x9d77259eB323 + inline Void GetVehicleCustomSecondaryColour(Vehicle vehicle, int* r, int* g, int* b) { return _i(0x8389CD56CA8072DC, vehicle, r, g, b); } // 0x8389cd56ca8072dc0x3ff247a2B323 + inline Void ClearVehicleCustomSecondaryColour(Vehicle vehicle) { return _i(0x5FFBDEEC3E8E2009, vehicle); } // 0x5ffbdeec3e8e20090x7ce00b29B323 + // Check if Vehicle Secondary is avaliable for customize + inline BOOL GetIsVehicleSecondaryColourCustom(Vehicle vehicle) { return _i(0x910A32E7AAD2656C, vehicle); } // 0x910a32e7aad2656c0x288ad228B323 + // The parameter fade is a value from 0-1, where 0 is fresh paint. + inline Void SetVehicleEnveffScale(Vehicle vehicle, float fade) { return _i(0x3AFDC536C3D01674, vehicle, fade); } // 0x3afdc536c3d016740x8332730cB323 + // The result is a value from 0-1, where 0 is fresh paint. + inline float GetVehicleEnveffScale(Vehicle vehicle) { return _i(0xA82819CAC9C4C403, vehicle); } // 0xa82819cac9c4c4030xd5f1eee1B323 + // Hardcoded to not work in multiplayer. + inline Void SetCanResprayVehicle(Vehicle vehicle, BOOL state) { return _i(0x52BBA29D5EC69356, vehicle, state); } // 0x52bba29d5ec693560x37677590B323 + // Used for GTAO CEO/Associate spawned vehicles. + inline Void SetGoonBossVehicle(Vehicle vehicle, BOOL toggle) { return _i(0xAB31EF4DE6800CE9, vehicle, toggle); } // 0xab31ef4de6800ce9B573 + inline Void SetOpenRearDoorsOnExplosion(Vehicle vehicle, BOOL toggle) { return _i(0x1B212B26DD3C04DF, vehicle, toggle); } // 0x1b212b26dd3c04dfB757 + inline Void ForceSubmarineSurfaceMode(Vehicle vehicle, BOOL toggle) { return _i(0x33506883545AC0DF, vehicle, toggle); } // 0x33506883545ac0df0x54e9ee75B323 + inline Void ForceSubmarineNeurtalBuoyancy(Any p0, Any p1) { return _i(0xC67DB108A9ADE3BE, p0, p1); } // 0xc67db108a9ade3beB2189 + inline Void SetSubmarineCrushDepths(Vehicle vehicle, BOOL p1, float depth1, float depth2, float depth3) { return _i(0xC59872A5134879C7, vehicle, p1, depth1, depth2, depth3); } // 0xc59872a5134879c70x4a46e814B323 + inline BOOL GetSubmarineIsUnderDesignDepth(Vehicle submarine) { return _i(0x3E71D0B300B7AA79, submarine); } // 0x3e71d0b300b7aa79B2189 + inline int GetSubmarineNumberOfAirLeaks(Vehicle submarine) { return _i(0x093D6DDCA5B8FBAE, submarine); } // 0x093d6ddca5b8fbaeB2189 + inline Void SetBoatIgnoreLandProbes(Any p0, Any p1) { return _i(0xED5EDE9E676643C9, p0, p1); } // 0xed5ede9e676643c9B944 + // Use the vehicle bounds (instead of viewport) when deciding if a vehicle is sufficiently above the water (waterheight.dat), bypassing wave simulation checks + inline Void SetBoundsAffectWaterProbes(Vehicle vehicle, BOOL toggle) { return _i(0x85FC953F6C6CBDE1, vehicle, toggle); } // 0x85fc953f6c6cbde1B2802 + inline Void SetBoatAnchor(Vehicle vehicle, BOOL toggle) { return _i(0x75DBEC174AEEAD10, vehicle, toggle); } // 0x75dbec174aeead100xa3906284B323 + inline BOOL CanAnchorBoatHere(Vehicle vehicle) { return _i(0x26C10ECBDA5D043B, vehicle); } // 0x26c10ecbda5d043b0xe97a4f5eB323 + inline BOOL CanAnchorBoatHereIgnorePlayers(Vehicle vehicle) { return _i(0x24F4121D07579880, vehicle); } // 0x24f4121d07579880B678 + inline Void SetBoatRemainsAnchoredWhilePlayerIsDriver(Vehicle vehicle, BOOL toggle) { return _i(0xE3EBAAE484798530, vehicle, toggle); } // 0xe3ebaae4847985300x0ed84792B323 + // No observed effect. + inline Void SetForceLowLodAnchorMode(Vehicle vehicle, BOOL p1) { return _i(0xB28B1FE5BFADD7F5, vehicle, p1); } // 0xb28b1fe5bfadd7f50xa739012aB323 + inline Void SetBoatLowLodAnchorDistance(Vehicle vehicle, float value) { return _i(0xE842A9398079BD82, vehicle, value); } // 0xe842a9398079bd820x66fa450cB323 + inline BOOL IsBoatAnchored(Vehicle vehicle) { return _i(0xB0AD1238A709B1A2, vehicle); } // 0xb0ad1238a709b1a2B573 + inline Void SetBoatSinksWhenWrecked(Vehicle vehicle, BOOL toggle) { return _i(0x8F719973E1445BA2, vehicle, toggle); } // 0x8f719973e1445ba20x35614622B323 + inline Void SetBoatWrecked(Vehicle vehicle) { return _i(0xBD32E46AA95C1DD2, vehicle); } // 0xbd32e46aa95c1dd2B757 + // Activate siren on vehicle (Only works if the vehicle has a siren). + inline Void SetVehicleSiren(Vehicle vehicle, BOOL toggle) { return _i(0xF4924635A19EB37D, vehicle, toggle); } // 0xf4924635a19eb37d0x4ac1efc7B323 + inline BOOL IsVehicleSirenOn(Vehicle vehicle) { return _i(0x4C9BF537BE2634B2, vehicle); } // 0x4c9bf537be2634b20x25eb5873B323 + inline BOOL IsVehicleSirenAudioOn(Vehicle vehicle) { return _i(0xB5CC40FBCB586380, vehicle); } // 0xb5cc40fbcb5863800xc9458688B323 + // If set to true, vehicle will not take crash damage, but is still susceptible to damage from bullets and explosives + inline Void SetVehicleStrong(Vehicle vehicle, BOOL toggle) { return _i(0x3E8C8727991A8A0B, vehicle, toggle); } // 0x3e8c8727991a8a0b0xc758d19fB323 + inline Void RemoveVehicleStuckCheck(Vehicle vehicle) { return _i(0x8386BFB614D06749, vehicle); } // 0x8386bfb614d067490x81594917B323 + inline Void GetVehicleColours(Vehicle vehicle, int* colorPrimary, int* colorSecondary) { return _i(0xA19435F193E081AC, vehicle, colorPrimary, colorSecondary); } // 0xa19435f193e081ac0x40d82d88B323 + // Check if a vehicle seat is free. + // + // seatIndex = -1 being the driver seat. + // Use GetVehicleMaxNumberOfPassengers(vehicle) - 1 for last seat index. + // isTaskRunning = on true the function returns already false while a task on the target seat is running (TaskEnterVehicle/TaskShuffleToNextVehicleSeat) - on false only when a ped is finally sitting in the seat. + inline BOOL IsVehicleSeatFree(Vehicle vehicle, int seatIndex, BOOL isTaskRunning) { return _i(0x22AC59A870E6A669, vehicle, seatIndex, isTaskRunning); } // 0x22ac59a870e6a6690xdaf42b02B323 + // If there is no ped in the seat, and the game considers the vehicle as ambient population, this will create a random occupant ped in the seat, which may be cleaned up by the game fairly soon if not marked as script-owned mission entity. + // + // Seat indexes: + // -1 = Driver + // 0 = Front Right Passenger + // 1 = Back Left Passenger + // 2 = Back Right Passenger + // 3 = Further Back Left Passenger (vehicles > 4 seats) + // 4 = Further Back Right Passenger (vehicles > 4 seats) + // etc. + // + // If p2 is true it uses a different GetOccupant function. + inline Ped GetPedInVehicleSeat(Vehicle vehicle, int seatIndex, BOOL p2) { return _i(0xBB40DD2270B65366, vehicle, seatIndex, p2); } // 0xbb40dd2270b653660x388fde9aB323 + inline Ped GetLastPedInVehicleSeat(Vehicle vehicle, int seatIndex) { return _i(0x83F969AA1EE2A664, vehicle, seatIndex); } // 0x83f969aa1ee2a6640xf7c6792dB323 + inline BOOL GetVehicleLightsState(Vehicle vehicle, BOOL* lightsOn, BOOL* highbeamsOn) { return _i(0xB91B4C20085BD12F, vehicle, lightsOn, highbeamsOn); } // 0xb91b4c20085bd12f0x7c278621B323 + // wheelID used for 4 wheelers seem to be (0, 1, 4, 5) + // completely - is to check if tire completely gone from rim. + // + // '0 = wheel_lf / bike, plane or jet front + // '1 = wheel_rf + // '2 = wheel_lm / in 6 wheels trailer, plane or jet is first one on left + // '3 = wheel_rm / in 6 wheels trailer, plane or jet is first one on right + // '4 = wheel_lr / bike rear / in 6 wheels trailer, plane or jet is last one on left + // '5 = wheel_rr / in 6 wheels trailer, plane or jet is last one on right + // '45 = 6 wheels trailer mid wheel left + // '47 = 6 wheels trailer mid wheel right + inline BOOL IsVehicleTyreBurst(Vehicle vehicle, int wheelID, BOOL completely) { return _i(0xBA291848A0815CA9, vehicle, wheelID, completely); } // 0xba291848a0815ca90x48c80210B323 + // SCALE: Setting the speed to 30 would result in a speed of roughly 60mph, according to speedometer. + // + // Speed is in meters per second + // You can convert meters/s to mph here: + // http://www.calculateme.com/Speed/MetersperSecond/ToMilesperHour.htm + inline Void SetVehicleForwardSpeed(Vehicle vehicle, float speed) { return _i(0xAB54A438726D25D5, vehicle, speed); } // 0xab54a438726d25d50x69880d14B323 + // Seems to be identical to SetVehicleForwardSpeed + inline Void SetVehicleForwardSpeedXy(Vehicle vehicle, float speed) { return _i(0x6501129C9E0FFA05, vehicle, speed); } // 0x6501129c9e0ffa05B877 + // This native makes the vehicle stop immediately, as happens when we enter a MP garage. + // + // . distance defines how far it will travel until stopping. Garage doors use 3.0. + // + // . If killEngine is set to 1, you cannot resume driving the vehicle once it stops. This looks like is a bitmapped integer. + inline Void BringVehicleToHalt(Vehicle vehicle, float distance, int duration, BOOL p3) { return _i(0x260BE8F09E326A20, vehicle, distance, duration, p3); } // 0x260be8f09e326a200xcbc7d3c8B323 + inline Void SetVehicleSteerForBuildings(Vehicle vehicle, Any p1) { return _i(0xDCE97BDF8A0EABC8, vehicle, p1); } // 0xdce97bdf8a0eabc8B1103 + inline Void SetVehicleCausesSwerving(Vehicle vehicle, BOOL toggle) { return _i(0x9849DE24FCF23CCC, vehicle, toggle); } // 0x9849de24fcf23cccB1604 + inline Void SetIgnorePlanesSmallPitchChange(Any p0, Any p1) { return _i(0x8664170EF165C4A6, p0, p1); } // 0x8664170ef165c4a6B2189 + // Stops CTaskBringVehicleToHalt + inline Void StopBringingVehicleToHalt(Vehicle vehicle) { return _i(0x7C06330BFDDA182E, vehicle); } // 0x7c06330bfdda182eB1103 + // Returns true if vehicle is halted by BringVehicleToHalt + inline BOOL IsVehicleBeingBroughtToHalt(Vehicle vehicle) { return _i(0xC69BB1D832A710EF, vehicle); } // 0xc69bb1d832a710efB1493 + inline Void LowerForkliftForks(Vehicle forklift) { return _i(0x923A293361DF44E5, forklift); } // 0x923a293361df44e5B2802 + // 0.0 = Lowest 1.0 = Highest. This is best to be used if you wanna pick-up a car since un-realistically on GTA V forklifts can't pick up much of anything due to vehicle mass. If you put this under a car then set it above 0.0 to a 'lifted-value' it will raise the car with no issue lol + inline Void SetForkliftForkHeight(Vehicle vehicle, float height) { return _i(0x37EBBF3117BD6A25, vehicle, height); } // 0x37ebbf3117bd6a250x943a6cfcB323 + inline BOOL IsEntityAttachedToHandlerFrame(Vehicle vehicle, Entity entity) { return _i(0x57715966069157AD, vehicle, entity); } // 0x57715966069157ad0x7fb25568B323 + inline BOOL IsAnyEntityAttachedToHandlerFrame(Vehicle vehicle) { return _i(0x62CA17B74C435651, vehicle); } // 0x62ca17b74c4356510x593143b9B323 + // Finds the vehicle that is carrying this entity with a handler frame. + // The model of the entity must be prop_contr_03b_ld or the function will return 0. + inline Vehicle FindHandlerVehicleContainerIsAttachedTo(Entity entity) { return _i(0x375E7FC44F21C8AB, entity); } // 0x375e7fc44f21c8ab0x70dd5e25B323 + inline BOOL IsHandlerFrameLinedUpWithContainer(Vehicle vehicle, Entity entity) { return _i(0x89D630CF5EA96D23, vehicle, entity); } // 0x89d630cf5ea96d230xfbf5536aB323 + inline Void AttachContainerToHandlerFrameWhenLinedUp(Vehicle vehicle, Entity entity) { return _i(0x6A98C2ECF57FA5D4, vehicle, entity); } // 0x6a98c2ecf57fa5d40x20ab5783B323 + inline Void DetachContainerFromHandlerFrame(Vehicle vehicle) { return _i(0x7C0043FDFF6436BC, vehicle); } // 0x7c0043fdff6436bc0x0f11d01fB323 + inline Void SetVehicleDisableHeightMapAvoidance(Vehicle vehicle, BOOL p1) { return _i(0x8AA9180DE2FEDD45, vehicle, p1); } // 0x8aa9180de2fedd450xae040377B323 + inline Void SetBoatDisableAvoidance(Vehicle vehicle, BOOL p1) { return _i(0x0A6A279F3AA4FD70, vehicle, p1); } // 0x0a6a279f3aa4fd700x4c0e4031B323 + inline BOOL IsHeliLandingAreaBlocked(Vehicle vehicle) { return _i(0x634148744F385576, vehicle); } // 0x634148744f3855760x6346b7ccB323 + // Used on helicopters and blimps during the CTaskVehicleLand task. Sets a value on the task to 10f + inline Void SetShortSlowdownForLanding(Vehicle vehicle) { return _i(0x107A473D7A6647A9, vehicle); } // 0x107a473d7a6647a9B1290 + inline Void SetHeliTurbulenceScalar(Vehicle vehicle, float p1) { return _i(0xE6F13851780394DA, vehicle, p1); } // 0xe6f13851780394da0xccb41a55B323 + // Initially used in Max Payne 3, that's why we know the name. + inline Void SetCarBootOpen(Vehicle vehicle) { return _i(0xFC40CBF7B90CA77C, vehicle); } // 0xfc40cbf7b90ca77cB877 + // "To burst tyres VEHICLE::SetVehicleTyreBurst(vehicle, 0, true, 1000.0) + // to burst all tyres type it 8 times where p1 = 0 to 7. + // + // p3 seems to be how much damage it has taken. 0 doesn't deflate them, 1000 completely deflates them. + // + // '0 = wheel_lf / bike, plane or jet front + // '1 = wheel_rf + // '2 = wheel_lm / in 6 wheels trailer, plane or jet is first one on left + // '3 = wheel_rm / in 6 wheels trailer, plane or jet is first one on right + // '4 = wheel_lr / bike rear / in 6 wheels trailer, plane or jet is last one on left + // '5 = wheel_rr / in 6 wheels trailer, plane or jet is last one on right + // '45 = 6 wheels trailer mid wheel left + // '47 = 6 wheels trailer mid wheel right + inline Void SetVehicleTyreBurst(Vehicle vehicle, int index, BOOL onRim, float p3) { return _i(0xEC6A202EE4960385, vehicle, index, onRim, p3); } // 0xec6a202ee49603850x89d28068B323 + // Closes all doors of a vehicle: + inline Void SetVehicleDoorsShut(Vehicle vehicle, BOOL closeInstantly) { return _i(0x781B3D62BB013EF5, vehicle, closeInstantly); } // 0x781b3d62bb013ef50xbb1ff6e7B323 + // Allows you to toggle bulletproof tires. + inline Void SetVehicleTyresCanBurst(Vehicle vehicle, BOOL toggle) { return _i(0xEB9DC3C7D8596C46, vehicle, toggle); } // 0xeb9dc3c7d8596c460xa198db54B323 + inline BOOL GetVehicleTyresCanBurst(Vehicle vehicle) { return _i(0x678B9BB8C3F58FEB, vehicle); } // 0x678b9bb8c3f58feb0x4d76cd2fB323 + inline Void SetVehicleWheelsCanBreak(Vehicle vehicle, BOOL enabled) { return _i(0x29B18B4FD460CA8F, vehicle, enabled); } // 0x29b18b4fd460ca8f0x829ed654B323 + // doorId: see SetVehicleDoorShut + inline Void SetVehicleDoorOpen(Vehicle vehicle, int doorId, BOOL loose, BOOL openInstantly) { return _i(0x7C65DAC73C35C862, vehicle, doorId, loose, openInstantly); } // 0x7c65dac73c35c8620xbb75d38bB323 + // doorId: see SetVehicleDoorShut + // + // Usually used alongside other vehicle door natives. + inline Void SetVehicleDoorAutoLock(Vehicle vehicle, int doorId, BOOL toggle) { return _i(0x3B458DDB57038F08, vehicle, doorId, toggle); } // 0x3b458ddb57038f08B877 + inline Void SetFleeingVehiclesUseSwitchedOffNodes(Any p0) { return _i(0xA247F9EF01D8082E, p0); } // 0xa247f9ef01d8082eB1103 + // windowIndex: + // 0 = Front Right Window + // 1 = Front Left Window + // 2 = Back Right Window + // 3 = Back Left Window + // 4 = Unknown + // 5 = Unknown + // 6 = Windscreen + // 7 = Rear Windscreen + inline Void RemoveVehicleWindow(Vehicle vehicle, int windowIndex) { return _i(0xA711568EEDB43069, vehicle, windowIndex); } // 0xa711568eedb430690xbb8104a3B323 + // Roll down all the windows of the vehicle passed through the first parameter. + inline Void RollDownWindows(Vehicle vehicle) { return _i(0x85796B0549DDE156, vehicle); } // 0x85796b0549dde1560x51a16dc6B323 + // windowIndex: + // 0 = Front Left Window + // 1 = Front Right Window + // 2 = Rear Left Window + // 3 = Rear Right Window + // 4 = Front Windscreen + // 5 = Rear Windscreen + // 6 = Mid Left + // 7 = Mid Right + // 8 = Invalid + inline Void RollDownWindow(Vehicle vehicle, int windowIndex) { return _i(0x7AD9E6CE657D69E3, vehicle, windowIndex); } // 0x7ad9e6ce657d69e30xf840134cB323 + // windowIndex: + // 0 = Front Left Window + // 1 = Front Right Window + // 2 = Rear Left Window + // 3 = Rear Right Window + // 4 = Front Windscreen + // 5 = Rear Windscreen + // 6 = Mid Left + // 7 = Mid Right + // 8 = Invalid + inline Void RollUpWindow(Vehicle vehicle, int windowIndex) { return _i(0x602E548F46E24D59, vehicle, windowIndex); } // 0x602e548f46e24d590x83b7e06aB323 + // windowIndex: + // 0 = Front Left Window + // 1 = Front Right Window + // 2 = Rear Left Window + // 3 = Rear Right Window + // 4 = Front Windscreen + // 5 = Rear Windscreen + // 6 = Mid Left + // 7 = Mid Right + // 8 = Invalid + inline Void SmashVehicleWindow(Vehicle vehicle, int windowIndex) { return _i(0x9E5B5E4D2CCD2259, vehicle, windowIndex); } // 0x9e5b5e4d2ccd22590xddd9a8c2B323 + // windowIndex: + // 0 = Front Left Window + // 1 = Front Right Window + // 2 = Rear Left Window + // 3 = Rear Right Window + // 4 = Front Windscreen + // 5 = Rear Windscreen + // 6 = Mid Left + // 7 = Mid Right + // 8 = Invalid + // + // Additional information: FixVehicleWindow (0x140D0BB88) references an array of bone vehicle indices (0x141D4B3E0) { 2Ah, 2Bh, 2Ch, 2Dh, 2Eh, 2Fh, 28h, 29h } that correspond to: window_lf, window_rf, window_lr, window_rr, window_lm, window_rm, windscreen, windscreen_r. This array is used by most vehwindow natives. + // + // Also, this function is coded to not work on vehicles of type: CBike, Bmx, CBoat, CTrain, and CSubmarine. + inline Void FixVehicleWindow(Vehicle vehicle, int windowIndex) { return _i(0x772282EBEB95E682, vehicle, windowIndex); } // 0x772282ebeb95e6820x6b8e990dB323 + // Detaches the vehicle's windscreen. + // For further information, see : gtaforums.com/topic/859570-glass/#entry1068894566 + inline Void PopOutVehicleWindscreen(Vehicle vehicle) { return _i(0x6D645D59FB5F5AD3, vehicle); } // 0x6d645d59fb5f5ad30xcc95c96bB323 + // Pops off the "roof" bone in the direction of the specified offset from the vehicle. + inline Void PopOffVehicleRoofWithImpulse(Vehicle vehicle, float x, float y, float z) { return _i(0xE38CB9D7D39FDBCC, vehicle, x, y, z); } // 0xe38cb9d7d39fdbcc0xfda7b6caB323 + // set's if the vehicle has lights or not. + // not an on off toggle. + // p1 = 0 ;vehicle normal lights, off then lowbeams, then highbeams + // p1 = 1 ;vehicle doesn't have lights, always off + // p1 = 2 ;vehicle has always on lights + // p1 = 3 ;or even larger like 4,5,... normal lights like =1 + // note1: when using =2 on day it's lowbeam,highbeam + // but at night it's lowbeam,lowbeam,highbeam + // note2: when using =0 it's affected by day or night for highbeams don't exist in daytime. + inline Void SetVehicleLights(Vehicle vehicle, int state) { return _i(0x34E710FF01247C5A, vehicle, state); } // 0x34e710ff01247c5a0xe8930226B323 + inline Void SetVehicleUsePlayerLightSettings(Vehicle vehicle, BOOL toggle) { return _i(0xC45C27EF50F36ADC, vehicle, toggle); } // 0xc45c27ef50f36adc0x4221e435B323 + // p1 can be either 0, 1 or 2. + // + // Determines how vehicle lights behave when toggled. + // + // 0 = Default (Lights can be toggled between off, normal and high beams) + // 1 = Lights Disabled (Lights are fully disabled, cannot be toggled) + // 2 = Always On (Lights can be toggled between normal and high beams) + inline Void SetVehicleHeadlightShadows(Vehicle vehicle, int p1) { return _i(0x1FD09E7390A74D54, vehicle, p1); } // 0x1fd09e7390a74d54B323 + inline Void SetVehicleAlarm(Vehicle vehicle, BOOL state) { return _i(0xCDE5E70C1DDB954C, vehicle, state); } // 0xcde5e70c1ddb954c0x24877d84B323 + inline Void StartVehicleAlarm(Vehicle vehicle) { return _i(0xB8FF7AB45305C345, vehicle); } // 0xb8ff7ab45305c3450x5b451ff7B323 + inline BOOL IsVehicleAlarmActivated(Vehicle vehicle) { return _i(0x4319E335B71FFF34, vehicle); } // 0x4319e335b71fff340xf2630a4cB323 + inline Void SetVehicleInteriorlight(Vehicle vehicle, BOOL toggle) { return _i(0xBC2042F090AF6AD3, vehicle, toggle); } // 0xbc2042f090af6ad30x9ad1fe1eB323 + // Sets some bit of vehicle + inline Void SetVehicleForceInteriorlight(Vehicle vehicle, BOOL toggle) { return _i(0x8821196D91FA2DE5, vehicle, toggle); } // 0x8821196d91fa2de5B1290 + // multiplier = brightness of head lights. + // this value isn't capped afaik. + // + // multiplier = 0.0 no lights + // multiplier = 1.0 default game value + // + inline Void SetVehicleLightMultiplier(Vehicle vehicle, float multiplier) { return _i(0xB385454F8791F57C, vehicle, multiplier); } // 0xb385454f8791f57c0x48039d6aB323 + inline Void AttachVehicleToTrailer(Vehicle vehicle, Vehicle trailer, float radius) { return _i(0x3C7D42D58F770B54, vehicle, trailer, radius); } // 0x3c7d42d58f770b540x2133977fB323 + // This is the proper way of attaching vehicles to the car carrier, it's what Rockstar uses. Video Demo: https://www.youtube.com/watch?v=2lVEIzf7bgo + inline Void AttachVehicleOnToTrailer(Vehicle vehicle, Vehicle trailer, float offsetX, float offsetY, float offsetZ, float coordsX, float coordsY, float coordsZ, float rotationX, float rotationY, float rotationZ, float disableCollisions) { return _i(0x16B5E274BDE402F8, vehicle, trailer, offsetX, offsetY, offsetZ, coordsX, coordsY, coordsZ, rotationX, rotationY, rotationZ, disableCollisions); } // 0x16b5e274bde402f80x12ac1a16B323 + inline Void StabiliseEntityAttachedToHeli(Vehicle vehicle, Entity entity, float p2) { return _i(0x374706271354CB18, vehicle, entity, p2); } // 0x374706271354cb180x40c4763fB323 + inline Void DetachVehicleFromTrailer(Vehicle vehicle) { return _i(0x90532EDF0D2BDD86, vehicle); } // 0x90532edf0d2bdd860xb5dbf91dB323 + inline BOOL IsVehicleAttachedToTrailer(Vehicle vehicle) { return _i(0xE7CF3C4F9F489F0C, vehicle); } // 0xe7cf3c4f9f489f0c0xe142bbccB323 + inline Void SetTrailerInverseMassScale(Vehicle vehicle, float p1) { return _i(0x2A8F319B392E7B3F, vehicle, p1); } // 0x2a8f319b392e7b3f0xe74e85ceB323 + // in the decompiled scripts, seems to be always called on the vehicle right after being attached to a trailer. + inline Void SetTrailerLegsRaised(Vehicle vehicle) { return _i(0x95CF53B3D687F9FA, vehicle); } // 0x95cf53b3d687f9fa0x06c47a6fB323 + inline Void SetTrailerLegsLowered(Vehicle vehicle) { return _i(0x878C75C09FBDB942, vehicle); } // 0x878c75c09fbdb942B1103 + // tyreIndex = 0 to 4 on normal vehicles + // + // '0 = wheel_lf / bike, plane or jet front + // '1 = wheel_rf + // '2 = wheel_lm / in 6 wheels trailer, plane or jet is first one on left + // '3 = wheel_rm / in 6 wheels trailer, plane or jet is first one on right + // '4 = wheel_lr / bike rear / in 6 wheels trailer, plane or jet is last one on left + // '5 = wheel_rr / in 6 wheels trailer, plane or jet is last one on right + // '45 = 6 wheels trailer mid wheel left + // '47 = 6 wheels trailer mid wheel right + inline Void SetVehicleTyreFixed(Vehicle vehicle, int tyreIndex) { return _i(0x6E13FC662B882D1D, vehicle, tyreIndex); } // 0x6e13fc662b882d1d0xa42efa6bB323 + // Sets a vehicle's license plate text. 8 chars maximum. + // + // Example: + // Ped playerPed = PLAYER::PlayerPedId(); + // Vehicle veh = PED::GetVehiclePedIsUsing(playerPed); + // char *plateText = "KING"; + // VEHICLE::SetVehicleNumberPlateText(veh, plateText); + inline Void SetVehicleNumberPlateText(Vehicle vehicle, String plateText) { return _i(0x95A88F0B409CDA47, vehicle, plateText); } // 0x95a88f0b409cda470x400f9556B323 + // Returns the license plate text from a vehicle. 8 chars maximum. + inline String GetVehicleNumberPlateText(Vehicle vehicle) { return _i(0x7CE1CCB9B293020E, vehicle); } // 0x7ce1ccb9b293020e0xe8522d58B323 + // Returns the number of *types* of licence plates, enumerated below in SetVehicleNumberPlateTextIndex. + inline int GetNumberOfVehicleNumberPlates() { return _i(0x4C4D6B2644F458CB); } // 0x4c4d6b2644f458cb0xd24bc1aeB323 + // Plates: + // Blue/White - 0 + // Yellow/black - 1 + // Yellow/Blue - 2 + // Blue/White2 - 3 + // Blue/White3 - 4 + // Yankton - 5 + inline Void SetVehicleNumberPlateTextIndex(Vehicle vehicle, int plateIndex) { return _i(0x9088EB5A43FFB0A1, vehicle, plateIndex); } // 0x9088eb5a43ffb0a10xa1a1890eB323 + // Returns the PlateType of a vehicle + // Blue_on_White_1 = 3, + // Blue_on_White_2 = 0, + // Blue_on_White_3 = 4, + // Yellow_on_Blue = 2, + // Yellow_on_Black = 1, + // North_Yankton = 5, + inline int GetVehicleNumberPlateTextIndex(Vehicle vehicle) { return _i(0xF11BC2DD9A3E7195, vehicle); } // 0xf11bc2dd9a3e71950x499747b6B323 + inline Void SetRandomTrains(BOOL toggle) { return _i(0x80D9F74197EA47D9, toggle); } // 0x80d9f74197ea47d90xd461ca7fB323 + // Train models HAVE TO be loaded (requested) before you use this. + // For variation 15 - request: + // + // freight + // freightcar + // freightgrain + // freightcont1 + // freightcont2 + // freighttrailer + // + // + inline Vehicle CreateMissionTrain(int variation, float x, float y, float z, BOOL direction, Any p5, Any p6) { return _i(0x63C6CCA8E68AE8C8, variation, x, y, z, direction, p5, p6); } // 0x63c6cca8e68ae8c80xd4c2eafdB323 + // Toggles whether ambient trains can spawn on the specified track or not + // + // `trackId` is the internal id of the train track to switch. + // `state` is whether ambient trains can spawn or not + // + // trackIds + // 0 (`trains1.dat`) Main track around SA + // 1 (`trains2.dat`) Davis Quartz Quarry branch + // 2 (`trains3.dat`) Second track alongside live track along Roy Lewenstein Blv. + // 3 (`trains4.dat`) Metro track circuit + // 4 (`trains5.dat`) Branch in Mirror Park Railyard + // 5 (`trains6.dat`) Branch in Mirror Park Railyard + // 6 (`trains7.dat`) LS branch to Mirror Park Railyard + // 7 (`trains8.dat`) Overground part of metro track along Forum Dr. + // 8 (`trains9.dat`) Branch to Mirror Park Railyard + // 9 (`trains10.dat`) Yankton train + // 10 (`trains11.dat`) Part of metro track near mission row + // 11 (`trains12.dat`) Yankton prologue mission train + // Full list of all train tracks + track nodes by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/traintracks.json + inline Void SwitchTrainTrack(int trackId, BOOL state) { return _i(0xFD813BB7DB977F20, trackId, state); } // 0xfd813bb7db977f200x68bfdd61B323 + // Only called once inside main_persitant with the parameters p0 = 0, p1 = 120000 + // + // trackIndex: 0 - 26 + // Full list of all train tracks + track nodes by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/traintracks.json + inline Void SetTrainTrackSpawnFrequency(int trackIndex, int frequency) { return _i(0x21973BBF8D17EDFA, trackIndex, frequency); } // 0x21973bbf8d17edfa0xd5774fb7B323 + inline Void AllowTrainToBeRemovedByPopulation(Any p0) { return _i(0x2310A8F9421EBF43, p0); } // 0x2310a8f9421ebf43B2372 + inline Void DeleteAllTrains() { return _i(0x736A718577F39C7D); } // 0x736a718577f39c7d0x83de7abfB323 + inline Void SetTrainSpeed(Vehicle train, float speed) { return _i(0xAA0BC91BE0B796E3, train, speed); } // 0xaa0bc91be0b796e30xdfc35e4dB323 + inline Void SetTrainCruiseSpeed(Vehicle train, float speed) { return _i(0x16469284DB8C62B5, train, speed); } // 0x16469284db8c62b50xb507f51dB323 + inline Void SetRandomBoats(BOOL toggle) { return _i(0x84436EC293B1415F, toggle); } // 0x84436ec293b1415f0xb505bd89B323 + inline Void SetRandomBoatsMp(BOOL toggle) { return _i(0xDA5E12F728DB30CA, toggle); } // 0xda5e12f728db30caB2372 + inline Void SetGarbageTrucks(BOOL toggle) { return _i(0x2AFD795EEAC8D30D, toggle); } // 0x2afd795eeac8d30d0xd9abb0ffB323 + // Maximum amount of vehicles with vehicle stuck check appears to be 16. + inline BOOL DoesVehicleHaveStuckVehicleCheck(Vehicle vehicle) { return _i(0x57E4C39DE5EE8470, vehicle); } // 0x57e4c39de5ee84700x5d91d9acB323 + // See RequestVehicleRecording + inline int GetVehicleRecordingId(int recording, String script) { return _i(0x21543C612379DB3C, recording, script); } // 0x21543c612379db3c0x328d601dB323 + // Request the vehicle recording defined by the lowercase format string "%s%03d.yvr". For example, RequestVehicleRecording(1, "FBIs1UBER") corresponds to fbis1uber001.yvr. + // For all vehicle recording/playback natives, "script" is a common prefix that usually corresponds to the script/mission the recording is used in, "recording" is its int suffix, and "id" (e.g., in native GetTotalDurationOfVehicleRecordingId) corresponds to a unique identifier within the recording streaming module. + // Note that only 24 recordings (hardcoded in multiple places) can ever active at a given time before clobbering begins. + inline Void RequestVehicleRecording(int recording, String script) { return _i(0xAF514CABE74CBF15, recording, script); } // 0xaf514cabe74cbf150x91afefd9B323 + // See RequestVehicleRecording + inline BOOL HasVehicleRecordingBeenLoaded(int recording, String script) { return _i(0x300D614A4C785FC4, recording, script); } // 0x300d614a4c785fc40xf52cd7f5B323 + // See RequestVehicleRecording + inline Void RemoveVehicleRecording(int recording, String script) { return _i(0xF1160ACCF98A3FC8, recording, script); } // 0xf1160accf98a3fc80xd3c05b00B323 + inline Vector3 GetPositionOfVehicleRecordingIdAtTime(int id, float time) { return _i(0x92523B76657A517D, id, time); } // 0x92523b76657a517d0xf31973bbB323 + // This native does no interpolation between pathpoints. The same position will be returned for all times up to the next pathpoint in the recording. + // + // See RequestVehicleRecording + inline Vector3 GetPositionOfVehicleRecordingAtTime(int recording, float time, String script) { return _i(0xD242728AA6F0FBA2, recording, time, script); } // 0xd242728aa6f0fba20x7178558dB323 + inline Vector3 GetRotationOfVehicleRecordingIdAtTime(int id, float time) { return _i(0xF0F2103EFAF8CBA7, id, time); } // 0xf0f2103efaf8cba70x4d1c15c2B323 + // This native does no interpolation between pathpoints. The same rotation will be returned for all times up to the next pathpoint in the recording. + // + // See RequestVehicleRecording + inline Vector3 GetRotationOfVehicleRecordingAtTime(int recording, float time, String script) { return _i(0x2058206FBE79A8AD, recording, time, script); } // 0x2058206fbe79a8ad0xd96dec68B323 + inline float GetTotalDurationOfVehicleRecordingId(int id) { return _i(0x102D125411A7B6E6, id); } // 0x102d125411a7b6e60x7116785eB323 + // See RequestVehicleRecording + inline float GetTotalDurationOfVehicleRecording(int recording, String script) { return _i(0x0E48D1C262390950, recording, script); } // 0x0e48d1c2623909500x5b35eeb7B323 + // Distance traveled in the vehicles current recording. + inline float GetPositionInRecording(Vehicle vehicle) { return _i(0x2DACD605FC681475, vehicle); } // 0x2dacd605fc6814750x7dcd644cB323 + // Can be used with GetTotalDurationOfVehicleRecording{_ID} to compute a percentage. + inline float GetTimePositionInRecording(Vehicle vehicle) { return _i(0x5746F3A7AB7FE544, vehicle); } // 0x5746f3a7ab7fe5440xf8c3e4a2B323 + // p3 is some flag related to 'trailers' (_is CVehicle::GetTrailer). + // + // See RequestVehicleRecording + inline Void StartPlaybackRecordedVehicle(Vehicle vehicle, int recording, String script, BOOL p3) { return _i(0x3F878F92B3A7A071, vehicle, recording, script, p3); } // 0x3f878f92b3a7a0710xcf614ca8B323 + // flags requires further research, e.g., 0x4/0x8 are related to the AI driving task and 0x20 is internally set and interacts with dynamic entity components. + // + // time, often zero and capped at 500, is related to SetPlaybackToUseAiTryToRevertBackLater + inline Void StartPlaybackRecordedVehicleWithFlags(Vehicle vehicle, int recording, String script, int flags, int time, int drivingStyle) { return _i(0x7D80FD645D4DA346, vehicle, recording, script, flags, time, drivingStyle); } // 0x7d80fd645d4da3460x4e721ad2B323 + // Often called after StartPlaybackRecordedVehicle and SkipTimeInPlaybackRecordedVehicle; similar in use to ForceEntityAiAndAnimationUpdate. + inline Void ForcePlaybackRecordedVehicleUpdate(Vehicle vehicle, BOOL p1) { return _i(0x1F2E4E06DEA8992B, vehicle, p1); } // 0x1f2e4e06dea8992b0x01b91cd0B323 + inline Void StopPlaybackRecordedVehicle(Vehicle vehicle) { return _i(0x54833611C17ABDEA, vehicle); } // 0x54833611c17abdea0xae99c57cB323 + inline Void PausePlaybackRecordedVehicle(Vehicle vehicle) { return _i(0x632A689BF42301B1, vehicle); } // 0x632a689bf42301b10xccf54912B323 + inline Void UnpausePlaybackRecordedVehicle(Vehicle vehicle) { return _i(0x8879EE09268305D5, vehicle); } // 0x8879ee09268305d50x59060f75B323 + inline BOOL IsPlaybackGoingOnForVehicle(Vehicle vehicle) { return _i(0x1C8A4C2C19E68EEC, vehicle); } // 0x1c8a4c2c19e68eec0x61f7650dB323 + inline BOOL IsPlaybackUsingAiGoingOnForVehicle(Vehicle vehicle) { return _i(0xAEA8FD591FAD4106, vehicle); } // 0xaea8fd591fad41060x63022c58B323 + inline int GetCurrentPlaybackForVehicle(Vehicle vehicle) { return _i(0x42BC05C27A946054, vehicle); } // 0x42bc05c27a9460540xa3f44390B323 + inline Void SkipToEndAndStopPlaybackRecordedVehicle(Vehicle vehicle) { return _i(0xAB8E2EDA0C0A5883, vehicle); } // 0xab8e2eda0c0a58830x8dea18c8B323 + inline Void SetPlaybackSpeed(Vehicle vehicle, float speed) { return _i(0x6683AB880E427778, vehicle, speed); } // 0x6683ab880e4277780x684e26e4B323 + // AI abides by the provided driving style (e.g., stopping at red lights or waiting behind traffic) while executing the specificed vehicle recording. + // + // ForcePlaybackRecordedVehicleUpdate is a related native that deals with the AI physics for such recordings. + inline Void StartPlaybackRecordedVehicleUsingAi(Vehicle vehicle, int recording, String script, float speed, int drivingStyle) { return _i(0x29DE5FA52D00428C, vehicle, recording, script, speed, drivingStyle); } // 0x29de5fa52d00428c0x8de8e24eB323 + // SET_TIME_POSITION_IN_RECORDING can be emulated by: desired_time - GetTimePositionInRecording(vehicle) + inline Void SkipTimeInPlaybackRecordedVehicle(Vehicle vehicle, float time) { return _i(0x9438F7AD68771A20, vehicle, time); } // 0x9438f7ad68771a200xcf3efa4bB323 + // Identical to SetPlaybackToUseAiTryToRevertBackLater with 0 as arguments for p1 and p3. + inline Void SetPlaybackToUseAi(Vehicle vehicle, int drivingStyle) { return _i(0xA549C3B37EA28131, vehicle, drivingStyle); } // 0xa549c3b37ea281310xb536ccd7B323 + // Time is number of milliseconds before reverting, zero for indefinitely. + inline Void SetPlaybackToUseAiTryToRevertBackLater(Vehicle vehicle, int time, int drivingStyle, BOOL p3) { return _i(0x6E63860BBB190730, vehicle, time, drivingStyle, p3); } // 0x6e63860bbb1907300x0c8abaa4B323 + inline Void SetAdditionalRotationForRecordedVehiclePlayback(Vehicle vehicle, float x, float y, float z, Any p4) { return _i(0x5845066D8A1EA7F7, vehicle, x, y, z, p4); } // 0x5845066d8a1ea7f70x943a58ebB323 + inline Void SetPositionOffsetForRecordedVehiclePlayback(Vehicle vehicle, float x, float y, float z) { return _i(0x796A877E459B99EA, vehicle, x, y, z); } // 0x796a877e459b99ea0x5c9f477cB323 + inline Void SetGlobalPositionOffsetForRecordedVehiclePlayback(Vehicle vehicle, float x, float y, float z) { return _i(0xFAF2A78061FD9EF4, vehicle, x, y, z); } // 0xfaf2a78061fd9ef40xcd83c393B323 + // A vehicle recording playback flag only used in jewelry_heist + inline Void SetShouldLerpFromAiToFullRecording(Vehicle vehicle, BOOL p1) { return _i(0x063AE2B2CC273588, vehicle, p1); } // 0x063ae2b2cc2735880x2ef8435cB323 + inline Void ExplodeVehicleInCutscene(Vehicle vehicle, BOOL p1) { return _i(0x786A4EB67B01BF0B, vehicle, p1); } // 0x786a4eb67b01bf0b0xa85207b5B323 + inline Void AddVehicleStuckCheckWithWarp(Any p0, float p1, Any p2, BOOL p3, BOOL p4, BOOL p5, Any p6) { return _i(0x2FA9923062DD396C, p0, p1, p2, p3, p4, p5, p6); } // 0x2fa9923062dd396c0xc8b789adB323 + // Makes the vehicle stop spawning naturally in traffic. Here's an essential example: + // + // VEHICLE::SetVehicleModelIsSuppressed(MISC::GetHashKey("taco"), true); + // + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline Void SetVehicleModelIsSuppressed(Hash model, BOOL suppressed) { return _i(0x0FC2D89AC25A5814, model, suppressed); } // 0x0fc2d89ac25a58140x42a08c9bB323 + // Gets a random vehicle in a sphere at the specified position, of the specified radius. + // + // x: The X-component of the position of the sphere. + // y: The Y-component of the position of the sphere. + // z: The Z-component of the position of the sphere. + // radius: The radius of the sphere. Max is 9999.9004. + // modelHash: The vehicle model to limit the selection to. Pass 0 for any model. + // flags: The bitwise flags that modifies the behaviour of this function. + // + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline Vehicle GetRandomVehicleInSphere(float x, float y, float z, float radius, Hash modelHash, int flags) { return _i(0x386F6CE5BAF6091C, x, y, z, radius, modelHash, flags); } // 0x386f6ce5baf6091c0x57216d03B323 + inline Vehicle GetRandomVehicleFrontBumperInSphere(float p0, float p1, float p2, float p3, int p4, int p5, int p6) { return _i(0xC5574E0AEB86BA68, p0, p1, p2, p3, p4, p5, p6); } // 0xc5574e0aeb86ba680xdcadeb66B323 + inline Vehicle GetRandomVehicleBackBumperInSphere(float p0, float p1, float p2, float p3, int p4, int p5, int p6) { return _i(0xB50807EABE20A8DC, p0, p1, p2, p3, p4, p5, p6); } // 0xb50807eabe20a8dc0xd6343f6bB323 + // Example usage + // VEHICLE::GetClosestVehicle(x, y, z, radius, hash, unknown leave at 70) + // + // x, y, z: Position to get closest vehicle to. + // radius: Max radius to get a vehicle. + // modelHash: Limit to vehicles with this model. 0 for any. + // flags: The bitwise flags altering the function's behaviour. + // + // Does not return police cars or helicopters. + // + // It seems to return police cars for me, does not seem to return helicopters, planes or boats for some reason + // + // Only returns non police cars and motorbikes with the flag set to 70 and modelHash to 0. ModelHash seems to always be 0 when not a modelHash in the scripts, as stated above. + // + // These flags were found in the b617d scripts: 0,2,4,6,7,23,127,260,2146,2175,12294,16384,16386,20503,32768,67590,67711,98309,100359. + // Converted to binary, each bit probably represents a flag as explained regarding another native here: gtaforums.com/topic/822314-guide-driving-styles + // + // Conversion of found flags to binary: https://pastebin.com/kghNFkRi + // + // At exactly 16384 which is 0100000000000000 in binary and 4000 in hexadecimal only planes are returned. + // + // It's probably more convenient to use worldGetAllVehicles(int *arr, int arrSize) and check the shortest distance yourself and sort if you want by checking the vehicle type with for example VEHICLE::IsThisModelABoat + // + // ------------------------------------------------------------------------- + // + // Conclusion: This native is not worth trying to use. Use something like this instead: https://pastebin.com/xiFdXa7h + // + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline Vehicle GetClosestVehicle(float x, float y, float z, float radius, Hash modelHash, int flags) { return _i(0xF73EB622C4F1689B, x, y, z, radius, modelHash, flags); } // 0xf73eb622c4f1689b0xd7e26b2cB323 + // Corrected p1. it's basically the 'carriage/trailer number'. So if the train has 3 trailers you'd call the native once with a var or 3 times with 1, 2, 3. + inline Vehicle GetTrainCarriage(Vehicle train, int trailerNumber) { return _i(0x08AAFD0814722BC3, train, trailerNumber); } // 0x08aafd0814722bc30x2544e7a6B323 + inline BOOL IsMissionTrain(Vehicle train) { return _i(0xAD464F2E18836BFC, train); } // 0xad464f2e18836bfcB2372 + inline Void DeleteMissionTrain(Vehicle* train) { return _i(0x5B76B14AE875C795, train); } // 0x5b76b14ae875c7950x86c9497dB323 + // p1 is always 0 + inline Void SetMissionTrainAsNoLongerNeeded(Vehicle* train, BOOL p1) { return _i(0xBBE7648349B49BE8, train, p1); } // 0xbbe7648349b49be80x19808560B323 + inline Void SetMissionTrainCoords(Vehicle train, float x, float y, float z) { return _i(0x591CA673AA6AB736, train, x, y, z); } // 0x591ca673aa6ab7360xd6d70803B323 + inline BOOL IsThisModelABoat(Hash model) { return _i(0x45A9187928F4B9E3, model); } // 0x45a9187928f4b9e30x10f6085cB323 + // Checks if model is a boat, then checks for FLAG_IS_JETSKI. + inline BOOL IsThisModelAJetski(Hash model) { return _i(0x9537097412CF75FE, model); } // 0x9537097412cf75feB323 + inline BOOL IsThisModelAPlane(Hash model) { return _i(0xA0948AB42D7BA0DE, model); } // 0xa0948ab42d7ba0de0x3b3907bbB323 + inline BOOL IsThisModelAHeli(Hash model) { return _i(0xDCE4334788AF94EA, model); } // 0xdce4334788af94ea0x8af7f568B323 + // To check if the model is an amphibious car, use IsThisModelAnAmphibiousCar. + inline BOOL IsThisModelACar(Hash model) { return _i(0x7F6DB52EEFC96DF8, model); } // 0x7f6db52eefc96df80x60e4c22fB323 + inline BOOL IsThisModelATrain(Hash model) { return _i(0xAB935175B22E822B, model); } // 0xab935175b22e822b0xf87dcffdB323 + inline BOOL IsThisModelABike(Hash model) { return _i(0xB50C0B0CEDC6CE84, model); } // 0xb50c0b0cedc6ce840x7e702cddB323 + inline BOOL IsThisModelABicycle(Hash model) { return _i(0xBF94DD42F63BDED2, model); } // 0xbf94dd42f63bded20x328e6ff5B323 + inline BOOL IsThisModelAQuadbike(Hash model) { return _i(0x39DAC362EE65FA28, model); } // 0x39dac362ee65fa280xc1625277B323 + inline BOOL IsThisModelAnAmphibiousCar(Hash model) { return _i(0x633F6F44A537EBB6, model); } // 0x633f6f44a537ebb6B944 + inline BOOL IsThisModelAnAmphibiousQuadbike(Hash model) { return _i(0xA1A9FC1C76A6730D, model); } // 0xa1a9fc1c76a6730dB1103 + // Equivalent of SetHeliBladesSpeed(vehicleHandle, 1.0f); + // + // this native works on planes to? + inline Void SetHeliBladesFullSpeed(Vehicle vehicle) { return _i(0xA178472EBB8AE60D, vehicle); } // 0xa178472ebb8ae60d0x033a9408B323 + // Sets the speed of the helicopter blades in percentage of the full speed. + // + // vehicleHandle: The helicopter. + // speed: The speed in percentage, 0.0f being 0% and 1.0f being 100%. + inline Void SetHeliBladesSpeed(Vehicle vehicle, float speed) { return _i(0xFD280B4D7F3ABC4D, vehicle, speed); } // 0xfd280b4d7f3abc4d0x5c7d4ea9B323 + inline Void ForceSubThrottleForTime(Vehicle vehicle, float p1, float p2) { return _i(0x99CAD8E7AFDB60FA, vehicle, p1, p2); } // 0x99cad8e7afdb60fa0x1128a45bB323 + // This has not yet been tested - it's just an assumption of what the types could be. + inline Void SetVehicleCanBeTargetted(Vehicle vehicle, BOOL state) { return _i(0x3750146A28097A82, vehicle, state); } // 0x3750146a28097a820x64b70b1dB323 + inline Void SetDontAllowPlayerToEnterVehicleIfLockedForPlayer(Vehicle vehicle, BOOL p1) { return _i(0xDBC631F109350B8C, vehicle, p1); } // 0xdbc631f109350b8c0x486c1280B323 + inline Void SetVehicleCanBeVisiblyDamaged(Vehicle vehicle, BOOL state) { return _i(0x4C7028F78FFD3681, vehicle, state); } // 0x4c7028f78ffd36810xc5d94017B323 + inline Void SetVehicleHasUnbreakableLights(Vehicle vehicle, BOOL toggle) { return _i(0x1AA8A837D2169D94, vehicle, toggle); } // 0x1aa8a837d2169d940x009ab49eB323 + inline Void SetVehicleRespectsLocksWhenHasDriver(Vehicle vehicle, BOOL p1) { return _i(0x2311DD7159F00582, vehicle, p1); } // 0x2311dd7159f005820x758c5e2eB323 + inline Void SetVehicleCanEjectPassengersIfLocked(Any p0, Any p1) { return _i(0x065D03A9D6B2C6B5, p0, p1); } // 0x065d03a9d6b2c6b5B463 + // Dirt level does not become greater than 15.0 + inline float GetVehicleDirtLevel(Vehicle vehicle) { return _i(0x8F17BC8BA08DA62B, vehicle); } // 0x8f17bc8ba08da62b0xfd15c065B323 + // You can't use values greater than 15.0 + // Also, R* does (float)(rand() % 15) to get a random dirt level when generating a vehicle. + inline Void SetVehicleDirtLevel(Vehicle vehicle, float dirtLevel) { return _i(0x79D3B596FE44EE8B, vehicle, dirtLevel); } // 0x79d3b596fe44ee8b0x2b39128bB323 + // Appears to return true if the vehicle has any damage, including cosmetically. + inline BOOL GetDoesVehicleHaveDamageDecals(Vehicle vehicle) { return _i(0xBCDC5017D3CE1E9E, vehicle); } // 0xbcdc5017d3ce1e9e0xdac523bcB323 + // doorId: see SetVehicleDoorShut + inline BOOL IsVehicleDoorFullyOpen(Vehicle vehicle, int doorId) { return _i(0x3E933CFF7B111C22, vehicle, doorId); } // 0x3e933cff7b111c220xc2385b6fB323 + // Starts or stops the engine on the specified vehicle. + // + // vehicle: The vehicle to start or stop the engine on. + // value: true to turn the vehicle on; false to turn it off. + // instantly: if true, the vehicle will be set to the state immediately; otherwise, the current driver will physically turn on or off the engine. + // disableAutoStart: If true, the system will prevent the engine from starting when the player got into it. + // + // from what I've tested when I do this to a helicopter the propellers turn off after the engine has started. so is there any way to keep the heli propellers on? + inline Void SetVehicleEngineOn(Vehicle vehicle, BOOL value, BOOL instantly, BOOL disableAutoStart) { return _i(0x2497C4717C8B881E, vehicle, value, instantly, disableAutoStart); } // 0x2497c4717c8b881e0x7fbc86f1B323 + inline Void SetVehicleUndriveable(Vehicle vehicle, BOOL toggle) { return _i(0x8ABA6AF54B942B95, vehicle, toggle); } // 0x8aba6af54b942b950x48d02a4eB323 + inline Void SetVehicleProvidesCover(Vehicle vehicle, BOOL toggle) { return _i(0x5AFEEDD9BB2899D7, vehicle, toggle); } // 0x5afeedd9bb2899d70xefc01ca9B323 + // doorId: see SetVehicleDoorShut + inline Void SetVehicleDoorControl(Vehicle vehicle, int doorId, int speed, float angle) { return _i(0xF2BFA0430F0A0FCB, vehicle, doorId, speed, angle); } // 0xf2bfa0430f0a0fcb0x572dd360B323 + // doorId: see SetVehicleDoorShut + inline Void SetVehicleDoorLatched(Vehicle vehicle, int doorId, BOOL p2, BOOL p3, BOOL p4) { return _i(0xA5A9653A8D2CAF48, vehicle, doorId, p2, p3, p4); } // 0xa5a9653a8d2caf480x4eb7bbfcB323 + // doorId: see SetVehicleDoorShut + inline float GetVehicleDoorAngleRatio(Vehicle vehicle, int doorId) { return _i(0xFE3F9C29F7B32BD5, vehicle, doorId); } // 0xfe3f9c29f7b32bd50x0e399c26B323 + // doorId: see SetVehicleDoorShut + inline Ped GetPedUsingVehicleDoor(Vehicle vehicle, int doord) { return _i(0x218297BF0CFD853B, vehicle, doord); } // 0x218297bf0cfd853b0x0630101fB323 + // enum eDoorId + // { + // VEH_EXT_DOOR_INVALID_ID = -1, + // VEH_EXT_DOOR_DSIDE_F, + // VEH_EXT_DOOR_DSIDE_R, + // VEH_EXT_DOOR_PSIDE_F, + // VEH_EXT_DOOR_PSIDE_R, + // VEH_EXT_BONNET, + // VEH_EXT_BOOT + // }; + inline Void SetVehicleDoorShut(Vehicle vehicle, int doorId, BOOL closeInstantly) { return _i(0x93D9BD300D7789E5, vehicle, doorId, closeInstantly); } // 0x93d9bd300d7789e50x142606bdB323 + // doorId: see SetVehicleDoorShut + inline Void SetVehicleDoorBroken(Vehicle vehicle, int doorId, BOOL deleteDoor) { return _i(0xD4D4F6A4AB575A33, vehicle, doorId, deleteDoor); } // 0xd4d4f6a4ab575a330x8147fea7B323 + inline Void SetVehicleCanBreak(Vehicle vehicle, BOOL toggle) { return _i(0x59BF8C3D52C92F66, vehicle, toggle); } // 0x59bf8c3d52c92f660x90a810d1B323 + inline BOOL DoesVehicleHaveRoof(Vehicle vehicle) { return _i(0x8AC862B0B32C5B80, vehicle); } // 0x8ac862b0b32c5b800xdb817403B323 + inline Void SetVehicleRemoveAggressiveCarjackMission(Any p0) { return _i(0xC4B3347BD68BD609, p0); } // 0xc4b3347bd68bd609B573 + inline Void SetVehicleAvoidPlayerVehicleRiotVanMission(Any p0) { return _i(0xD3301660A57C9272, p0); } // 0xd3301660a57c9272B757 + inline Void SetCarjackMissionRemovalParameters(Any p0, Any p1) { return _i(0xB9562064627FF9DB, p0, p1); } // 0xb9562064627ff9dbB573 + // Returns true if MF_IS_BIG (strModelFlags 0x8) handling model flag is set. + inline BOOL IsBigVehicle(Vehicle vehicle) { return _i(0x9F243D3919F442FE, vehicle); } // 0x9f243d3919f442fe0x9cdba8deB323 + // Returns the total amount of color combinations found in the vehicle's carvariations.meta entry. + inline int GetNumberOfVehicleColours(Vehicle vehicle) { return _i(0x3B963160CD65D41E, vehicle); } // 0x3b963160cd65d41e0xf2442ee2B323 + // Sets the selected vehicle's colors to the specified index of the color combination found in the vehicle's carvariations.meta entry. + inline Void SetVehicleColourCombination(Vehicle vehicle, int colorCombination) { return _i(0x33E8CD3322E2FE31, vehicle, colorCombination); } // 0x33e8cd3322e2fe310xa557aeadB323 + // Returns the index of the color combination found in the vehicle's carvariations.meta entry. + inline int GetVehicleColourCombination(Vehicle vehicle) { return _i(0x6A842D197F845D56, vehicle); } // 0x6a842d197f845d560x77ac1b4cB323 + // `color`: is the paint index for the vehicle. + // Paint index goes from 0 to 12. + // Be aware that it only works on xenon lights. Example: https://i.imgur.com/yV3cpG9.png + // Full list of all vehicle xenon lights by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json + inline Void SetVehicleXenonLightColorIndex(Vehicle vehicle, int colorIndex) { return _i(0xE41033B25D003A07, vehicle, colorIndex); } // 0xe41033b25d003a07B1604 + // Returns the headlight color index from the vehicle. Value between 0, 12. + // Use SetVehicleXenonLightColorIndex to set the headlights color for the vehicle. + // Must enable xenon headlights before it'll take affect. + // + // Returns an int, value between 0-12 or 255 if no color is set. + inline int GetVehicleXenonLightColorIndex(Vehicle vehicle) { return _i(0x3DFF319A831E0CDB, vehicle); } // 0x3dff319a831e0cdbB1604 + // Setting this to false, makes the specified vehicle to where if you press Y your character doesn't even attempt the animation to enter the vehicle. Hence it's not considered aka ignored. + inline Void SetVehicleIsConsideredByPlayer(Vehicle vehicle, BOOL toggle) { return _i(0x31B927BBC44156CD, vehicle, toggle); } // 0x31b927bbc44156cd0x14413319B323 + inline Void SetVehicleWillForceOtherVehiclesToStop(Vehicle vehicle, BOOL toggle) { return _i(0xBE5C1255A1830FF5, vehicle, toggle); } // 0xbe5c1255a1830ff50xa6d8d7a5B323 + inline Void SetVehicleActAsIfHasSirenOn(Vehicle vehicle, BOOL p1) { return _i(0x9BECD4B9FEF3F8A6, vehicle, p1); } // 0x9becd4b9fef3f8a60xacab8ff3B323 + inline Void SetVehicleUseMoreRestrictiveSpawnChecks(Vehicle vehicle, BOOL p1) { return _i(0x88BC673CA9E0AE99, vehicle, p1); } // 0x88bc673ca9e0ae990xf0e5c41dB323 + inline Void SetVehicleMayBeUsedByGotoPointAnyMeans(Vehicle vehicle, BOOL p1) { return _i(0xE851E480B814D4BA, vehicle, p1); } // 0xe851e480b814d4ba0x2f98b4b7B323 + // Not present in the retail version! It's just a nullsub. + // + // p0 always true (except in one case) + // successIndicator: 0 if success, -1 if failed + inline Void GetRandomVehicleModelInMemory(BOOL p0, Hash* modelHash, int* successIndicator) { return _i(0x055BF0AC0C34F4FD, p0, modelHash, successIndicator); } // 0x055bf0ac0c34f4fd0xe2c45631B323 + // enum VehicleLockStatus = { + // None = 0, + // Unlocked = 1, + // Locked = 2, + // LockedForPlayer = 3, + // StickPlayerInside = 4, -- Doesn't allow players to exit the vehicle with the exit vehicle key. + // CanBeBrokenInto = 7, -- Can be broken into the car. If the glass is broken, the value will be set to 1 + // CanBeBrokenIntoPersist = 8, -- Can be broken into persist + // CannotBeTriedToEnter = 10, -- Cannot be tried to enter (Nothing happens when you press the vehicle enter key). + // } + inline int GetVehicleDoorLockStatus(Vehicle vehicle) { return _i(0x25BC98A59C2EA962, vehicle); } // 0x25bc98a59c2ea9620x0d72cef2B323 + // Returns vehicle door lock state previously set with SetVehicleIndividualDoorsLocked + inline int GetVehicleIndividualDoorLockStatus(Vehicle vehicle, int doorId) { return _i(0xCA4AC3EAAE46EC7B, vehicle, doorId); } // 0xca4ac3eaae46ec7bB1103 + // doorID starts at 0, not seeming to skip any numbers. Four door vehicles intuitively range from 0 to 3. + inline BOOL IsVehicleDoorDamaged(Vehicle veh, int doorID) { return _i(0xB8E181E559464527, veh, doorID); } // 0xb8e181e5594645270x4999e3c3B323 + // doorId: see SetVehicleDoorShut + inline Void SetDoorAllowedToBeBrokenOff(Vehicle vehicle, int doorId, BOOL isBreakable) { return _i(0x2FA133A4A9D37ED8, vehicle, doorId, isBreakable); } // 0x2fa133a4a9d37ed80x065b92b3B323 + inline BOOL IsVehicleBumperBouncing(Vehicle vehicle, BOOL frontBumper) { return _i(0x27B926779DEB502D, vehicle, frontBumper); } // 0x27b926779deb502d0xb3a2cc4fB323 + inline BOOL IsVehicleBumperBrokenOff(Vehicle vehicle, BOOL frontBumper) { return _i(0x468056A6BB6F3846, vehicle, frontBumper); } // 0x468056a6bb6f38460xaf25c027B323 + // Usage: + // + // public BOOL isCopInRange(Vector3 Location, float Range) + // { + // return Function.Call(Hash.IsCopPedInArea3d, Location.X - Range, Location.Y - Range, Location.Z - Range, Location.X + Range, Location.Y + Range, Location.Z + Range); + // } + inline BOOL IsCopVehicleInArea3d(float x1, float x2, float y1, float y2, float z1, float z2) { return _i(0x7EEF65D5F153E26A, x1, x2, y1, y2, z1, z2); } // 0x7eef65d5f153e26a0xfb16c6d1B323 + // Public Function isVehicleOnAllWheels(vh As Vehicle) As Boolean + // Return Native.Function.Call(Of Boolean)(Hash.IsVehicleOnAllWheels, vh) + // End Function + // + inline BOOL IsVehicleOnAllWheels(Vehicle vehicle) { return _i(0xB104CD1BABF302E2, vehicle); } // 0xb104cd1babf302e20x10089f8eB323 + // Returns `nMonetaryValue` from handling.meta for specific model. + inline int GetVehicleModelValue(Hash vehicleModel) { return _i(0x5873C14A52D74236, vehicleModel); } // 0x5873c14a52d742360x58fefc3dB463 + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline Hash GetVehicleLayoutHash(Vehicle vehicle) { return _i(0x28D37D4F71AC5C58, vehicle); } // 0x28d37d4f71ac5c580xe0b35187B323 + inline Hash GetInVehicleClipsetHashForSeat(Vehicle vehicle, int p1) { return _i(0xA01BC64DD4BFBBAC, vehicle, p1); } // 0xa01bc64dd4bfbbacB323 + // Makes the train all jumbled up and derailed as it moves on the tracks (though that wont stop it from its normal operations) + inline Void SetRenderTrainAsDerailed(Vehicle train, BOOL toggle) { return _i(0x317B11A312DF5534, train, toggle); } // 0x317b11a312df55340x899d9092B323 + // They use the same color indexs as SetVehicleColours. + inline Void SetVehicleExtraColours(Vehicle vehicle, int pearlescentColor, int wheelColor) { return _i(0x2036F561ADD12E33, vehicle, pearlescentColor, wheelColor); } // 0x2036f561add12e330x515db2a0B323 + inline Void GetVehicleExtraColours(Vehicle vehicle, int* pearlescentColor, int* wheelColor) { return _i(0x3BC4245933A166F7, vehicle, pearlescentColor, wheelColor); } // 0x3bc4245933a166f70x80e4659bB323 + inline Void SetVehicleExtraColour5(Vehicle vehicle, int color) { return _i(0xF40DD601A65F7F19, vehicle, color); } // 0xf40dd601a65f7f19B505 + inline Void GetVehicleExtraColour5(Vehicle vehicle, int* color) { return _i(0x7D1464D472D32136, vehicle, color); } // 0x7d1464d472d32136B505 + inline Void SetVehicleExtraColour6(Vehicle vehicle, int color) { return _i(0x6089CDF6A57F326C, vehicle, color); } // 0x6089cdf6a57f326cB505 + inline Void GetVehicleExtraColour6(Vehicle vehicle, int* color) { return _i(0xB7635E80A5C31BFF, vehicle, color); } // 0xb7635e80a5c31bffB505 + inline Void StopAllGarageActivity() { return _i(0x0F87E938BDF29D66); } // 0x0f87e938bdf29d660x17a0bce5B323 + // This fixes a vehicle. + // If the vehicle's engine's broken then you cannot fix it with this native. + inline Void SetVehicleFixed(Vehicle vehicle) { return _i(0x115722B1B9C14C1C, vehicle); } // 0x115722b1b9c14c1c0x17469aa1B323 + // This fixes the deformation of a vehicle but the vehicle health doesn't improve + inline Void SetVehicleDeformationFixed(Vehicle vehicle) { return _i(0x953DA1E1B12C0491, vehicle); } // 0x953da1e1b12c04910xdd2920c8B323 + inline Void SetVehicleCanEngineMissfire(Vehicle vehicle, BOOL toggle) { return _i(0x206BC5DC9D1AC70A, vehicle, toggle); } // 0x206bc5dc9d1ac70a0x8eacbd13B323 + inline Void SetVehicleCanLeakOil(Vehicle vehicle, BOOL toggle) { return _i(0x51BB2D88D31A914B, vehicle, toggle); } // 0x51bb2d88d31a914b0x88f0f7e7B323 + inline Void SetVehicleCanLeakPetrol(Vehicle vehicle, BOOL toggle) { return _i(0x192547247864DFDD, vehicle, toggle); } // 0x192547247864dfdd0x90d6ee57B323 + inline Void SetDisableVehiclePetrolTankFires(Vehicle vehicle, BOOL toggle) { return _i(0x465BF26AB9684352, vehicle, toggle); } // 0x465bf26ab96843520xc40192b5B323 + inline Void SetDisableVehiclePetrolTankDamage(Vehicle vehicle, BOOL toggle) { return _i(0x37C8252A7C92D017, vehicle, toggle); } // 0x37c8252a7c92d0170xad3e05f2B323 + inline Void SetDisableVehicleEngineFires(Vehicle vehicle, BOOL toggle) { return _i(0x91A0BD635321F145, vehicle, toggle); } // 0x91a0bd635321f1450x1784ba1aB323 + inline Void SetVehicleLimitSpeedWhenPlayerInactive(Vehicle vehicle, BOOL toggle) { return _i(0xC50CE861B55EAB8B, vehicle, toggle); } // 0xc50ce861b55eab8b0x40c323aeB323 + // sfink: sets bit in vehicle's structure, used by maintransition, fm_mission_controller, mission_race and a couple of other scripts. see dissassembly: + // CVehicle *__fastcall sub_140CDAA10(signed int a1, char a2) + // { + // CVehicle *result; // rax@1 + // + // result = EntityAsCVehicle(a1); + // if ( result ) + // { + // result->field_886 &= 0xEFu; + // result->field_886 |= 16 * (a2 & 1); + // } + // return result; + // } + inline Void SetVehicleStopInstantlyWhenPlayerInactive(Vehicle vehicle, BOOL toggle) { return _i(0x6EBFB22D646FFC18, vehicle, toggle); } // 0x6ebfb22d646ffc180x847f1304B323 + inline Void SetDisablePretendOccupants(Vehicle vehicle, BOOL toggle) { return _i(0x25367DE49D64CF16, vehicle, toggle); } // 0x25367de49d64cf160xcbd98ba1B323 + inline Void RemoveVehiclesFromGeneratorsInArea(float x1, float y1, float z1, float x2, float y2, float z2, Any p6) { return _i(0x46A1E1A299EC4BBA, x1, y1, z1, x2, y2, z2, p6); } // 0x46a1e1a299ec4bba0x42cc15e0B323 + // Locks the vehicle's steering to the desired angle, explained below. + // + // Requires to be called onTick. Steering is unlocked the moment the function stops being called on the vehicle. + // + // Steer bias: + // -1.0 = full right + // 0.0 = centered steering + // 1.0 = full left + inline Void SetVehicleSteerBias(Vehicle vehicle, float value) { return _i(0x42A8EC77D5150CBE, vehicle, value); } // 0x42a8ec77d5150cbe0x7357c1ebB323 + inline BOOL IsVehicleExtraTurnedOn(Vehicle vehicle, int extraId) { return _i(0xD2E6822DBFD6C8BD, vehicle, extraId); } // 0xd2e6822dbfd6c8bd0x042098b5B323 + // Available extraIds are 1-14, however none of the vehicles have extras above 12. + inline Void SetVehicleExtra(Vehicle vehicle, int extraId, BOOL disable) { return _i(0x7EE3A3C5E4A40CC9, vehicle, extraId, disable); } // 0x7ee3a3c5e4a40cc90x642d065cB323 + // Checks via CVehicleModelInfo + inline BOOL DoesExtraExist(Vehicle vehicle, int extraId) { return _i(0x1262D55792428154, vehicle, extraId); } // 0x1262d557924281540x409411ccB323 + // Returns true if specified extra part is broken off. It only works for extras that can break off during collisions, non-breakable extras always return false. Also returns true if the breakable extra is toggled off through script. + inline BOOL IsExtraBrokenOff(Vehicle vehicle, int extraId) { return _i(0x534E36D4DB9ECC5D, vehicle, extraId); } // 0x534e36d4db9ecc5dB1493 + inline Void SetConvertibleRoof(Vehicle vehicle, BOOL p1) { return _i(0xF39C4F538B5124C2, vehicle, p1); } // 0xf39c4f538b5124c20xc87b6a51B323 + inline Void LowerConvertibleRoof(Vehicle vehicle, BOOL instantlyLower) { return _i(0xDED51F703D0FA83D, vehicle, instantlyLower); } // 0xded51f703d0fa83d0xc5f72eaeB323 + inline Void RaiseConvertibleRoof(Vehicle vehicle, BOOL instantlyRaise) { return _i(0x8F5FB35D7E88FC70, vehicle, instantlyRaise); } // 0x8f5fb35d7e88fc700xa4e4cba3B323 + // 0 -> up + // 1 -> lowering down + // 2 -> down + // 3 -> raising up + inline int GetConvertibleRoofState(Vehicle vehicle) { return _i(0xF8C397922FC03F41, vehicle); } // 0xf8c397922fc03f410x1b09714dB323 + // Returns true if the vehicle has a convertible roof. + // + // p1 is false almost always. However, in launcher_carwash/carwash1/carwash2 scripts, p1 is true and is accompanied by DoesVehicleHaveRoof. If p1 is true, it seems that every single vehicle will return true irrespective of being a convertible. + inline BOOL IsVehicleAConvertible(Vehicle vehicle, BOOL p1) { return _i(0x52F357A30698BCCE, vehicle, p1); } // 0x52f357a30698bcce0x6ef54490B323 + // Transforms the `stormberg`/`toreador` to its "submarine" variant. If the vehicle is already in that state then the vehicle transformation audio will still play, but the vehicle won't change at all. + inline BOOL TransformToSubmarine(Vehicle vehicle, BOOL noAnimation) { return _i(0xBE4C854FFDB6EEBE, vehicle, noAnimation); } // 0xbe4c854ffdb6eebe0xcafe5fe0B1365 + // Transforms the `stormberg`/`toreador` to its "road vehicle" variant. If the vehicle is already in that state then the vehicle transformation audio will still play, but the vehicle won't change at all. + inline Void TransformToCar(Vehicle vehicle, BOOL noAnimation) { return _i(0x2A69FFD1B42BFF9E, vehicle, noAnimation); } // 0x2a69ffd1b42bff9e0xd8b90941B1290 + inline BOOL IsVehicleInSubmarineMode(Vehicle vehicle) { return _i(0xA77DC70BD689A1E5, vehicle); } // 0xa77dc70bd689a1e50xe2ff06dbB1290 + inline BOOL IsVehicleStoppedAtTrafficLights(Vehicle vehicle) { return _i(0x2959F696AE390A99, vehicle); } // 0x2959f696ae390a990x69200fa4B323 + // Apply damage to vehicle at a location. Location is relative to vehicle model (not world). + // + // Radius of effect damage applied in a sphere at impact location + // When `focusOnModel` set to `true`, the damage sphere will travel towards the vehicle from the given point, thus guaranteeing an impact + inline Void SetVehicleDamage(Vehicle vehicle, float xOffset, float yOffset, float zOffset, float damage, float radius, BOOL focusOnModel) { return _i(0xA1DD317EA8FD4F29, vehicle, xOffset, yOffset, zOffset, damage, radius, focusOnModel); } // 0xa1dd317ea8fd4f290x21b458b2B323 + inline Void SetVehicleOccupantsTakeExplosiveDamage(Vehicle vehicle, BOOL toggle) { return _i(0x35BB21DE06784373, vehicle, toggle); } // 0x35bb21de06784373B463 + // Returns 1000.0 if the function is unable to get the address of the specified vehicle or if it's not a vehicle. + // + // Minimum: -4000 + // Maximum: 1000 + // + // -4000: Engine is destroyed + // 0 and below: Engine catches fire and health rapidly declines + // 300: Engine is smoking and losing functionality + // 1000: Engine is perfect + inline float GetVehicleEngineHealth(Vehicle vehicle) { return _i(0xC45D23BAF168AAB8, vehicle); } // 0xc45d23baf168aab80x8880038aB323 + // 1000 is max health + // Begins leaking gas at around 650 health + // Minimum: -4000 + // Maximum: 1000 + // + // -4000: Engine is destroyed + // 0 and below: Engine catches fire and health rapidly declines + // 300: Engine is smoking and losing functionality + // 1000: Engine is perfect + inline Void SetVehicleEngineHealth(Vehicle vehicle, float health) { return _i(0x45F6D8EEF34ABEF1, vehicle, health); } // 0x45f6d8eef34abef10x1b760fb5B323 + // Works just like SetVehicleEngineHealth, but only for planes. + inline Void SetPlaneEngineHealth(Vehicle vehicle, float health) { return _i(0x2A86A0475B6A1434, vehicle, health); } // 0x2a86a0475b6a1434B1103 + // 1000 is max health + // Begins leaking gas at around 650 health + // -999.90002441406 appears to be minimum health, although nothing special occurs + inline float GetVehiclePetrolTankHealth(Vehicle vehicle) { return _i(0x7D5DABE888D2D074, vehicle); } // 0x7d5dabe888d2d0740xe41595ceB323 + // 1000 is max health + // Begins leaking gas at around 650 health + // -999.90002441406 appears to be minimum health, although nothing special occurs + inline Void SetVehiclePetrolTankHealth(Vehicle vehicle, float health) { return _i(0x70DB57649FA8D0D8, vehicle, health); } // 0x70db57649fa8d0d80x660a3692B323 + // p1 can be anywhere from 0 to 3 in the scripts. + // p2 being how long in milliseconds the vehicle has been stuck + inline BOOL IsVehicleStuckTimerUp(Vehicle vehicle, int p1, int ms) { return _i(0x679BE1DAF71DA874, vehicle, p1, ms); } // 0x679be1daf71da8740x2fcf58c1B323 + // The inner function has a switch on the second parameter. It's the stuck timer index. + // + // Here's some pseudo code I wrote for the inner function: + // Void __fastcall NATIVE_RESET_VEHICLE_STUCK_TIMER_INNER(CUnknown* unknownClassInVehicle, int timerIndex) + // { + // switch (timerIndex) + // { + // case 0: + // unknownClassInVehicle->FirstStuckTimer = (WORD)0u; + // case 1: + // unknownClassInVehicle->SecondStuckTimer = (WORD)0u; + // case 2: + // unknownClassInVehicle->ThirdStuckTimer = (WORD)0u; + // case 3: + // unknownClassInVehicle->FourthStuckTimer = (WORD)0u; + // case 4: + // unknownClassInVehicle->FirstStuckTimer = (WORD)0u; + // unknownClassInVehicle->SecondStuckTimer = (WORD)0u; + // unknownClassInVehicle->ThirdStuckTimer = (WORD)0u; + // unknownClassInVehicle->FourthStuckTimer = (WORD)0u; + // break; + // }; + // } + inline Void ResetVehicleStuckTimer(Vehicle vehicle, int nullAttributes) { return _i(0xD7591B0065AFAA7A, vehicle, nullAttributes); } // 0xd7591b0065afaa7a0xef2a6016B323 + // p1 is always 0 in the scripts. + // + // p1 = check if vehicle is on fire + inline BOOL IsVehicleDriveable(Vehicle vehicle, BOOL isOnFireCheck) { return _i(0x4C241E39B23DF959, vehicle, isOnFireCheck); } // 0x4c241e39b23df9590x41a7267aB323 + inline Void SetVehicleHasBeenOwnedByPlayer(Vehicle vehicle, BOOL owned) { return _i(0x2B5F9D2AF1F1722D, vehicle, owned); } // 0x2b5f9d2af1f1722d0xb4d3dbfbB323 + inline Void SetVehicleNeedsToBeHotwired(Vehicle vehicle, BOOL toggle) { return _i(0xFBA550EA44404EE6, vehicle, toggle); } // 0xfba550ea44404ee60xd8260751B323 + inline Void SetVehicleBlipThrottleRandomly(Vehicle vehicle, BOOL p1) { return _i(0x9F3F689B814F2599, vehicle, p1); } // 0x9f3f689b814f2599B323 + inline Void SetPoliceFocusWillTrackVehicle(Vehicle vehicle, BOOL toggle) { return _i(0x4E74E62E0A97E901, vehicle, toggle); } // 0x4e74e62e0a97e9010x5690f6c3B323 + // Sounds the horn for the specified vehicle. + // + // vehicle: The vehicle to activate the horn for. + // mode: The hash of "NORMAL" or "HELDDOWN". Can be 0. + // duration: The duration to sound the horn, in milliseconds. + // + // Note: If a player is in the vehicle, it will only sound briefly. + inline Void StartVehicleHorn(Vehicle vehicle, int duration, Hash mode, BOOL forever) { return _i(0x9C8C6504B5B63D2C, vehicle, duration, mode, forever); } // 0x9c8c6504b5b63d2c0x0df5adb3B323 + // If set to TRUE, it seems to suppress door noises and doesn't allow the horn to be continuous. + inline Void SetVehicleInCarModShop(Vehicle vehicle, BOOL toggle) { return _i(0x9D44FCCE98450843, vehicle, toggle); } // 0x9d44fcce984508430x968e5770B323 + // if true, axles won't bend. + inline Void SetVehicleHasStrongAxles(Vehicle vehicle, BOOL toggle) { return _i(0x92F0CF722BC4202F, vehicle, toggle); } // 0x92f0cf722bc4202f0x0d1cbc65B323 + // Returns model name of vehicle in all caps. Needs to be displayed through localizing text natives to get proper display name. + // ----------------------------------------------------------------------------------------------------------------------------------------- + // While often the case, this does not simply return the model name of the vehicle (which could be hashed to return the model hash). Variations of the same vehicle may also use the same display name. + // ----------------------------------------------------------------------------------------------------------------------------------------- + // + // Returns "CARNOTFOUND" if the hash doesn't match a vehicle hash. + // + // Using HUD::GetFilenameForAudioConversation, you can get the localized name. + // + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline String GetDisplayNameFromVehicleModel(Hash modelHash) { return _i(0xB215AAC32D25D019, modelHash); } // 0xb215aac32d25d0190xec86df39B323 + // Will return a vehicle's manufacturer display label. + // Returns "CARNOTFOUND" if the hash doesn't match a vehicle hash. + // + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline String GetMakeNameFromVehicleModel(Hash modelHash) { return _i(0xF7AF4F159FF99F97, modelHash); } // 0xf7af4f159ff99f97B1868 + // The only example I can find of this function in the scripts, is this: + // + // struct _s = VEHICLE::GetVehicleDeformationAtPos(rPtr((A_0) + 4), 1.21f, 6.15f, 0.3f); + // + // ----------------------------------------------------------------------------------------------------------------------------------------- + // PC scripts: + // + // v_5/*{3}*/ = VEHICLE::GetVehicleDeformationAtPos(a_0._f1, 1.21, 6.15, 0.3); + inline Vector3 GetVehicleDeformationAtPos(Vehicle vehicle, float offsetX, float offsetY, float offsetZ) { return _i(0x4EC6CFBC7B2E9536, vehicle, offsetX, offsetY, offsetZ); } // 0x4ec6cfbc7b2e95360xabf02075B323 + inline Void SetVehicleLivery(Vehicle vehicle, int livery) { return _i(0x60BF608F1B8CD1B6, vehicle, livery); } // 0x60bf608f1b8cd1b60x7ad87059B323 + // -1 = no livery + inline int GetVehicleLivery(Vehicle vehicle) { return _i(0x2BB9230590DA5E8A, vehicle); } // 0x2bb9230590da5e8a0xec82a51dB323 + // Returns -1 if the vehicle has no livery + inline int GetVehicleLiveryCount(Vehicle vehicle) { return _i(0x87B63E25A529D526, vehicle); } // 0x87b63e25a529d5260xfb0ca947B323 + // Used to set the secondary livery (the roof on Tornado Custom being one such example.) + // + // Livery value is dependent on the amount of liveries present in the vehicle's texture dictionary, for Tornado Custom this would be 0-6. + inline Void SetVehicleLivery2(Vehicle vehicle, int livery) { return _i(0xA6D3A8750DC73270, vehicle, livery); } // 0xa6d3a8750dc73270B505 + // Returns index of the current vehicle's secondary livery. A getter for SetVehicleLivery2. + inline int GetVehicleLivery2(Vehicle vehicle) { return _i(0x60190048C0764A26, vehicle); } // 0x60190048c0764a26B505 + // Returns a number of available secondary liveries, or -1 if vehicle has no secondary liveries available. + inline int GetVehicleLivery2Count(Vehicle vehicle) { return _i(0x5ECB40269053C0D4, vehicle); } // 0x5ecb40269053c0d4B505 + // This will return false if the window is broken, or rolled down. + // Window indexes: + // 0 = Front Right Window + // 1 = Front Left Window + // 2 = Back Right Window + // 3 = Back Left Window + // + // + // Those numbers go on for vehicles that have more than 4 doors with windows. + inline BOOL IsVehicleWindowIntact(Vehicle vehicle, int windowIndex) { return _i(0x46E571A0E20D01F1, vehicle, windowIndex); } // 0x46e571a0e20d01f10xac4ef23dB323 + // Appears to return false if any window is broken. + inline BOOL AreAllVehicleWindowsIntact(Vehicle vehicle) { return _i(0x11D862A3E977A9EF, vehicle); } // 0x11d862a3e977a9ef0xbb619744B323 + // Returns false if every seat is occupied. + inline BOOL AreAnyVehicleSeatsFree(Vehicle vehicle) { return _i(0x2D34FC3BC4ADB780, vehicle); } // 0x2d34fc3bc4adb7800x648e685aB323 + inline Void ResetVehicleWheels(Vehicle vehicle, BOOL toggle) { return _i(0x21D2E5662C1F6FED, vehicle, toggle); } // 0x21d2e5662c1f6fed0xd5ffe779B323 + inline BOOL IsHeliPartBroken(Vehicle vehicle, BOOL p1, BOOL p2, BOOL p3) { return _i(0xBC74B4BE25EB6C8A, vehicle, p1, p2, p3); } // 0xbc74b4be25eb6c8a0xf4e4c439B323 + // Max 1000. + // At 0 the main rotor will stall. + inline float GetHeliMainRotorHealth(Vehicle vehicle) { return _i(0xE4CB7541F413D2C5, vehicle); } // 0xe4cb7541f413d2c50xf01e2aabB323 + // Max 1000. + // At 0 the tail rotor will stall. + inline float GetHeliTailRotorHealth(Vehicle vehicle) { return _i(0xAE8CE82A4219AC8C, vehicle); } // 0xae8ce82a4219ac8c0xa41bc13dB323 + // Max 1000. + // At -100 both helicopter rotors will stall. + inline float GetHeliTailBoomHealth(Vehicle vehicle) { return _i(0xAC51915D27E4A5F7, vehicle); } // 0xac51915d27e4a5f70x8a68388fB323 + inline Void SetHeliMainRotorHealth(Vehicle vehicle, float health) { return _i(0x4056EA1105F5ABD7, vehicle, health); } // 0x4056ea1105f5abd7B463 + inline Void SetHeliTailRotorHealth(Vehicle vehicle, float health) { return _i(0xFE205F38AAA58E5B, vehicle, health); } // 0xfe205f38aaa58e5bB463 + inline BOOL SetHeliTailBoomCanBreakOff(Vehicle vehicle, BOOL toggle) { return _i(0x3EC8BF18AA453FE9, vehicle, toggle); } // 0x3ec8bf18aa453fe90x2916d69bB323 + // NOTE: Debugging functions are not present in the retail version of the game. + inline Void SetVehicleNameDebug(Vehicle vehicle, String name) { return _i(0xBFDF984E2C22B94F, vehicle, name); } // 0xbfdf984e2c22b94f0xa712ff5cB323 + // Sets a vehicle to be strongly resistant to explosions. p0 is the vehicle; set p1 to false to toggle the effect on/off. + inline Void SetVehicleExplodesOnHighExplosionDamage(Vehicle vehicle, BOOL toggle) { return _i(0x71B0892EC081D60A, vehicle, toggle); } // 0x71b0892ec081d60a0x38cc692bB323 + inline Void SetVehicleExplodesOnExplosionDamageAtZeroBodyHealth(Vehicle vehicle, BOOL toggle) { return _i(0xD565F438137F0E10, vehicle, toggle); } // 0xd565f438137f0e10B1103 + inline Void SetAllowVehicleExplodesOnContact(Vehicle vehicle, BOOL toggle) { return _i(0x3441CAD2F2231923, vehicle, toggle); } // 0x3441cad2f22319230xc306a9a3B323 + inline Void SetVehicleDisableTowing(Vehicle vehicle, BOOL toggle) { return _i(0x2B6747FAA9DB9D6B, vehicle, toggle); } // 0x2b6747faa9db9d6b0x95a9accbB323 + inline BOOL GetVehicleHasLandingGear(Vehicle vehicle) { return _i(0xE43701C36CAFF1A4, vehicle); } // 0xe43701c36caff1a4B1180 + // Works for vehicles with a retractable landing gear + // + // Landing gear states: + // + // 0: Deployed + // 1: Closing + // 2: Opening + // 3: Retracted + inline Void ControlLandingGear(Vehicle vehicle, int state) { return _i(0xCFC8BE9A5E1FE575, vehicle, state); } // 0xcfc8be9a5e1fe5750x24f873fbB323 + // Landing gear states: + // + // 0: Deployed + // 1: Closing (Retracting) + // 2: (Landing gear state 2 is never used.) + // 3: Opening (Deploying) + // 4: Retracted + // + // Returns the current state of the vehicles landing gear. + inline int GetLandingGearState(Vehicle vehicle) { return _i(0x9B0F3DCA3DB0F4CD, vehicle); } // 0x9b0f3dca3db0f4cd0xa6f02670B323 + inline BOOL IsAnyVehicleNearPoint(float x, float y, float z, float radius) { return _i(0x61E1DD6125A3EEE6, x, y, z, radius); } // 0x61e1dd6125a3eee60x2867a834B323 + inline Void RequestVehicleHighDetailModel(Vehicle vehicle) { return _i(0xA6E9FDCB2C76785E, vehicle); } // 0xa6e9fdcb2c76785e0x9da21956B323 + inline int GetVehicleModelNumDriveGears(Hash vehicleModel) { return _i(0x61F02E4E9A7A61EA, vehicleModel); } // 0x61f02e4e9a7a61eaB3095 + inline int GetVehicleMaxDriveGearCount(Vehicle vehicle) { return _i(0x24910C3D66BA770D, vehicle); } // 0x24910c3d66ba770dB3095 + inline int GetVehicleCurrentDriveGear(Vehicle vehicle) { return _i(0x56185A25D45A0DCD, vehicle); } // 0x56185a25d45a0dcdB3095 + inline float GetVehicleCurrentRevRatio(Vehicle vehicle) { return _i(0xF9DDA40BC293A61E, vehicle); } // 0xf9dda40bc293a61eB3095 + inline Void RemoveVehicleHighDetailModel(Vehicle vehicle) { return _i(0x00689CDE5F7C6787, vehicle); } // 0x00689cde5f7c67870x382be070B323 + inline BOOL IsVehicleHighDetail(Vehicle vehicle) { return _i(0x1F25887F3C104278, vehicle); } // 0x1f25887f3c1042780x55d41928B323 + // RequestVehicleAsset(GetHashKey(cargobob3), 3); + // + // vehicle found that have asset's: + // cargobob3 + // submersible + // blazer + inline Void RequestVehicleAsset(Hash vehicleHash, int vehicleAsset) { return _i(0x81A15811460FAB3A, vehicleHash, vehicleAsset); } // 0x81a15811460fab3a0x902b4f06B323 + inline BOOL HasVehicleAssetLoaded(int vehicleAsset) { return _i(0x1BBE0523B8DB9A21, vehicleAsset); } // 0x1bbe0523b8db9a210x8daac3cbB323 + inline Void RemoveVehicleAsset(int vehicleAsset) { return _i(0xACE699C71AB9DEB5, vehicleAsset); } // 0xace699c71ab9deb50x9620e9c6B323 + // Sets how much the crane on the tow truck is raised, where 0.0 is fully lowered and 1.0 is fully raised. + inline Void SetVehicleTowTruckArmPosition(Vehicle vehicle, float position) { return _i(0xFE54B92A344583CA, vehicle, position); } // 0xfe54b92a344583ca0x88236e22B323 + inline Void SetAttachedVehicleToTowTruckArm(Vehicle towTruck, Vehicle vehicle) { return _i(0x48BD57D0DD17786A, towTruck, vehicle); } // 0x48bd57d0dd17786aB3095 + // HookOffset defines where the hook is attached. leave at 0 for default attachment. + inline Void AttachVehicleToTowTruck(Vehicle towTruck, Vehicle vehicle, BOOL rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ) { return _i(0x29A16F8D621C4508, towTruck, vehicle, rear, hookOffsetX, hookOffsetY, hookOffsetZ); } // 0x29a16f8d621c45080x8151571aB323 + // First two parameters swapped. Scripts verify that towTruck is the first parameter, not the second. + inline Void DetachVehicleFromTowTruck(Vehicle towTruck, Vehicle vehicle) { return _i(0xC2DB6B6708350ED8, towTruck, vehicle); } // 0xc2db6b6708350ed80xc666cf33B323 + inline BOOL DetachVehicleFromAnyTowTruck(Vehicle vehicle) { return _i(0xD0E9CE05A1E68CD8, vehicle); } // 0xd0e9ce05a1e68cd80x3bf93651B323 + // Scripts verify that towTruck is the first parameter, not the second. + inline BOOL IsVehicleAttachedToTowTruck(Vehicle towTruck, Vehicle vehicle) { return _i(0x146DF9EC4C4B9FD4, towTruck, vehicle); } // 0x146df9ec4c4b9fd40x9699cfdcB323 + inline Entity GetEntityAttachedToTowTruck(Vehicle towTruck) { return _i(0xEFEA18DCF10F8F75, towTruck); } // 0xefea18dcf10f8f750x11ec7844B323 + inline Entity SetVehicleAutomaticallyAttaches(Vehicle vehicle, BOOL p1, Any p2) { return _i(0x8BA6F76BC53A1493, vehicle, p1, p2); } // 0x8ba6f76bc53a14930x4273a8d3B323 + // Sets the arm position of a bulldozer. Position must be a value between 0.0 and 1.0. Ignored when `p2` is set to false, instead incrementing arm position by 0.1 (or 10%). + inline Void SetVehicleBulldozerArmPosition(Vehicle vehicle, float position, BOOL p2) { return _i(0xF8EBCCC96ADB9FB7, vehicle, position, p2); } // 0xf8ebccc96adb9fb70xed23c8a3B323 + inline Void SetVehicleTankTurretPosition(Vehicle vehicle, float position, BOOL p2) { return _i(0x56B94C6D7127DFBA, vehicle, position, p2); } // 0x56b94c6d7127dfba0xb1a52ef7B323 + inline Void SetVehicleTurretTarget(Vehicle vehicle, BOOL p1, float x, float y, float z, BOOL p5) { return _i(0x0581730AB9380412, vehicle, p1, x, y, z, p5); } // 0x0581730ab9380412B1103 + inline Void SetVehicleTankStationary(Vehicle vehicle, BOOL p1) { return _i(0x737E398138550FFF, vehicle, p1); } // 0x737e398138550fffB944 + inline Void SetVehicleTurretSpeedThisFrame(Vehicle vehicle, float speed) { return _i(0x1093408B4B9D1146, vehicle, speed); } // 0x1093408b4b9d11460xf30c566fB323 + inline Void DisableVehicleTurretMovementThisFrame(Vehicle vehicle) { return _i(0x32CAEDF24A583345, vehicle); } // 0x32caedf24a583345B463 + inline Void SetVehicleFlightNozzlePosition(Vehicle vehicle, float angleRatio) { return _i(0x30D779DE7C4F6DD3, vehicle, angleRatio); } // 0x30d779de7c4f6dd30xa7df64d7B323 + inline Void SetVehicleFlightNozzlePositionImmediate(Vehicle vehicle, float angle) { return _i(0x9AA47FFF660CB932, vehicle, angle); } // 0x9aa47fff660cb9320xdd7936f5B323 + inline float GetVehicleFlightNozzlePosition(Vehicle plane) { return _i(0xDA62027C8BDB326E, plane); } // 0xda62027c8bdb326e0xad40ad55B1180 + // True stops vtols from switching modes. Doesn't stop the sound though. + inline Void SetDisableVerticalFlightModeTransition(Vehicle vehicle, BOOL toggle) { return _i(0xCE2B43770B655F8F, vehicle, toggle); } // 0xce2b43770b655f8fB1290 + inline BOOL GenerateVehicleCreationPosFromPaths(Vector3* outVec, Any p1, Vector3* outVec1, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8) { return _i(0xA4822F1CF23F4810, outVec, p1, outVec1, p3, p4, p5, p6, p7, p8); } // 0xa4822f1cf23f48100x34e02fcdB323 + // On accelerating, spins the driven wheels with the others braked, so you don't go anywhere. + inline Void SetVehicleBurnout(Vehicle vehicle, BOOL toggle) { return _i(0xFB8794444A7D60FB, vehicle, toggle); } // 0xfb8794444a7d60fb0x9b6ef0eaB323 + // Returns whether the specified vehicle is currently in a burnout. + // + // + // vb.net + // Public Function isVehicleInBurnout(vh As Vehicle) As Boolean + // Return Native.Function.Call(Of Boolean)(Hash.IsVehicleInBurnout, vh) + // End Function + inline BOOL IsVehicleInBurnout(Vehicle vehicle) { return _i(0x1297A88E081430EB, vehicle); } // 0x1297a88e081430eb0x6632bc12B323 + // Reduces grip significantly so it's hard to go anywhere. + inline Void SetVehicleReduceGrip(Vehicle vehicle, BOOL toggle) { return _i(0x222FF6A823D122E2, vehicle, toggle); } // 0x222ff6a823d122e20x90d3a0d9B323 + // val is 0-3 + // Often used in conjunction with: SetVehicleReduceGrip + inline Void SetVehicleReduceGripLevel(Vehicle vehicle, int val) { return _i(0x6DEE944E1EE90CFB, vehicle, val); } // 0x6dee944e1ee90cfbB1604 + // Sets the turn signal enabled for a vehicle. + // Set turnSignal to 1 for left light, 0 for right light. + inline Void SetVehicleIndicatorLights(Vehicle vehicle, int turnSignal, BOOL toggle) { return _i(0xB5D45264751B7DF0, vehicle, turnSignal, toggle); } // 0xb5d45264751b7df00xa6073b5dB323 + inline Void SetVehicleBrakeLights(Vehicle vehicle, BOOL toggle) { return _i(0x92B35082E0B42F66, vehicle, toggle); } // 0x92b35082e0b42f660x6d9ba11eB323 + inline Void SetVehicleTailLights(Vehicle vehicle, BOOL toggle) { return _i(0x5815BD2763178DF4, vehicle, toggle); } // 0x5815bd2763178df4B2802 + inline Void SetVehicleHandbrake(Vehicle vehicle, BOOL toggle) { return _i(0x684785568EF26A22, vehicle, toggle); } // 0x684785568ef26a220xba729a25B323 + inline Void SetVehicleBrake(Vehicle vehicle, BOOL toggle) { return _i(0xE4E2FD323574965C, vehicle, toggle); } // 0xe4e2fd323574965c0x5a36bc37B757 + inline Void InstantlyFillVehiclePopulation() { return _i(0x48ADC8A773564670); } // 0x48adc8a7735646700x37bc6acbB323 + inline BOOL HasInstantFillVehiclePopulationFinished() { return _i(0x91D6DD290888CBAB); } // 0x91d6dd290888cbab0x71d898efB323 + inline Void NetworkEnableEmptyCrowdingVehiclesRemoval(BOOL toggle) { return _i(0x51DB102F4A3BA5E0, toggle); } // 0x51db102f4a3ba5e00x0b0523b0B323 + // Default:1000||This sets a value which is used when NetworkEnableEmptyCrowdingVehiclesRemoval(true) is called each frame. + inline Void NetworkCapEmptyCrowdingVehiclesRemoval(int p0) { return _i(0xA4A9A4C40E615885, p0); } // 0xa4a9a4c40e615885B1604 + // Gets the trailer of a vehicle and puts it into the trailer parameter. + inline BOOL GetVehicleTrailerVehicle(Vehicle vehicle, Vehicle* trailer) { return _i(0x1CDD6BADC297830D, vehicle, trailer); } // 0x1cdd6badc297830d0xae84d758B323 + inline Vehicle GetVehicleTrailerParentVehicle(Vehicle trailer) { return _i(0x80D9D32636369C92, trailer); } // 0x80d9d32636369c92B2802 + // vehicle must be a plane + inline Void SetVehicleUsesLargeRearRamp(Vehicle vehicle, BOOL toggle) { return _i(0xCAC66558B944DA67, vehicle, toggle); } // 0xcac66558b944da670x0b200ce2B323 + inline Void SetVehicleRudderBroken(Vehicle vehicle, BOOL toggle) { return _i(0x09606148B6C71DEF, vehicle, toggle); } // 0x09606148b6c71def0x3fac3cd4B323 + inline Void SetConvertibleRoofLatchState(Vehicle vehicle, BOOL state) { return _i(0x1A78AD3D8240536F, vehicle, state); } // 0x1a78ad3d8240536f0x0858678cB323 + inline float GetVehicleEstimatedMaxSpeed(Vehicle vehicle) { return _i(0x53AF99BAA671CA47, vehicle); } // 0x53af99baa671ca470x7d1a0616B323 + inline float GetVehicleMaxBraking(Vehicle vehicle) { return _i(0xAD7E85FC227197C4, vehicle); } // 0xad7e85fc227197c40x03b926f6B323 + inline float GetVehicleMaxTraction(Vehicle vehicle) { return _i(0xA132FB5370554DB0, vehicle); } // 0xa132fb5370554db00x7e5a1587B323 + // static - max acceleration + inline float GetVehicleAcceleration(Vehicle vehicle) { return _i(0x5DD35C8D074E57AE, vehicle); } // 0x5dd35c8d074e57ae0x00478321B323 + // Returns max speed (without mods) of the specified vehicle model in m/s. + // + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline float GetVehicleModelEstimatedMaxSpeed(Hash modelHash) { return _i(0xF417C2502FFFED43, modelHash); } // 0xf417c2502fffed430x8f291c4aB323 + // Returns max braking of the specified vehicle model. + // + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline float GetVehicleModelMaxBraking(Hash modelHash) { return _i(0xDC53FD41B4ED944C, modelHash); } // 0xdc53fd41b4ed944c0x7ef02883B323 + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline float GetVehicleModelMaxBrakingMaxMods(Hash modelHash) { return _i(0xBFBA3BA79CFF7EBF, modelHash); } // 0xbfba3ba79cff7ebf0xf3a7293fB323 + // Returns max traction of the specified vehicle model. + // + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline float GetVehicleModelMaxTraction(Hash modelHash) { return _i(0x539DE94D44FDFD0D, modelHash); } // 0x539de94d44fdfd0d0x7f985597B323 + // Returns the acceleration of the specified model. + // + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline float GetVehicleModelAcceleration(Hash modelHash) { return _i(0x8C044C5C84505B6A, modelHash); } // 0x8c044c5c84505b6a0x29cb3537B323 + // 9.8 * thrust if air vehicle, else 0.38 + drive force? + // + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline float GetVehicleModelAccelerationMaxMods(Hash modelHash) { return _i(0x53409B5163D5B846, modelHash); } // 0x53409b5163d5b8460x37fba7bcB323 + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline float GetFlyingVehicleModelAgility(Hash modelHash) { return _i(0xC6AD107DDC9054CC, modelHash); } // 0xc6ad107ddc9054cc0x95bb67ebB323 + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline float GetBoatVehicleModelAgility(Hash modelHash) { return _i(0x5AA3F878A178C4FC, modelHash); } // 0x5aa3f878a178c4fc0x87c5d271B323 + inline float GetVehicleClassEstimatedMaxSpeed(int vehicleClass) { return _i(0x00C09F246ABEDD82, vehicleClass); } // 0x00c09f246abedd820xce67162cB323 + inline float GetVehicleClassMaxTraction(int vehicleClass) { return _i(0xDBC86D85C5059461, vehicleClass); } // 0xdbc86d85c50594610x5b4fdc16B323 + inline float GetVehicleClassMaxAgility(int vehicleClass) { return _i(0x4F930AD022D6DE3B, vehicleClass); } // 0x4f930ad022d6de3b0x45f2bd83B323 + inline float GetVehicleClassMaxAcceleration(int vehicleClass) { return _i(0x2F83E7E45D9EA7AE, vehicleClass); } // 0x2f83e7e45d9ea7ae0x3e220a9bB323 + inline float GetVehicleClassMaxBraking(int vehicleClass) { return _i(0x4BF54C16EC8FEC03, vehicleClass); } // 0x4bf54c16ec8fec030xd08cc1a5B323 + inline int AddRoadNodeSpeedZone(float x, float y, float z, float radius, float speed, BOOL p5) { return _i(0x2CE544C68FB812A0, x, y, z, radius, speed, p5); } // 0x2ce544c68fb812a00xd6685803B323 + inline BOOL RemoveRoadNodeSpeedZone(int speedzone) { return _i(0x1033371FC8E842A7, speedzone); } // 0x1033371fc8e842a70x0c0332a6B323 + inline Void OpenBombBayDoors(Vehicle vehicle) { return _i(0x87E7F24270732CB1, vehicle); } // 0x87e7f24270732cb10x6574041dB323 + inline Void CloseBombBayDoors(Vehicle vehicle) { return _i(0x3556041742A0DC74, vehicle); } // 0x3556041742a0dc740xf8ec5751B323 + // Returns true when the bomb bay doors of this plane are open. False if they're closed. + inline BOOL GetAreBombBayDoorsOpen(Vehicle aircraft) { return _i(0xD0917A423314BBA8, aircraft); } // 0xd0917a423314bba8B1180 + // Possibly: Returns whether the searchlight (found on police vehicles) is toggled on. + // + // @Author Nac + inline BOOL IsVehicleSearchlightOn(Vehicle vehicle) { return _i(0xC0F97FCE55094987, vehicle); } // 0xc0f97fce550949870xadaf3513B323 + // Only works during nighttime. + inline Void SetVehicleSearchlight(Vehicle heli, BOOL toggle, BOOL canBeUsedByAI) { return _i(0x14E85C5EE7A4D542, heli, toggle, canBeUsedByAI); } // 0x14e85c5ee7a4d5420xe2c0dd8aB323 + inline BOOL DoesVehicleHaveSearchlight(Vehicle vehicle) { return _i(0x99015ED7DBEA5113, vehicle); } // 0x99015ed7dbea5113B2189 + // Check if a vehicle seat is accessible. If you park your vehicle near a wall and the ped cannot enter/exit this side, the return value toggles from true (not blocked) to false (blocked). + // + // seatIndex = -1 being the driver seat. + // Use GetVehicleMaxNumberOfPassengers(vehicle) - 1 for last seat index. + // side = only relevant for bikes/motorcycles to check if the left (false)/right (true) side is blocked. + // onEnter = check if you can enter (true) or exit (false) a vehicle. + inline BOOL IsEntryPointForSeatClear(Ped ped, Vehicle vehicle, int seatIndex, BOOL side, BOOL onEnter) { return _i(0x639431E895B9AA57, ped, vehicle, seatIndex, side, onEnter); } // 0x639431e895b9aa570xab0e79ebB323 + // doorId: see SetVehicleDoorShut + inline Vector3 GetEntryPointPosition(Vehicle vehicle, int doorId) { return _i(0xC0572928C0ABFDA3, vehicle, doorId); } // 0xc0572928c0abfda3B944 + inline BOOL CanShuffleSeat(Vehicle vehicle, int seatIndex) { return _i(0x30785D90C956BF35, vehicle, seatIndex); } // 0x30785d90c956bf350xb3eb01edB323 + inline int GetNumModKits(Vehicle vehicle) { return _i(0x33F2E3FE70EAAE1D, vehicle); } // 0x33f2e3fe70eaae1d0xe4903aa0B323 + // Set modKit to 0 if you plan to call SetVehicleMod. That's what the game does. Most body modifications through SetVehicleMod will not take effect until this is set to 0. + // + // Full list of vehicle mod kits and mods by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleModKits.json + inline Void SetVehicleModKit(Vehicle vehicle, int modKit) { return _i(0x1F2AA07F00B3217A, vehicle, modKit); } // 0x1f2aa07f00b3217a0xb8132158B323 + inline int GetVehicleModKit(Vehicle vehicle) { return _i(0x6325D1A044AE510D, vehicle); } // 0x6325d1a044ae510d0x9fe60927B323 + inline int GetVehicleModKitType(Vehicle vehicle) { return _i(0xFC058F5121E54C32, vehicle); } // 0xfc058f5121e54c320xe5f76765B323 + // Returns an int + // + // Wheel Types: + // 0: Sport + // 1: Muscle + // 2: Lowrider + // 3: SUV + // 4: Offroad + // 5: Tuner + // 6: Bike Wheels + // 7: High End + // 8: Benny's Originals + // 9: Benny's Bespoke + // 10: Racing + // 11: Street + // 12: Track + // + // Tested in Los Santos Customs + inline int GetVehicleWheelType(Vehicle vehicle) { return _i(0xB3ED1BFB4BE636DC, vehicle); } // 0xb3ed1bfb4be636dc0xda58d7aeB323 + // 0: Sport + // 1: Muscle + // 2: Lowrider + // 3: SUV + // 4: Offroad + // 5: Tuner + // 6: Bike Wheels + // 7: High End + // 8: Benny's Originals + // 9: Benny's Bespoke + // 10: Racing + // 11: Street + // 12: Track + inline Void SetVehicleWheelType(Vehicle vehicle, int WheelType) { return _i(0x487EB21CC7295BA1, vehicle, WheelType); } // 0x487eb21cc7295ba10x64bdaaadB323 + // paintType: + // 0: Normal + // 1: Metallic + // 2: Pearl + // 3: Matte + // 4: Metal + // 5: Chrome + // 6: Chameleon + inline int GetNumModColors(int paintType, BOOL p1) { return _i(0xA551BE18C11A476D, paintType, p1); } // 0xa551be18c11a476d0x73722cd9B323 + // paintType: + // 0: Normal + // 1: Metallic + // 2: Pearl + // 3: Matte + // 4: Metal + // 5: Chrome + // 6: Chameleon + // + // color: number of the color. + // + // p3 seems to always be 0. + // + // Full list of vehicle colors and vehicle plates by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json + inline Void SetVehicleModColor1(Vehicle vehicle, int paintType, int color, int pearlescentColor) { return _i(0x43FEB945EE7F85B8, vehicle, paintType, color, pearlescentColor); } // 0x43feb945ee7f85b80xcbe9a54dB323 + // Changes the secondary paint type and color + // paintType: + // 0: Normal + // 1: Metallic + // 2: Pearl + // 3: Matte + // 4: Metal + // 5: Chrome + // 6: Chameleon + // + // color: number of the color + // + // Full list of vehicle colors and vehicle plates by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json + inline Void SetVehicleModColor2(Vehicle vehicle, int paintType, int color) { return _i(0x816562BADFDEC83E, vehicle, paintType, color); } // 0x816562badfdec83e0xc32613c2B323 + inline Void GetVehicleModColor1(Vehicle vehicle, int* paintType, int* color, int* pearlescentColor) { return _i(0xE8D65CA700C9A693, vehicle, paintType, color, pearlescentColor); } // 0xe8d65ca700c9a6930xe625510aB323 + inline Void GetVehicleModColor2(Vehicle vehicle, int* paintType, int* color) { return _i(0x81592BE4E3878728, vehicle, paintType, color); } // 0x81592be4e38787280x9b76bb8eB323 + // Returns a string which is the codename of the vehicle's currently selected primary color + // + // p1 is always 0 + inline String GetVehicleModColor1Name(Vehicle vehicle, BOOL p1) { return _i(0xB45085B721EFD38C, vehicle, p1); } // 0xb45085b721efd38c0x9a0840fdB323 + // Returns a string which is the codename of the vehicle's currently selected secondary color + inline String GetVehicleModColor2Name(Vehicle vehicle) { return _i(0x4967A516ED23A5A1, vehicle); } // 0x4967a516ed23a5a10x9bdc0b49B323 + inline BOOL HaveVehicleModsStreamedIn(Vehicle vehicle) { return _i(0x9A83F5F9963775EF, vehicle); } // 0x9a83f5f9963775ef0x112d637aB323 + // Returns true for any mod part listed in GEN9_EXCLUSIVE_ASSETS_VEHICLES_FILE. + inline BOOL IsVehicleModGen9Exclusive(Vehicle vehicle, int modType, int modIndex) { return _i(0x00834EAC4A96E010, vehicle, modType, modIndex); } // 0x00834eac4a96e010B2699 + // In b944, there are 50 (0 - 49) mod types. + // + // Sets the vehicle mod. + // The vehicle must have a mod kit first. + // + // Any out of range ModIndex is stock. + // + // #Mod Type + // Spoilers - 0 + // Front Bumper - 1 + // Rear Bumper - 2 + // Side Skirt - 3 + // Exhaust - 4 + // Frame - 5 + // Grille - 6 + // Hood - 7 + // Fender - 8 + // Right Fender - 9 + // Roof - 10 + // Engine - 11 + // Brakes - 12 + // Transmission - 13 + // Horns - 14 (modIndex from 0 to 51) + // Suspension - 15 + // Armor - 16 + // Front Wheels - 23 + // Back Wheels - 24 //only for motocycles + // Plate holders - 25 + // Trim Design - 27 + // Ornaments - 28 + // Dial Design - 30 + // Steering Wheel - 33 + // Shifter Leavers - 34 + // Plaques - 35 + // Hydraulics - 38 + // Livery - 48 + // + // ENUMS: https://pastebin.com/QzEAn02v + inline Void SetVehicleMod(Vehicle vehicle, int modType, int modIndex, BOOL customTires) { return _i(0x6AF0636DDEDCB6DD, vehicle, modType, modIndex, customTires); } // 0x6af0636ddedcb6dd0xb52e5ed5B323 + // In b944, there are 50 (0 - 49) mod types. See SetVehicleMod for the list. + // + // Returns -1 if the vehicle mod is stock + inline int GetVehicleMod(Vehicle vehicle, int modType) { return _i(0x772960298DA26FDB, vehicle, modType); } // 0x772960298da26fdb0xdc520069B323 + // Only used for wheels(ModType = 23/24) Returns true if the wheels are custom wheels + inline int GetVehicleModVariation(Vehicle vehicle, int modType) { return _i(0xB3924ECD70E095DC, vehicle, modType); } // 0xb3924ecd70e095dc0xc1b92003B323 + // Returns how many possible mods a vehicle has for a given mod type + inline int GetNumVehicleMods(Vehicle vehicle, int modType) { return _i(0xE38E9162A2500646, vehicle, modType); } // 0xe38e9162a25006460x8a814ff9B323 + inline Void RemoveVehicleMod(Vehicle vehicle, int modType) { return _i(0x92D619E420858204, vehicle, modType); } // 0x92d619e4208582040x9cc80a43B323 + // Toggles: + // UNK17 - 17 + // Turbo - 18 + // UNK19 - 19 + // Tire Smoke - 20 + // UNK21 - 21 + // Xenon Headlights - 22 + inline Void ToggleVehicleMod(Vehicle vehicle, int modType, BOOL toggle) { return _i(0x2A1F4F37F95BAD08, vehicle, modType, toggle); } // 0x2a1f4f37f95bad080xd095f811B323 + inline BOOL IsToggleModOn(Vehicle vehicle, int modType) { return _i(0x84B233A8C8FC8AE7, vehicle, modType); } // 0x84b233a8c8fc8ae70xf0e1689fB323 + // Returns the text label of a mod type for a given vehicle + // + // Use GetFilenameForAudioConversation to get the part name in the game's language + inline String GetModTextLabel(Vehicle vehicle, int modType, int modValue) { return _i(0x8935624F8C5592CC, vehicle, modType, modValue); } // 0x8935624f8c5592cc0x0ba39ca7B323 + // Returns the name for the type of vehicle mod(Armour, engine etc) + // + inline String GetModSlotName(Vehicle vehicle, int modType) { return _i(0x51F0FEB9F6AE98C0, vehicle, modType); } // 0x51f0feb9f6ae98c00x5e113483B323 + // Returns the text label of the vehicle's liveryIndex, as specified by the liveryNames section of the vehicle's modkit data in the carcols file. + // + // example + // + // int count = VEHICLE::GetVehicleLiveryCount(veh); + // for (int i = 0; i < count; i++) + // { + // String LiveryName = VEHICLE::GetLiveryName(veh, i); + // } + // + // + // this example will work fine to fetch all names + // for example for Sanchez we get + // + // SANC_LV1 + // SANC_LV2 + // SANC_LV3 + // SANC_LV4 + // SANC_LV5 + // + // + // Use GetFilenameForAudioConversation, to get the localized livery name. + // + // Full list of vehicle mod kits and mods by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleModKits.json + inline String GetLiveryName(Vehicle vehicle, int liveryIndex) { return _i(0xB4C7A93837C91A1F, vehicle, liveryIndex); } // 0xb4c7a93837c91a1f0xed80b5beB323 + inline int GetVehicleModModifierValue(Vehicle vehicle, int modType, int modIndex) { return _i(0x90A38E9838E0A8C1, vehicle, modType, modIndex); } // 0x90a38e9838e0a8c10x73ae5505B323 + // Can be used for IsDlcVehicleMod and GetDlcVehicleModLockHash + inline Hash GetVehicleModIdentifierHash(Vehicle vehicle, int modType, int modIndex) { return _i(0x4593CF82AA179706, vehicle, modType, modIndex); } // 0x4593cf82aa1797060x94850968B323 + inline Void PreloadVehicleMod(Vehicle vehicle, int modType, int modIndex) { return _i(0x758F49C24925568A, vehicle, modType, modIndex); } // 0x758f49c24925568a0x6ea5f4a8B323 + inline BOOL HasPreloadModsFinished(Vehicle vehicle) { return _i(0x06F43E5175EB6D96, vehicle); } // 0x06f43e5175eb6d960xa8a0d246B323 + inline Void ReleasePreloadMods(Vehicle vehicle) { return _i(0x445D79F995508307, vehicle); } // 0x445d79f9955083070xd442521fB323 + // Sets the tire smoke's color of this vehicle. + // + // vehicle: The vehicle that is the target of this method. + // r: The red level in the RGB color code. + // g: The green level in the RGB color code. + // b: The blue level in the RGB color code. + // + // Note: setting r,g,b to 0 will give the car the "Patriot" tire smoke. + inline Void SetVehicleTyreSmokeColor(Vehicle vehicle, int r, int g, int b) { return _i(0xB5BA80F839791C0F, vehicle, r, g, b); } // 0xb5ba80f839791c0f0x3edec0dbB323 + inline Void GetVehicleTyreSmokeColor(Vehicle vehicle, int* r, int* g, int* b) { return _i(0xB635392A4938B3C3, vehicle, r, g, b); } // 0xb635392a4938b3c30x75280015B323 + // enum WindowTints + // { + // WINDOWTINT_NONE, + // WINDOWTINT_PURE_BLACK, + // WINDOWTINT_DARKSMOKE, + // WINDOWTINT_LIGHTSMOKE, + // WINDOWTINT_STOCK, + // WINDOWTINT_LIMO, + // WINDOWTINT_GREEN + // }; + // Full list of all vehicle window tints by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json + inline Void SetVehicleWindowTint(Vehicle vehicle, int tint) { return _i(0x57C51E6BAD752696, vehicle, tint); } // 0x57c51e6bad7526960x497c8787B323 + inline int GetVehicleWindowTint(Vehicle vehicle) { return _i(0x0EE21293DAD47C95, vehicle); } // 0x0ee21293dad47c950x13d53892B323 + inline int GetNumVehicleWindowTints() { return _i(0x9D1224004B3A6707); } // 0x9d1224004b3a67070x625c7b66B323 + // What's this for? Primary and Secondary RGB have their own natives and this one doesn't seem specific. + inline Void GetVehicleColor(Vehicle vehicle, int* r, int* g, int* b) { return _i(0xF3CC740D36221548, vehicle, r, g, b); } // 0xf3cc740d362215480x03bc8f1bB323 + // Some kind of flags. + inline int GetVehicleColoursWhichCanBeSet(Vehicle vehicle) { return _i(0xEEBFC7A7EFDC35B4, vehicle); } // 0xeebfc7a7efdc35b40x749deea2B323 + // iVar3 = get_vehicle_cause_of_destruction(uLocal_248[iVar2]); + // if (iVar3 == joaat("weapon_stickybomb")) + // { + // func_171(726); + // iLocal_260 = 1; + // } + inline Hash GetVehicleCauseOfDestruction(Vehicle vehicle) { return _i(0xE495D1EF4C91FD20, vehicle); } // 0xe495d1ef4c91fd200x7f8c20ddB323 + // Used for helis. + inline Void OverridePlaneDamageThrehsold(Vehicle vehicle, float health) { return _i(0x5EE5632F47AE9695, vehicle, health); } // 0x5ee5632f47ae9695B463 + inline Void SetTransmissionReducedGearRatio(Vehicle vehicle, BOOL toggle) { return _i(0x337EF33DA3DDB990, vehicle, toggle); } // 0x337ef33da3ddb990B3095 + inline int GetVehicleDesiredDriveGear(Vehicle vehicle) { return _i(0xFD8CE53356B5D745, vehicle); } // 0xfd8ce53356b5d745B3095 + // From the driver's perspective, is the left headlight broken. + inline BOOL GetIsLeftVehicleHeadlightDamaged(Vehicle vehicle) { return _i(0x5EF77C9ADD3B11A3, vehicle); } // 0x5ef77c9add3b11a30xa0777943B323 + // From the driver's perspective, is the right headlight broken. + inline BOOL GetIsRightVehicleHeadlightDamaged(Vehicle vehicle) { return _i(0xA7ECB73355EB2F20, vehicle); } // 0xa7ecb73355eb2f200xf178390bB323 + // Returns true when both headlights are broken. This does not include extralights. + inline BOOL GetBothVehicleHeadlightsDamaged(Vehicle vehicle) { return _i(0xEC69ADF931AAE0C3, vehicle); } // 0xec69adf931aae0c3B505 + inline Void ModifyVehicleTopSpeed(Vehicle vehicle, float value) { return _i(0x93A3996368C94158, vehicle, value); } // 0x93a3996368c941580xe943b09cB323 + // To reset the max speed, set the `speed` value to `0.0` or lower. + inline Void SetVehicleMaxSpeed(Vehicle vehicle, float speed) { return _i(0xBAA045B4E42F3C06, vehicle, speed); } // 0xbaa045b4e42f3c06B1103 + // Has something to do with trains. Always precedes SetMissionTrainAsNoLongerNeeded. + // May be true that it can be used with trains not sure, but not specifically for trains. Go find Xbox360 decompiled scripts and search for 'func_1333' in freemode.c it isn't used just for trains. Thanks for the info tho. + inline Void SetVehicleStaysFrozenWhenCleanedUp(Vehicle vehicle, BOOL toggle) { return _i(0x1CF38D529D7441D9, vehicle, toggle); } // 0x1cf38d529d7441d90xdf594d8dB323 + inline Void SetVehicleActAsIfHighSpeedForFragSmashing(Vehicle vehicle, BOOL p1) { return _i(0x1F9FB66F3A3842D2, vehicle, p1); } // 0x1f9fb66f3a3842d20x4d840fc4B323 + // Sets some bit and float of vehicle. float is >= 0 + inline Void SetPedsCanFallOffThisVehicleFromLargeFallDamage(Vehicle vehicle, BOOL toggle, float p2) { return _i(0x59C3757B3B7408E8, vehicle, toggle, p2); } // 0x59c3757b3b7408e8B1493 + inline int AddVehicleCombatAngledAvoidanceArea(float p0, float p1, float p2, float p3, float p4, float p5, float p6) { return _i(0x54B0F614960F4A5F, p0, p1, p2, p3, p4, p5, p6); } // 0x54b0f614960f4a5f0x5ab26c2bB323 + inline Void RemoveVehicleCombatAvoidanceArea(int p0) { return _i(0xE30524E1871F481D, p0); } // 0xe30524e1871f481d0xef05f807B323 + inline BOOL IsAnyPedRappellingFromHeli(Vehicle vehicle) { return _i(0x291E373D483E7EE7, vehicle); } // 0x291e373d483e7ee70xd656e7e5B323 + // <1.0 - Decreased torque + // =1.0 - Default torque + // >1.0 - Increased torque + // + // Negative values will cause the vehicle to go backwards instead of forwards while accelerating. + // + // value - is between 0.2 and 1.8 in the decompiled scripts. + // + // This needs to be called every frame to take effect. + inline Void SetVehicleCheatPowerIncrease(Vehicle vehicle, float value) { return _i(0xB59E4BD37AE292DB, vehicle, value); } // 0xb59e4bd37ae292db0x642da5aaB323 + inline Void SetVehicleInfluencesWantedLevel(Any p0, BOOL p1) { return _i(0x0AD9E8F87FF7C16F, p0, p1); } // 0x0ad9e8f87ff7c16f0x04f5546cB323 + // Sets the wanted state of this vehicle. + inline Void SetVehicleIsWanted(Vehicle vehicle, BOOL state) { return _i(0xF7EC25A3EBEEC726, vehicle, state); } // 0xf7ec25a3ebeec7260xdaa388e8B323 + // Sets the boat boom position for the `TR3` trailer. + // Ratio value is between `0.0` and `1.0`, where `0.0` is 90 degrees to the left of the boat, and `1.0` is just slightly to the right/back of the boat. + // To get the current boom position ratio, use GetBoatBoomPositionRatio + inline Void SwingBoatBoomToRatio(Vehicle vehicle, float ratio) { return _i(0xF488C566413B4232, vehicle, ratio); } // 0xf488c566413b42320xa25ccb8cB323 + // Same call as AllowBoatBoomToAnimate + inline Void SwingBoatBoomFreely(Vehicle vehicle, BOOL toggle) { return _i(0xC1F981A6F74F0C23, vehicle, toggle); } // 0xc1f981a6f74f0c230x00966934B323 + inline Void AllowBoatBoomToAnimate(Vehicle vehicle, BOOL toggle) { return _i(0x0F3B4D4E43177236, vehicle, toggle); } // 0x0f3b4d4e431772360x113df5fdB323 + inline float GetBoatBoomPositionRatio(Vehicle vehicle) { return _i(0x6636C535F6CC2725, vehicle); } // 0x6636c535f6cc27250x7c8d6464B323 + inline Void DisablePlaneAileron(Vehicle vehicle, BOOL p1, BOOL p2) { return _i(0x23428FC53C60919C, vehicle, p1, p2); } // 0x23428fc53c60919c0x7e84c45cB323 + // Returns true when in a vehicle, false whilst entering/exiting. + inline BOOL GetIsVehicleEngineRunning(Vehicle vehicle) { return _i(0xAE31E7DF9B5B132E, vehicle); } // 0xae31e7df9b5b132e0x7dc6d022B323 + inline Void SetVehicleUseAlternateHandling(Vehicle vehicle, BOOL toggle) { return _i(0x1D97D1E3A70A649F, vehicle, toggle); } // 0x1d97d1e3a70a649f0xa03e42dfB323 + // Only works on bikes, both X and Y work in the -1 - 1 range. + // + // X forces the bike to turn left or right (-1, 1) + // Y forces the bike to lean to the left or to the right (-1, 1) + // + // Example with X -1/Y 1 + // http://i.imgur.com/TgIuAPJ.jpg + inline Void SetBikeOnStand(Vehicle vehicle, float x, float y) { return _i(0x9CFA4896C3A53CBB, vehicle, x, y); } // 0x9cfa4896c3a53cbb0x15d40761B323 + inline Void SetVehicleNotStealableAmbiently(Vehicle vehicle, BOOL p1) { return _i(0xAB04325045427AAE, vehicle, p1); } // 0xab04325045427aae0x1984f88dB323 + inline Void LockDoorsWhenNoLongerNeeded(Vehicle vehicle) { return _i(0xCFD778E7904C255E, vehicle); } // 0xcfd778e7904c255e0x3fbe904fB323 + inline Void SetLastDrivenVehicle(Vehicle vehicle) { return _i(0xACFB2463CC22BED2, vehicle); } // 0xacfb2463cc22bed20xd1b71a25B323 + inline Vehicle GetLastDrivenVehicle() { return _i(0xB2D06FAEDE65B577); } // 0xb2d06faede65b5770xfeb0c0c8B323 + inline Void ClearLastDrivenVehicle() { return _i(0xE01903C47C7AC89E); } // 0xe01903c47c7ac89e0x07186ad9B323 + inline Void SetVehicleHasBeenDrivenFlag(Vehicle vehicle, BOOL toggle) { return _i(0x02398B627547189C, vehicle, toggle); } // 0x02398b627547189c0x08cd58f9B323 + inline Void SetTaskVehicleGotoPlaneMinHeightAboveTerrain(Vehicle plane, int height) { return _i(0xB893215D8D4C015B, plane, height); } // 0xb893215d8d4c015b0x8c4b63e2B323 + inline Void SetVehicleLodMultiplier(Vehicle vehicle, float multiplier) { return _i(0x93AE6A61BE015BF1, vehicle, multiplier); } // 0x93ae6a61be015bf10x569e5ae3B323 + inline Void SetVehicleCanSaveInGarage(Vehicle vehicle, BOOL toggle) { return _i(0x428BACCDF5E26EAD, vehicle, toggle); } // 0x428baccdf5e26ead0x1604c2f5B323 + // Also includes some "turnOffBones" when vehicle mods are installed. + inline int GetVehicleNumOfBrokenOffParts(Vehicle vehicle) { return _i(0x42A4BEB35D372407, vehicle); } // 0x42a4beb35d3724070x8cdb0c09B323 + inline int GetVehicleNumOfBrokenLoosenParts(Vehicle vehicle) { return _i(0x2C8CBFE1EA5FC631, vehicle); } // 0x2c8cbfe1ea5fc6310xabc99e21B323 + inline Void SetForceVehicleEngineDamageByBullet(Any p0, BOOL p1) { return _i(0x4D9D109F63FEE1D4, p0, p1); } // 0x4d9d109f63fee1d40x900c878cB323 + // Allows creation of CEventShockingPlaneFlyby, CEventShockingHelicopterOverhead, and other(?) Shocking events + inline Void SetVehicleGeneratesEngineShockingEvents(Vehicle vehicle, BOOL toggle) { return _i(0x279D50DE5652D935, vehicle, toggle); } // 0x279d50de5652d9350xb3200f72B323 + // Copies sourceVehicle's damage (broken bumpers, broken lights, etc.) to targetVehicle. + inline Void CopyVehicleDamages(Vehicle sourceVehicle, Vehicle targetVehicle) { return _i(0xE44A982368A4AF23, sourceVehicle, targetVehicle); } // 0xe44a982368a4af230xbae491c7B323 + inline Void DisableVehicleExplosionBreakOffParts() { return _i(0xF25E02CB9C5818F8); } // 0xf25e02cb9c5818f80xf0e59bc1B323 + inline Void SetLightsCutoffDistanceTweak(float distance) { return _i(0xBC3CCA5844452B06, distance); } // 0xbc3cca5844452b060x929801c6B323 + // Commands the driver of an armed vehicle (p0) to shoot its weapon at a target (p1). p3, p4 and p5 are the coordinates of the target. Example: + // + // WEAPON::SetCurrentPedVehicleWeapon(pilot,MISC::GetHashKey("VEHICLE_WEAPON_PLANE_ROCKET")); VEHICLE::SetVehicleShootAtTarget(pilot, target, targPos.x, targPos.y, targPos.z); + inline Void SetVehicleShootAtTarget(Ped driver, Entity entity, float xTarget, float yTarget, float zTarget) { return _i(0x74CD9A9327A282EA, driver, entity, xTarget, yTarget, zTarget); } // 0x74cd9a9327a282ea0x2343ffdfB323 + inline BOOL GetVehicleLockOnTarget(Vehicle vehicle, Entity* entity) { return _i(0x8F5EBAB1F260CFCE, vehicle, entity); } // 0x8f5ebab1f260cfce0x4a557117B323 + inline Void SetForceHdVehicle(Vehicle vehicle, BOOL toggle) { return _i(0x97CE68CB032583F0, vehicle, toggle); } // 0x97ce68cb032583f00xe0fc6a32B323 + inline Void SetVehicleCustomPathNodeStreamingRadius(Vehicle vehicle, float p1) { return _i(0x182F266C2D9E2BEB, vehicle, p1); } // 0x182f266c2d9e2beb0x7d0de7eaB323 + inline int GetVehiclePlateType(Vehicle vehicle) { return _i(0x9CCC9525BF2408E0, vehicle); } // 0x9ccc9525bf2408e00x65ca9286B323 + // in script hook .net + // + // Vehicle v = ...; + // Function.Call(Hash.TrackVehicleVisibility, v.Handle); + inline Void TrackVehicleVisibility(Vehicle vehicle) { return _i(0x64473AEFDCF47DCA, vehicle); } // 0x64473aefdcf47dca0x78122dc1B323 + // must be called after TrackVehicleVisibility + // + // it's not instant so probabilly must pass an 'update' to see correct result. + inline BOOL IsVehicleVisible(Vehicle vehicle) { return _i(0xAA0A52D24FB98293, vehicle); } // 0xaa0a52d24fb982930x7e0d6056B323 + inline Void SetVehicleGravity(Vehicle vehicle, BOOL toggle) { return _i(0x89F149B6131E57DA, vehicle, toggle); } // 0x89f149b6131e57da0x07b2a6dcB323 + // Enable/Disables global slipstream physics + inline Void SetEnableVehicleSlipstreaming(BOOL toggle) { return _i(0xE6C0C80B8C867537, toggle); } // 0xe6c0c80b8c8675370xd2b8acbdB323 + inline Void SetVehicleSlipstreamingShouldTimeOut(BOOL toggle) { return _i(0xF051D9BFB6BA39C0, toggle); } // 0xf051d9bfb6ba39c0B877 + // Returns a float value between 0.0 and 3.0 related to its slipstream draft (boost/speedup). + inline float GetVehicleCurrentTimeInSlipStream(Vehicle vehicle) { return _i(0x36492C2F0D134C56, vehicle); } // 0x36492c2f0d134c560xa4a75fcfB323 + // Returns true if the vehicle is being slipstreamed by another vehicle + inline BOOL IsVehicleProducingSlipStream(Vehicle vehicle) { return _i(0x48C633E94A8142A7, vehicle); } // 0x48c633e94a8142a7B877 + inline Void SetVehicleInactiveDuringPlayback(Vehicle vehicle, BOOL toggle) { return _i(0x06582AFF74894C75, vehicle, toggle); } // 0x06582aff74894c750x50f89338B323 + inline Void SetVehicleActiveDuringPlayback(Vehicle vehicle, BOOL toggle) { return _i(0xDFFCEF48E511DB48, vehicle, toggle); } // 0xdffcef48e511db480xeb7d7c27B323 + // Returns false if the vehicle has the FLAG_NO_RESPRAY flag set. + inline BOOL IsVehicleSprayable(Vehicle vehicle) { return _i(0x8D474C8FAEFF6CDE, vehicle); } // 0x8d474c8faeff6cde0x5eb00a6aB323 + inline Void SetVehicleEngineCanDegrade(Vehicle vehicle, BOOL toggle) { return _i(0x983765856F2564F9, vehicle, toggle); } // 0x983765856f2564f90x081dac12B323 + // Adds some kind of shadow to the vehicle. + // + // p1 and p2 use values from 0-255 and both make the shadow darker the lower the value is. -1 disables the effect. + inline Void DisableVehcileDynamicAmbientScales(Vehicle vehicle, int p1, int p2) { return _i(0xF0E4BA16D1DB546C, vehicle, p1, p2); } // 0xf0e4ba16d1db546c0x5bd8d82dB323 + // Remove the weird shadow applied by DisableVehcileDynamicAmbientScales. + inline Void EnableVehicleDynamicAmbientScales(Vehicle vehicle) { return _i(0xF87D9F2301F7D206, vehicle); } // 0xf87d9f2301f7d2060x450ad03aB323 + inline BOOL IsPlaneLandingGearIntact(Vehicle plane) { return _i(0x4198AB0022B15F87, plane); } // 0x4198ab0022b15f870xbd085dcaB323 + inline BOOL ArePlanePropellersIntact(Vehicle plane) { return _i(0x755D6D5267CBBD7E, plane); } // 0x755d6d5267cbbd7e0xabbdd5c6B323 + inline BOOL SetPlanePropellerHealth(Vehicle plane, float health) { return _i(0x4C815EB175086F84, plane, health); } // 0x4c815eb175086f84B1103 + inline Void SetVehicleCanDeformWheels(Vehicle vehicle, BOOL toggle) { return _i(0x0CDDA42F9E360CA6, vehicle, toggle); } // 0x0cdda42f9e360ca60x9b581de7B323 + // Only returns true if the vehicle was marked as stolen with SetVehicleIsStolen. + inline BOOL IsVehicleStolen(Vehicle vehicle) { return _i(0x4AF9BD80EEBEB453, vehicle); } // 0x4af9bd80eebeb4530x20b61ddeB323 + inline Void SetVehicleIsStolen(Vehicle vehicle, BOOL isStolen) { return _i(0x67B2C79AA7FF5738, vehicle, isStolen); } // 0x67b2c79aa7ff57380x70912e42B323 + // This native sets the turbulence multiplier. It only works for planes. + // 0.0 = no turbulence at all. + // 1.0 = heavy turbulence. + // Works by just calling it once, does not need to be called every tick. + inline Void SetPlaneTurbulenceMultiplier(Vehicle vehicle, float multiplier) { return _i(0xAD2D28A1AFDFF131, vehicle, multiplier); } // 0xad2d28a1afdff1310xed159ae6B323 + inline BOOL AreWingsOfPlaneIntact(Vehicle plane) { return _i(0x5991A01434CE9677, plane); } // 0x5991a01434ce96770xaf8cb3dfB323 + // This native doesn't seem to do anything, might be a debug-only native. + // + // Confirmed, it is a debug native. + inline Void AllowAmbientVehiclesToAvoidAdverseConditions(Vehicle vehicle) { return _i(0xB264C4D2F2B0A78B, vehicle); } // 0xb264c4d2f2b0a78b0x45f72495B323 + inline Void DetachVehicleFromCargobob(Vehicle vehicle, Vehicle cargobob) { return _i(0x0E21D3DF1051399D, vehicle, cargobob); } // 0x0e21d3df1051399d0x83d3d331B323 + inline BOOL DetachVehicleFromAnyCargobob(Vehicle vehicle) { return _i(0xADF7BE450512C12F, vehicle); } // 0xadf7be450512c12f0x50e0eabeB323 + inline BOOL DetachEntityFromCargobob(Vehicle cargobob, Entity entity) { return _i(0xAF03011701811146, cargobob, entity); } // 0xaf03011701811146B678 + inline BOOL IsVehicleAttachedToCargobob(Vehicle cargobob, Vehicle vehicleAttached) { return _i(0xD40148F22E81A1D9, cargobob, vehicleAttached); } // 0xd40148f22e81a1d90x5deec76cB323 + // Returns attached vehicle (Vehicle in parameter must be cargobob) + inline Vehicle GetVehicleAttachedToCargobob(Vehicle cargobob) { return _i(0x873B82D42AC2B9E5, cargobob); } // 0x873b82d42ac2b9e50x301a1d24B323 + inline Entity GetEntityAttachedToCargobob(Any p0) { return _i(0x99093F60746708CA, p0); } // 0x99093f60746708caB1103 + inline Void AttachVehicleToCargobob(Vehicle cargobob, Vehicle vehicle, int p2, float x, float y, float z) { return _i(0x4127F1D84E347769, cargobob, vehicle, p2, x, y, z); } // 0x4127f1d84e3477690x607dc9d5B323 + inline Void AttachEntityToCargobob(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5) { return _i(0xA1DD82F3CCF9A01E, p0, p1, p2, p3, p4, p5); } // 0xa1dd82f3ccf9a01e0xaeb29f98B944 + // Stops cargobob from being able to detach the attached vehicle. + inline Void SetCargobobForceDontDetachVehicle(Vehicle cargobob, BOOL toggle) { return _i(0x571FEB383F629926, cargobob, toggle); } // 0x571feb383f6299260x49949fdaB323 + inline Void SetCargobobExcludeFromPickupEntity(Any p0, Any p1) { return _i(0x1F34B0626C594380, p0, p1); } // 0x1f34b0626c594380B757 + inline BOOL CanCargobobPickUpEntity(Any p0, Any p1) { return _i(0x2C1D8B3B19E517CC, p0, p1); } // 0x2c1d8b3b19e517ccB757 + // Gets the position of the cargobob hook, in world coords. + inline Vector3 GetAttachedPickUpHookPosition(Vehicle cargobob) { return _i(0xCBDB9B923CACC92D, cargobob); } // 0xcbdb9b923cacc92d0xe6633dcfB323 + // Returns true only when the hook is active, will return false if the magnet is active + inline BOOL DoesCargobobHavePickUpRope(Vehicle cargobob) { return _i(0x1821D91AD4B56108, cargobob); } // 0x1821d91ad4b561080xaf769b81B323 + // Drops the Hook/Magnet on a cargobob + // + // state + // enum eCargobobHook + // { + // CARGOBOB_HOOK = 0, + // CARGOBOB_MAGNET = 1, + // }; + inline Void CreatePickUpRopeForCargobob(Vehicle cargobob, int state) { return _i(0x7BEB0C7A235F6F3B, cargobob, state); } // 0x7beb0c7a235f6f3b0x4d3c9a99B323 + // Retracts the hook on the cargobob. + // + // Note: after you retract it the natives for dropping the hook no longer work + inline Void RemovePickUpRopeForCargobob(Vehicle cargobob) { return _i(0x9768CF648F54C804, cargobob); } // 0x9768cf648f54c8040xa8211ee9B323 + // min: 1.9f, max: 100.0f + inline Void SetPickupRopeLengthForCargobob(Vehicle cargobob, float length1, float length2, BOOL p3) { return _i(0x877C1EAEAC531023, cargobob, length1, length2, p3); } // 0x877c1eaeac5310230x3a8ab081B323 + inline Void SetPickupRopeLengthWithoutCreatingRopeForCargobob(Any p0, Any p1, Any p2) { return _i(0xC0ED6438E6D39BA8, p0, p1, p2); } // 0xc0ed6438e6d39ba8B944 + inline Void SetCargobobPickupRopeDampingMultiplier(Any p0, Any p1) { return _i(0xCF1182F682F65307, p0, p1); } // 0xcf1182f682f653070x7d927e1bB323 + inline Void SetCargobobPickupRopeType(Any p0, Any p1) { return _i(0x0D5F65A8F4EBDAB5, p0, p1); } // 0x0d5f65a8f4ebdab50xf258ada1B1103 + // Returns true only when the magnet is active, will return false if the hook is active + inline BOOL DoesCargobobHavePickupMagnet(Vehicle cargobob) { return _i(0x6E08BF5B3722BAC9, cargobob); } // 0x6e08bf5b3722bac90x4778ca0aB323 + // Won't attract or magnetize to any helicopters or planes of course, but that's common sense. + inline Void SetCargobobPickupMagnetActive(Vehicle cargobob, BOOL isActive) { return _i(0x9A665550F8DA349B, cargobob, isActive); } // 0x9a665550f8da349b0xf57066daB323 + inline Void SetCargobobPickupMagnetStrength(Vehicle cargobob, float strength) { return _i(0xBCBFCD9D1DAC19E2, cargobob, strength); } // 0xbcbfcd9d1dac19e20xcc3cf97dB323 + inline Void SetCargobobPickupMagnetFalloff(Vehicle cargobob, float p1) { return _i(0xA17BAD153B51547E, cargobob, p1); } // 0xa17bad153b51547eB323 + inline Void SetCargobobPickupMagnetReducedStrength(Vehicle cargobob, float p1) { return _i(0x66979ACF5102FD2F, cargobob, p1); } // 0x66979acf5102fd2fB323 + inline Void SetCargobobPickupMagnetReducedFalloff(Vehicle cargobob, float p1) { return _i(0x6D8EAC07506291FB, cargobob, p1); } // 0x6d8eac07506291fbB323 + inline Void SetCargobobPickupMagnetPullStrength(Vehicle cargobob, float p1) { return _i(0xED8286F71A819BAA, cargobob, p1); } // 0xed8286f71a819baa0x8191bc1aB323 + inline Void SetCargobobPickupMagnetPullRopeLength(Vehicle vehicle, float p1) { return _i(0x685D5561680D088B, vehicle, p1); } // 0x685d5561680d088bB323 + inline Void SetCargobobPickupMagnetSetTargetedMode(Vehicle vehicle, Vehicle cargobob) { return _i(0xE301BD63E9E13CF0, vehicle, cargobob); } // 0xe301bd63e9e13cf0B323 + inline Void SetCargobobPickupMagnetSetAmbientMode(Vehicle vehicle, BOOL p1, BOOL p2) { return _i(0x9BDDC73CC6A115D4, vehicle, p1, p2); } // 0x9bddc73cc6a115d40x50cdb295B323 + inline Void SetCargobobPickupMagnetEnsurePickupEntityUpright(Vehicle vehicle, BOOL p1) { return _i(0x56EB5E94318D3FB6, vehicle, p1); } // 0x56eb5e94318d3fb60x30f43fe3B323 + inline BOOL DoesVehicleHaveWeapons(Vehicle vehicle) { return _i(0x25ECB9F8017D98E0, vehicle); } // 0x25ecb9f8017d98e00xb2e1e1fbB323 + inline Void SetVehicleWillTellOthersToHurry(Vehicle vehicle, BOOL p1) { return _i(0x2C4A1590ABF43E8B, vehicle, p1); } // 0x2c4a1590abf43e8b0x2ec19a8bB323 + // Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void DisableVehicleWeapon(BOOL disabled, Hash weaponHash, Vehicle vehicle, Ped owner) { return _i(0xF4FC6A6F67D8D856, disabled, weaponHash, vehicle, owner); } // 0xf4fc6a6f67d8d8560xa688b7d1B323 + // Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline BOOL IsVehicleWeaponDisabled(Hash weaponHash, Vehicle vehicle, Ped owner) { return _i(0x563B65A643ED072E, weaponHash, vehicle, owner); } // 0x563b65a643ed072eB1011 + inline Void SetVehicleUsedForPilotSchool(Vehicle vehicle, BOOL toggle) { return _i(0xE05DD0E9707003A3, vehicle, toggle); } // 0xe05dd0e9707003a30x123e5b90B323 + inline Void SetVehicleActiveForPedNavigation(Vehicle vehicle, BOOL toggle) { return _i(0x21115BCD6E44656A, vehicle, toggle); } // 0x21115bcd6e44656a0xebc225c1B323 + // Returns an int + // + // Vehicle Classes: + // 0: Compacts + // 1: Sedans + // 2: SUVs + // 3: Coupes + // 4: Muscle + // 5: Sports Classics + // 6: Sports + // 7: Super + // 8: Motorcycles + // 9: Off-road + // 10: Industrial + // 11: Utility + // 12: Vans + // 13: Cycles + // 14: Boats + // 15: Helicopters + // 16: Planes + // 17: Service + // 18: Emergency + // 19: Military + // 20: Commercial + // 21: Trains + // + // char buffer[128]; + // std::sprintf(buffer, "VEH_CLASS_%i", VEHICLE::GetVehicleClass(vehicle)); + // + // String className = HUD::GetFilenameForAudioConversation(buffer); + inline int GetVehicleClass(Vehicle vehicle) { return _i(0x29439776AAA00A62, vehicle); } // 0x29439776aaa00a620xc025338eB323 + // char buffer[128]; + // std::sprintf(buffer, "VEH_CLASS_%i", VEHICLE::GetVehicleClassFromName (hash)); + // + // String className = HUD::GetFilenameForAudioConversation(buffer); + // + // Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json + inline int GetVehicleClassFromName(Hash modelHash) { return _i(0xDEDF1C8BD47C2200, modelHash); } // 0xdedf1c8bd47c22000xea469980B323 + inline Void SetPlayersLastVehicle(Vehicle vehicle) { return _i(0xBCDF8BAF56C87B6A, vehicle); } // 0xbcdf8baf56c87b6a0xde86447dB323 + inline Void SetVehicleCanBeUsedByFleeingPeds(Vehicle vehicle, BOOL toggle) { return _i(0x300504B23BD3B711, vehicle, toggle); } // 0x300504b23bd3b7110x5130db1eB323 + inline Void SetAircraftPilotSkillNoiseScalar(Vehicle vehicle, float p1) { return _i(0xE5810AC70602F2F5, vehicle, p1); } // 0xe5810ac70602f2f50xb6be07e0B323 + // Money pickups are created around cars when they explode. Only works when the vehicle model is a car. A single pickup is between 1 and 18 dollars in size. All car models seem to give the same amount of money. + // + // youtu.be/3arlUxzHl5Y + // i.imgur.com/WrNpYFs.jpg + inline Void SetVehicleDropsMoneyWhenBlownUp(Vehicle vehicle, BOOL toggle) { return _i(0x068F64F2470F9656, vehicle, toggle); } // 0x068f64f2470f96560x4bb5605dB323 + inline Void SetVehicleKeepEngineOnWhenAbandoned(Vehicle vehicle, BOOL toggle) { return _i(0xB8FBC8B1330CA9B4, vehicle, toggle); } // 0xb8fbc8b1330ca9b40x51e0064fB323 + // Seems to copy some values in vehicle + inline Void SetVehicleImpatienceTimer(Vehicle vehicle, Any p1) { return _i(0x6A973569BA094650, vehicle, p1); } // 0x6a973569ba094650B1604 + // Use the "AIHandling" string found in handling.meta + inline Void SetVehicleHandlingOverride(Vehicle vehicle, Hash hash) { return _i(0x10655FAB9915623D, vehicle, hash); } // 0x10655fab9915623dB323 + // Max value is 32767 + inline Void SetVehicleExtendedRemovalRange(Vehicle vehicle, int range) { return _i(0x79DF7E806202CE01, vehicle, range); } // 0x79df7e806202ce010xaef9611cB323 + inline Void SetVehicleSteeringBiasScalar(Any p0, float p1) { return _i(0x9007A2F21DC108D4, p0, p1); } // 0x9007a2f21dc108d40x585e49b6B323 + // value between 0.0 and 1.0 + inline Void SetHeliControlLaggingRateScalar(Vehicle helicopter, float multiplier) { return _i(0x6E0859B530A365CC, helicopter, multiplier); } // 0x6e0859b530a365cc0x6e67fd35B323 + // Seems to be related to the metal parts, not tyres (like i was expecting lol) + inline Void SetVehicleFrictionOverride(Vehicle vehicle, float friction) { return _i(0x1837AF7C627009BA, vehicle, friction); } // 0x1837af7c627009ba0x32afd42eB323 + inline Void SetVehicleWheelsCanBreakOffWhenBlowUp(Vehicle vehicle, BOOL toggle) { return _i(0xA37B9A517B133349, vehicle, toggle); } // 0xa37b9a517b1333490x670913a4B323 + inline BOOL ArePlaneControlPanelsIntact(Vehicle vehicle, BOOL p1) { return _i(0xF78F94D60248C737, vehicle, p1); } // 0xf78f94d60248c7370x3b51b348B323 + inline Void SetVehicleCeilingHeight(Vehicle vehicle, float height) { return _i(0xA46413066687A328, vehicle, height); } // 0xa46413066687a3280x98a10a86B323 + inline Void SetVehicleNoExplosionDamageFromDriver(Vehicle vehicle, BOOL toggle) { return _i(0x5E569EC46EC21CAE, vehicle, toggle); } // 0x5e569ec46ec21cae0xbc649c49B323 + inline Void ClearVehicleRouteHistory(Vehicle vehicle) { return _i(0x6D6AF961B72728AE, vehicle); } // 0x6d6af961b72728ae0x8dd9aa0cB323 + inline Vehicle DoesVehicleExistWithDecorator(String decorator) { return _i(0x956B409B984D9BF7, decorator); } // 0x956b409b984d9bf70x39e68eddB323 + // Used to be incorrectly named SetVehicleExclusiveDriver + // Toggles a flag related to SetVehicleExclusiveDriver, however, doesn't enable that feature (or trigger script events related to it). + inline Void SetVehicleAiCanUseExclusiveSeats(Vehicle vehicle, BOOL toggle) { return _i(0x41062318F23ED854, vehicle, toggle); } // 0x41062318f23ed854B323 + // index: 0 - 1 + // + // Used to be incorrectly named _SET_VEHICLE_EXCLUSIVE_DRIVER_2 + inline Void SetVehicleExclusiveDriver(Vehicle vehicle, Ped ped, int index) { return _i(0xB5C51B5502E85E83, vehicle, ped, index); } // 0xb5c51b5502e85e830xaa8bd440B323 + inline BOOL IsPedExclusiveDriverOfVehicle(Ped ped, Vehicle vehicle, int* outIndex) { return _i(0xB09D25E77C33EB3F, ped, vehicle, outIndex); } // 0xb09d25e77c33eb3fB463 + inline Void DisableIndividualPlanePropeller(Vehicle vehicle, int propeller) { return _i(0x500873A45724C863, vehicle, propeller); } // 0x500873a45724c8630x004926a3B323 + inline Void SetVehicleForceAfterburner(Vehicle vehicle, BOOL toggle) { return _i(0xB055A34527CB8FD7, vehicle, toggle); } // 0xb055a34527cb8fd70xc195803bB323 + // R* used it to "remove" vehicle windows when "nightshark" had some mod, which adding some kind of armored windows. When enabled, you can't break vehicles glass. All your bullets wiil shoot through glass. You also will not able to break the glass with any other way (hitting and etc) + inline Void SetDontProcessVehicleGlass(Vehicle vehicle, BOOL toggle) { return _i(0x1087BC8EC540DAEB, vehicle, toggle); } // 0x1087bc8ec540daebB1103 + inline Void SetDisableWantedConesResponse(Vehicle vehicle, BOOL toggle) { return _i(0x4AD280EB48B2D8E6, vehicle, toggle); } // 0x4ad280eb48b2d8e6B1868 + inline Void SetUseDesiredZCruiseSpeedForLanding(Vehicle vehicle, BOOL toggle) { return _i(0xB68CFAF83A02768D, vehicle, toggle); } // 0xb68cfaf83a02768dB1290 + inline Void SetArriveDistanceOverrideForVehiclePersuitAttack(Vehicle vehicle, float p1) { return _i(0x0205F5365292D2EB, vehicle, p1); } // 0x0205f5365292d2ebB1290 + inline Void SetVehicleReadyForCleanup(Any p0) { return _i(0xCF9159024555488C, p0); } // 0xcf9159024555488cB944 + // Toggles to render distant vehicles. They may not be vehicles but images to look like vehicles. + inline Void SetDistantCarsEnabled(BOOL toggle) { return _i(0xF796359A959DF65D, toggle); } // 0xf796359a959df65d0xb5cc548bB323 + // Sets the color of the neon lights of the specified vehicle. + inline Void SetVehicleNeonColour(Vehicle vehicle, int r, int g, int b) { return _i(0x8E0A582209A62695, vehicle, r, g, b); } // 0x8e0a582209a62695B323 + // Index references CVehicleModelColor + inline Void SetVehicleNeonIndexColour(Vehicle vehicle, int index) { return _i(0xB93B2867F7B479D1, vehicle, index); } // 0xb93b2867f7b479d1B1493 + // Gets the color of the neon lights of the specified vehicle. + // + // See SetVehicleNeonColour (0x8E0A582209A62695) for more information + inline Void GetVehicleNeonColour(Vehicle vehicle, int* r, int* g, int* b) { return _i(0x7619EEE8C886757F, vehicle, r, g, b); } // 0x7619eee8c886757fB323 + // Sets the neon lights of the specified vehicle on/off. + // + // Indices: + // 0 = Left + // 1 = Right + // 2 = Front + // 3 = Back + inline Void SetVehicleNeonEnabled(Vehicle vehicle, int index, BOOL toggle) { return _i(0x2AA720E4287BF269, vehicle, index, toggle); } // 0x2aa720e4287bf269B323 + // indices: + // 0 = Left + // 1 = Right + // 2 = Front + // 3 = Back + inline BOOL GetVehicleNeonEnabled(Vehicle vehicle, int index) { return _i(0x8C4B92553E4766A5, vehicle, index); } // 0x8c4b92553e4766a5B323 + inline Void SetAmbientVehicleNeonEnabled(BOOL p0) { return _i(0x35E0654F4BAD7971, p0); } // 0x35e0654f4bad7971B323 + inline Void SuppressNeonsOnVehicle(Vehicle vehicle, BOOL toggle) { return _i(0x83F813570FF519DE, vehicle, toggle); } // 0x83f813570ff519deB573 + inline Void SetDisableSuperdummy(Vehicle vehicle, BOOL p1) { return _i(0xB088E9A47AE6EDD5, vehicle, p1); } // 0xb088e9a47ae6edd5B323 + inline Void RequestVehicleDial(Vehicle vehicle) { return _i(0xDBA3C090E3D74690, vehicle); } // 0xdba3c090e3d74690B323 + // Seems related to vehicle health, like the one in IV. + // Max 1000, min 0. + // Vehicle does not necessarily explode or become undrivable at 0. + inline float GetVehicleBodyHealth(Vehicle vehicle) { return _i(0xF271147EB7B40F12, vehicle); } // 0xf271147eb7b40f120x2b2fcc28B323 + // p2 often set to 1000.0 in the decompiled scripts. + inline Void SetVehicleBodyHealth(Vehicle vehicle, float value) { return _i(0xB77D05AC8C78AADB, vehicle, value); } // 0xb77d05ac8c78aadb0x920c2517B323 + // Outputs 2 Vector3's. + // Scripts check if out2.x - out1.x > someshit.x + // Could be suspension related, as in max suspension height and min suspension height, considering the natives location. + inline Void GetVehicleSize(Vehicle vehicle, Vector3* out1, Vector3* out2) { return _i(0xDF7E3EEB29642C38, vehicle, out1, out2); } // 0xdf7e3eeb29642c38B323 + // Gets the height of the vehicle's suspension. + // The higher the value the lower the suspension. Each 0.002 corresponds with one more level lowered. + // 0.000 is the stock suspension. + // 0.008 is Ultra Suspension. + inline float GetFakeSuspensionLoweringAmount(Vehicle vehicle) { return _i(0x53952FD2BAA19F17, vehicle); } // 0x53952fd2baa19f170xb73a1486B323 + inline Void SetCarHighSpeedBumpSeverityMultiplier(float multiplier) { return _i(0x84FD40F56075E816, multiplier); } // 0x84fd40f56075e816B323 + inline int GetNumberOfVehicleDoors(Vehicle vehicle) { return _i(0x92922A607497B14D, vehicle); } // 0x92922a607497b14dB463 + // If false, lowers hydraulics (if raised) and disables hydraulics controls. If true, raises hydraulics and enables hydraulics controls. + // + // Only used once in each carmod script, on a car that does not have hydraulics to begin with. + inline Void SetHydraulicsControl(Vehicle vehicle, BOOL toggle) { return _i(0x28B18377EB6E25F6, vehicle, toggle); } // 0x28b18377eb6e25f6B505 + inline Void SetCanAdjustGroundClearance(Vehicle vehicle, BOOL p1) { return _i(0xA7DCDF4DED40A8F4, vehicle, p1); } // 0xa7dcdf4ded40a8f4B323 + // 0 min 100 max + // starts at 100 + // Seams to have health zones + // Front of vehicle when damaged goes from 100-50 and stops at 50. + // Rear can be damaged from 100-0 + // Only tested with two cars. + // + // any idea how this differs from the first one? + // + // -- + // May return the vehicle health on a scale of 0.0 - 100.0 (needs to be confirmed) + // + // example: + // + // v_F = ENTITY::GetEntityModel(v_3); + // if (((v_F == ${tanker}) || (v_F == ${armytanker})) || (v_F == ${tanker2})) { + // if (VEHICLE::GetVehicleHealthPercentage(v_3) <= 1.0) { + // NETWORK::NetworkExplodeVehicle(v_3, 1, 1, -1); + // } + // } + inline float GetVehicleHealthPercentage(Vehicle vehicle, float maxEngineHealth, float maxPetrolTankHealth, float maxBodyHealth, float maxMainRotorHealth, float maxTailRotorHealth, float maxUnkHealth) { return _i(0xB8EF61207C2393A9, vehicle, maxEngineHealth, maxPetrolTankHealth, maxBodyHealth, maxMainRotorHealth, maxTailRotorHealth, maxUnkHealth); } // 0xb8ef61207c2393a90x196ba503B323 + inline BOOL GetVehicleIsMercenary(Vehicle vehicle) { return _i(0xD4C4642CB7F50B5D, vehicle); } // 0xd4c4642cb7f50b5d0x575504deB323 + inline Void SetVehicleBrokenPartsDontAffectAiHandling(Vehicle vehicle, BOOL p1) { return _i(0xC361AA040D6637A8, vehicle, p1); } // 0xc361aa040d6637a80x819cd954B323 + inline Void SetVehicleKersAllowed(Vehicle vehicle, BOOL toggle) { return _i(0x99C82F8A139F3E4E, vehicle, toggle); } // 0x99c82f8a139f3e4e0x71cdd52fB323 + // Returns true if the vehicle has a HF_HAS_KERS (strHandlingFlags 0x4) handing flag set, for instance the lectro/vindicator bikes or the open wheelers. + inline BOOL GetVehicleHasKers(Vehicle vehicle) { return _i(0x50634E348C8D44EF, vehicle); } // 0x50634e348c8d44ef0x0761e635B372 + inline Void SetPlaneResistToExplosion(Vehicle vehicle, BOOL toggle) { return _i(0xE16142B94664DEFD, vehicle, toggle); } // 0xe16142b94664defd0xfbba699aB323 + inline Void SetHeliResistToExplosion(Vehicle vehicle, BOOL toggle) { return _i(0x8074CC1886802912, vehicle, toggle); } // 0x8074cc1886802912B2545 + inline Void SetDisableBmxExtraTrickForces(Any p0) { return _i(0x26D99D5A82FD18E8, p0); } // 0x26d99d5a82fd18e8B463 + // Works only on vehicles that support hydraulics. + inline Void SetHydraulicSuspensionRaiseFactor(Vehicle vehicle, int wheelId, float value) { return _i(0x84EA99C62CB3EF0C, vehicle, wheelId, value); } // 0x84ea99c62cb3ef0cB505 + inline float GetHydraulicSuspensionRaiseFactor(Vehicle vehicle, int wheelId) { return _i(0x0BB5CBDDD0F25AE3, vehicle, wheelId); } // 0x0bb5cbddd0f25ae3B2372 + inline Void SetCanUseHydraulics(Vehicle vehicle, BOOL toggle) { return _i(0x1201E8A3290A3B98, vehicle, toggle); } // 0x1201e8a3290a3b98B505 + // States: + // 4 = raise + // 5 = lower + // 6 = jump + inline Void SetHydraulicVehicleState(Vehicle vehicle, int state) { return _i(0x8EA86DF356801C7D, vehicle, state); } // 0x8ea86df356801c7dB505 + // Sets vehicle wheel hydraulic states transition. Known states: + // 0 - reset + // 1 - raise wheel (uses value arg, works just like _SET_VEHICLE_HYDRAULIC_WHEEL_VALUE) + // 2 - jump using wheel + inline Void SetHydraulicWheelState(Vehicle vehicle, int wheelId, int state, float value, Any p4) { return _i(0xC24075310A8B9CD1, vehicle, wheelId, state, value, p4); } // 0xc24075310a8b9cd1B505 + inline BOOL HasVehiclePetroltankSetOnFireByEntity(Any p0, Any p1) { return _i(0x5BA68A0840D546AC, p0, p1); } // 0x5ba68a0840d546acB463 + inline Void ClearVehiclePetroltankFireCulprit(Vehicle vehicle) { return _i(0x4419966C9936071A, vehicle); } // 0x4419966c9936071aB463 + // Controls how fast bobbleheads and tsurikawas move on each axis. + // + // p2 is probably z, but changing that value didn't seem to have a noticeable effect. + inline Void SetVehicleBobbleheadVelocity(float x, float y, float p2) { return _i(0x870B8B7A766615C8, x, y, p2); } // 0x870b8b7a766615c8B505 + inline BOOL GetVehicleIsDummy(Any p0) { return _i(0x8533CAFDE1F0F336, p0); } // 0x8533cafde1f0f336B505 + inline BOOL SetVehicleDamageScale(Vehicle vehicle, float p1) { return _i(0x4E20D2A627011E8E, vehicle, p1); } // 0x4e20d2a627011e8eB757 + inline BOOL SetVehicleWeaponDamageScale(Vehicle vehicle, float multiplier) { return _i(0x45A561A9421AB6AD, vehicle, multiplier); } // 0x45a561a9421ab6adB944 + inline BOOL SetDisableDamageWithPickedUpEntity(Any p0, Any p1) { return _i(0xD4196117AF7BB974, p0, p1); } // 0xd4196117af7bb974B757 + inline Void SetVehicleUsesMpPlayerDamageMultiplier(Any p0, Any p1) { return _i(0xBB2333BB87DDD87F, p0, p1); } // 0xbb2333bb87ddd87fB757 + // When enabled, the player won't fall off the bike when landing from large heights. + inline Void SetBikeEasyToLand(Vehicle vehicle, BOOL toggle) { return _i(0x73561D4425A021A2, vehicle, toggle); } // 0x73561d4425a021a2B791 + // Inverts vehicle's controls. So INPUT_VEH_ACCELERATE will be INPUT_VEH_BRAKE and vise versa (same for A/D controls) + // Doesn't work for planes/helis. + inline Void SetInvertVehicleControls(Vehicle vehicle, BOOL state) { return _i(0x5B91B229243351A8, vehicle, state); } // 0x5b91b229243351a8B791 + // Disables the screen effects and sound effects when driving over a speed boost pad. + inline Void SetSpeedBoostEffectDisabled(BOOL disabled) { return _i(0x7BBE7FF626A591FE, disabled); } // 0x7bbe7ff626a591feB877 + // Disables the screen effects and sound effects when driving over a slowdown pad. + inline Void SetSlowDownEffectDisabled(BOOL disabled) { return _i(0x65B080555EA48149, disabled); } // 0x65b080555ea48149B1011 + inline Void SetFormationLeader(Vehicle vehicle, float x, float y, float z, float p4) { return _i(0x428AD3E26C8D9EB0, vehicle, x, y, z, p4); } // 0x428ad3e26c8d9eb0B877 + // Resets the effect of SetFormationLeader + inline Void ResetFormationLeader() { return _i(0xE2F53F172B45EDE1); } // 0xe2f53f172b45ede1B877 + inline BOOL GetIsBoatCapsized(Vehicle vehicle) { return _i(0xBA91D045575699AD, vehicle); } // 0xba91d045575699adB877 + inline Void SetAllowRammingSoopOrRamp(Any p0, Any p1) { return _i(0x80E3357FDEF45C21, p0, p1); } // 0x80e3357fdef45c21B944 + inline Void SetScriptRampImpulseScale(Vehicle vehicle, float impulseScale) { return _i(0xEFC13B1CE30D755D, vehicle, impulseScale); } // 0xefc13b1ce30d755dB944 + // doorId: see SetVehicleDoorShut + inline BOOL GetIsDoorValid(Vehicle vehicle, int doorId) { return _i(0x645F4B6E8499F632, vehicle, doorId); } // 0x645f4b6e8499f632B944 + inline Void SetScriptRocketBoostRechargeTime(Vehicle vehicle, float seconds) { return _i(0xE00F2AB100B76E89, vehicle, seconds); } // 0xe00f2ab100b76e89B944 + inline BOOL GetHasRocketBoost(Vehicle vehicle) { return _i(0x36D782F68B309BDA, vehicle); } // 0x36d782f68b309bdaB944 + inline BOOL IsRocketBoostActive(Vehicle vehicle) { return _i(0x3D34E80EED4AE3BE, vehicle); } // 0x3d34e80eed4ae3beB944 + inline Void SetRocketBoostActive(Vehicle vehicle, BOOL active) { return _i(0x81E1552E35DC3839, vehicle, active); } // 0x81e1552e35dc3839B944 + inline BOOL GetHasRetractableWheels(Vehicle vehicle) { return _i(0xDCA174A42133F08C, vehicle); } // 0xdca174a42133f08cB944 + inline BOOL GetIsWheelsRetracted(Vehicle vehicle) { return _i(0x1DA0DA9CB3F0C8BF, vehicle); } // 0x1da0da9cb3f0c8bfB944 + inline Void SetWheelsExtendedInstantly(Vehicle vehicle) { return _i(0xF660602546D27BA8, vehicle); } // 0xf660602546d27ba8B944 + inline Void SetWheelsRetractedInstantly(Vehicle vehicle) { return _i(0x5335BE58C083E74E, vehicle); } // 0x5335be58c083e74eB1011 + // Returns true if the vehicle has the FLAG_JUMPING_CAR flag set. + inline BOOL GetCarHasJump(Vehicle vehicle) { return _i(0x9078C0C5EF8C19E9, vehicle); } // 0x9078c0c5ef8c19e9B944 + // Allows vehicles with the FLAG_JUMPING_CAR flag to jump higher (i.e. Ruiner 2000). + inline Void SetUseHigherCarJump(Vehicle vehicle, BOOL toggle) { return _i(0xF06A16CA55D138D8, vehicle, toggle); } // 0xf06a16ca55d138d8B944 + inline Void SetClearFreezeWaitingOnCollisionOncePlayerEnters(Vehicle vehicle, BOOL toggle) { return _i(0xB2E0C0D6922D31F2, vehicle, toggle); } // 0xb2e0c0d6922d31f2B944 + // Set vehicle's primary mounted weapon 2 ammo. For example, use it on APC. + // For example, you can "remove" any vehicle weapon from any vehicle. + // ammoAmount -1 = infinite ammo (default value for any spawned vehicle tho) + inline Void SetVehicleWeaponRestrictedAmmo(Vehicle vehicle, int weaponIndex, int capacity) { return _i(0x44CD1F493DB2A0A6, vehicle, weaponIndex, capacity); } // 0x44cd1f493db2a0a6B944 + inline int GetVehicleWeaponRestrictedAmmo(Vehicle vehicle, int weaponIndex) { return _i(0x8181CE2F25CB9BB7, vehicle, weaponIndex); } // 0x8181ce2f25cb9bb7B1011 + inline BOOL GetVehicleHasParachute(Vehicle vehicle) { return _i(0xBC9CFF381338CB4F, vehicle); } // 0xbc9cff381338cb4fB944 + inline BOOL GetVehicleCanDeployParachute(Vehicle vehicle) { return _i(0xA916396DF4154EE3, vehicle); } // 0xa916396df4154ee3B944 + inline Void VehicleStartParachuting(Vehicle vehicle, BOOL active) { return _i(0x0BFFB028B3DD0A97, vehicle, active); } // 0x0bffb028b3dd0a97B944 + inline BOOL IsVehicleParachuteDeployed(Vehicle vehicle) { return _i(0x3DE51E9C80B116CF, vehicle); } // 0x3de51e9c80b116cfB1011 + inline Void VehicleSetRampAndRammingCarsTakeDamage(Vehicle vehicle, BOOL toggle) { return _i(0x28D034A93FE31BF5, vehicle, toggle); } // 0x28d034a93fe31bf5B944 + inline Void VehicleSetEnableRampCarSideImpulse(Any p0, Any p1) { return _i(0x1BBAC99C0BC53656, p0, p1); } // 0x1bbac99c0bc53656B944 + inline Void VehicleSetEnableNormaliseRampCarVerticalVeloctiy(Any p0, Any p1) { return _i(0x756AE6E962168A04, p0, p1); } // 0x756ae6e962168a04B944 + inline Void VehicleSetJetWashForceEnabled(Any p0) { return _i(0x9D30687C57BAA0BB, p0); } // 0x9d30687c57baa0bbB1011 + inline Void SetVehicleWeaponCanTargetObjects(Vehicle vehicle, BOOL toggle) { return _i(0x86B4B6212CB8B627, vehicle, toggle); } // 0x86b4b6212cb8b627B1011 + // Used for blazer5. Changes the quadbike-jetski transformation input from raise/lower convertible roof (hold H by default) to horn (press E by default.) + inline Void SetVehicleUseBoostButtonForWheelRetract(BOOL toggle) { return _i(0x41290B40FA63E6DA, toggle); } // 0x41290b40fa63e6daB1011 + inline Void SetVehicleUseHornButtonForNitrous(BOOL toggle) { return _i(0x1980F68872CC2C3D, toggle); } // 0x1980f68872cc2c3dB3095 + // Parachute models: + // - sr_prop_specraces_para_s_01 + // - imp_prop_impexp_para_s (SecuroServ; Default) + // Plus, many more props can be used as vehicle parachutes, like umbrellas (prop_beach_parasol_03), and unlike SetPlayerParachuteModelOverride, you won't get stuck mid-air when using an umbrella. + inline Void VehicleSetParachuteModelOverride(Vehicle vehicle, Hash modelHash) { return _i(0x4D610C6B56031351, vehicle, modelHash); } // 0x4d610c6b56031351B1011 + // Variations available for the generic parachute (sr_prop_specraces_para_s_01): + // - 0: Rainbow + // - 1: Red + // - 2: White, blue, yellow + // - 3: Black, red, white + // - 4: Red, white, blue + // - 5: Blue + // - 6: Black + // - 7: Black, yellow + inline Void VehicleSetParachuteModelTintIndex(Vehicle vehicle, int textureVariation) { return _i(0xA74AD2439468C883, vehicle, textureVariation); } // 0xa74ad2439468c883B1011 + inline int VehicleSetOverrideExtenableSideRatio(Any p0, Any p1) { return _i(0x0419B167EE128F33, p0, p1); } // 0x0419b167ee128f33B1103 + inline int VehicleSetExtenableSideTargetRatio(Any p0, Any p1) { return _i(0xF3B0E0AED097A3F5, p0, p1); } // 0xf3b0e0aed097a3f5B1103 + inline int VehicleSetOverrideSideRatio(Any p0, Any p1) { return _i(0xD3E51C0AB8C26EEE, p0, p1); } // 0xd3e51c0ab8c26eeeB1103 + inline int GetAllVehicles(Any* vehsStruct) { return _i(0x9B8E1BF04B51F2E8, vehsStruct); } // 0x9b8e1bf04b51f2e8B1103 + inline Void SetCargobobExtaPickupRange(Any p0, Any p1) { return _i(0x72BECCF4B829522E, p0, p1); } // 0x72beccf4b829522eB1103 + inline Void SetOverrideVehicleDoorTorque(Any p0, Any p1, Any p2) { return _i(0x66E3AAFACE2D1EB8, p0, p1, p2); } // 0x66e3aaface2d1eb8B1103 + // Enables/disables the ability to wheelie on motorcycles. + inline Void SetWheelieEnabled(Vehicle vehicle, BOOL enabled) { return _i(0x1312DDD8385AEE4E, vehicle, enabled); } // 0x1312ddd8385aee4eB1103 + inline Void SetDisableHeliExplodeFromBodyDamage(Any p0, Any p1) { return _i(0xEDBC8405B3895CC9, p0, p1); } // 0xedbc8405b3895cc9B1103 + inline Void SetDisableExplodeFromBodyDamageOnCollision(Vehicle vehicle, float value) { return _i(0x26E13D440E7F6064, vehicle, value); } // 0x26e13d440e7f6064B1290 + inline Void SetTrailerAttachmentEnabled(Any p0, Any p1) { return _i(0x2FA2494B47FDD009, p0, p1); } // 0x2fa2494b47fdd009B1103 + inline Void SetRocketBoostFill(Vehicle vehicle, float percentage) { return _i(0xFEB2DDED3509562E, vehicle, percentage); } // 0xfeb2dded3509562eB1103 + // Set state to true to extend the wings, false to retract them. + inline Void SetGliderActive(Vehicle vehicle, BOOL state) { return _i(0x544996C0081ABDEB, vehicle, state); } // 0x544996c0081abdebB1103 + // Resets the vehicle's turret to its default position in scripted cameras. Doesn't seem to affect turrets that are occupied by a ped. + inline Void SetShouldResetTurretInScriptedCameras(Vehicle vehicle, BOOL shouldReset) { return _i(0x78CEEE41F49F421F, vehicle, shouldReset); } // 0x78ceee41f49f421fB1103 + inline Void SetVehicleDisableCollisionUponCreation(Vehicle vehicle, BOOL disable) { return _i(0xAF60E6A2936F982A, vehicle, disable); } // 0xaf60e6a2936f982aB1103 + inline Void SetGroundEffectReducesDrag(BOOL toggle) { return _i(0x430A7631A84C9BE7, toggle); } // 0x430a7631a84c9be7B1180 + // Disables collision for this vehicle (maybe it also supports other entities, not sure). + // Only world/building/fixed world objects will have their collisions disabled, props, peds, or any other entity still collides with the vehicle. + // Example: https://streamable.com/6n45d5 + // Not sure if there is a native (and if so, which one) that resets the collisions. + inline Void SetDisableMapCollision(Vehicle vehicle) { return _i(0x75627043C6AA90AD, vehicle); } // 0x75627043c6aa90adB1180 + inline Void SetDisablePedStandOnTop(Vehicle vehicle, BOOL toggle) { return _i(0x8235F1BEAD557629, vehicle, toggle); } // 0x8235f1bead557629B1180 + inline Void SetVehicleDamageScales(Vehicle vehicle, Any p1, Any p2, Any p3, Any p4) { return _i(0x9640E30A7F395E4B, vehicle, p1, p2, p3, p4); } // 0x9640e30a7f395e4bB1290 + inline Void SetPlaneSectionDamageScale(Vehicle vehicle, Any p1, Any p2) { return _i(0x0BBB9A7A8FFE931B, vehicle, p1, p2); } // 0x0bbb9a7a8ffe931bB1290 + // Stops the cargobob from being able to attach any vehicle + inline Void SetHeliCanPickupEntityThatHasPickUpDisabled(Vehicle vehicle, BOOL toggle) { return _i(0x94A68DA412C4007D, vehicle, toggle); } // 0x94a68da412c4007dB1180 + // Sets the amount of bombs that this vehicle has. As far as I know, this does _not_ impact vehicle weapons or the ammo of those weapons in any way, it is just a way to keep track of the amount of bombs in a specific plane. + inline Void SetVehicleBombAmmo(Vehicle vehicle, int bombCount) { return _i(0xF4B2ED59DEB5D774, vehicle, bombCount); } // 0xf4b2ed59deb5d774B1180 + // Gets the amount of bombs that this vehicle has. As far as I know, this does _not_ impact vehicle weapons or the ammo of those weapons in any way, it is just a way to keep track of the amount of bombs in a specific plane. + inline int GetVehicleBombAmmo(Vehicle vehicle) { return _i(0xEA12BD130D7569A1, vehicle); } // 0xea12bd130d7569a1B1180 + // Similar to SetVehicleBombAmmo, this sets the amount of countermeasures that are present on this vehicle. + // Use GetVehicleBombAmmo to get the current amount. + inline Void SetVehicleCountermeasureAmmo(Vehicle vehicle, int counterMeasureCount) { return _i(0x9BDA23BF666F0855, vehicle, counterMeasureCount); } // 0x9bda23bf666f0855B1180 + // Similar to `GetVehicleBombAmmo`, this gets the amount of countermeasures that are present on this vehicle. + // Use SetVehicleCountermeasureAmmo to set the current amount. + inline int GetVehicleCountermeasureAmmo(Vehicle vehicle) { return _i(0xF846AA63DF56B804, vehicle); } // 0xf846aa63df56b804B1180 + inline Void SetHeliCombatOffset(Vehicle vehicle, float x, float y, float z) { return _i(0x0A3F820A9A9A9AC5, vehicle, x, y, z); } // 0x0a3f820a9a9a9ac5B1180 + // Used in decompiled scripts in combination with GetVehicleSize + // p7 is usually 2 + // p8 is usually 1 + inline BOOL GetCanVehicleBePlacedHere(Vehicle vehicle, float x, float y, float z, float rotX, float rotY, float rotZ, int p7, Any p8) { return _i(0x51F30DB60626A20E, vehicle, x, y, z, rotX, rotY, rotZ, p7, p8); } // 0x51f30db60626a20eB1180 + // Sets a flag on heli and another vehicle type. + inline Void SetDisableAutomaticCrashTask(Vehicle vehicle, BOOL toggle) { return _i(0x97841634EF7DF1D6, vehicle, toggle); } // 0x97841634ef7df1d6B1180 + // Used in conjunction with SetSpecialFlightModeTargetRatio, in Rockstar's scripts. Using this will instantly transform the vehicle into hover mode starting from the given ratio (ranging from 0.0 to 1.0, values greater than 1.0 will put the vehicle into a glitched state.) If this is not used alongside SetSpecialFlightModeTargetRatio, the vehicle will automatically transform back into car mode. + // + // Usable only with the deluxo and other vehicles with deluxo-like hover mode toggle, modded or otherwise. Does nothing when used on oppressor2. + // + // Example: + // Ped playerPed = PLAYER::PlayerPedId(); + // Vehicle veh = PED::GetVehiclePedIsUsing(playerPed); + // VEHICLE::SetSpecialFlightModeRatio(veh, 0.7f); + // VEHICLE::SetSpecialFlightModeTargetRatio(veh, 1.0f); + inline Void SetSpecialFlightModeRatio(Vehicle vehicle, float ratio) { return _i(0xD138FA15C9776837, vehicle, ratio); } // 0xd138fa15c9776837B1290 + // Used in conjunction with SetSpecialFlightModeRatio, in Rockstar's scripts. The vehicle will transform into the given targetRatio, starting from the vehicle's current hover mode transform ratio (which can also be manually set by SetSpecialFlightModeRatio,) i.e. setting targetRatio to 0.0 while the vehicle is in hover mode will transform the vehicle into car mode, likewise setting targetRatio to 1.0 while the vehicle is in car mode will transform the vehicle into hover mode, and if the current transform ratio is set to 0.7 while targetRatio is 1.0 the vehicle will transform into hover mode starting from being already partially transformed. + // + // targetRatio is recommended to always be 0.0 or 1.0, otherwise the vehicle will transform into a glitched state. + // + // Usable only with the deluxo and other vehicles with deluxo-like hover mode toggle, modded or otherwise. Does nothing when used on oppressor2. + // + // Example: + // Ped playerPed = PLAYER::PlayerPedId(); + // Vehicle veh = PED::GetVehiclePedIsUsing(playerPed); + // VEHICLE::SetSpecialFlightModeRatio(veh, 0.7f); + // VEHICLE::SetSpecialFlightModeTargetRatio(veh, 1.0f); + inline Void SetSpecialFlightModeTargetRatio(Vehicle vehicle, float targetRatio) { return _i(0x438B3D7CA026FE91, vehicle, targetRatio); } // 0x438b3d7ca026fe91B1290 + // It will override the ability to transform deluxo. For oppressor it will work just like SetDisableHoverModeFlight + inline Void SetSpecialFlightModeAllowed(Vehicle vehicle, BOOL toggle) { return _i(0xF1211889DF15A763, vehicle, toggle); } // 0xf1211889df15a763B1290 + // Disables "wings" for some flying vehicles. Works only for oppressor _2_ and deluxo. + // For deluxo it just immediately removes vehicle's "wings" and you will be not able to fly up. + // For oppressor 2 it will remove wings right after you land. And you will not able to fly up anymore too. + // But for opressor 2 you still can fly if you somehow get back in the air. + inline Void SetDisableHoverModeFlight(Vehicle vehicle, BOOL toggle) { return _i(0x2D55FE374D5FDB91, vehicle, toggle); } // 0x2d55fe374d5fdb91B1290 + // Checks if Chernobog's stabilizers are deployed or not. + // These are the metal supports that allow it to fire. + // This native only applies to the Chernobog. + inline BOOL GetOutriggersDeployed(Vehicle vehicle) { return _i(0x3A9128352EAC9E85, vehicle); } // 0x3a9128352eac9e85B1290 + // Native is significantly more complicated than simply generating a random vector & length. + // The 'point' is either 400.0 or 250.0 units away from the Ped's current coordinates; and paths into functions like rage::grcViewport___IsSphereVisible + inline Vector3 FindSpawnCoordinatesForHeli(Ped ped) { return _i(0x8DC9675797123522, ped); } // 0x8dc9675797123522B1290 + // Only used with the "akula" and "annihilator2" in the decompiled native scripts. + inline Void SetDeployFoldingWings(Vehicle vehicle, BOOL deploy, BOOL p2) { return _i(0xB251E0B33E58B424, vehicle, deploy, p2); } // 0xb251e0b33e58b424B1290 + // Only used with the "akula" and "annihilator2" in the decompiled native scripts. + inline BOOL AreFoldingWingsDeployed(Vehicle vehicle) { return _i(0xAEF12960FA943792, vehicle); } // 0xaef12960fa943792B1290 + inline Void SetDeployMissileBays(Vehicle vehicle, BOOL deploy) { return _i(0x0C02468829E4AA65, vehicle, deploy); } // 0x0c02468829e4aa65B2944 + inline BOOL AreMissileBaysDeployed(Vehicle vehicle) { return _i(0xEA4743874D515F13, vehicle); } // 0xea4743874d515f13B2944 + inline Void SetDipStraightDownWhenCrashingPlane(Vehicle vehicle, BOOL toggle) { return _i(0xAA653AE61924B0A0, vehicle, toggle); } // 0xaa653ae61924b0a0B1290 + // Toggles specific flag on turret + inline Void SetTurretHidden(Vehicle vehicle, int index, BOOL toggle) { return _i(0xC60060EB0D8AC7B1, vehicle, index, toggle); } // 0xc60060eb0d8ac7b1B1290 + inline Void SetHoverModeWingRatio(Vehicle vehicle, float ratio) { return _i(0x70A252F60A3E036B, vehicle, ratio); } // 0x70a252f60a3e036bB1365 + // Disables turret movement when called in a loop. You can still fire and aim. You cannot shoot backwards though. + inline Void SetDisableTurretMovement(Vehicle vehicle, int turretId) { return _i(0xE615BB7A7752C76A, vehicle, turretId); } // 0xe615bb7a7752c76aB1365 + inline Void SetForceFixLinkMatrices(Vehicle vehicle) { return _i(0x887FA38787DE8C72, vehicle); } // 0x887fa38787de8c72B1365 + // Affects the playback speed of the submarine car conversion animations. Does not affect hardcoded animations such as the wheels being retracted. + inline Void SetTransformRateForAnimation(Vehicle vehicle, float transformRate) { return _i(0x498218259FB7C72D, vehicle, transformRate); } // 0x498218259fb7c72dB1365 + // When set to true, the key to transform a car to submarine mode changes from raise/lower convertible roof (hold H by default) to special vehicle transform (press X by default.) + inline Void SetTransformToSubmarineUsesAlternateInput(Vehicle vehicle, BOOL toggle) { return _i(0x41B9FB92EDED32A6, vehicle, toggle); } // 0x41b9fb92eded32a6B1365 + // Does nothing. It's a nullsub. + inline Void SetVehicleCombatMode(BOOL toggle) { return _i(0x36DE109527A2C0C4, toggle); } // 0x36de109527a2c0c4B1604 + // Does nothing. It's a nullsub. + inline Void SetVehicleDetonationMode(BOOL toggle) { return _i(0x82E0AC411E41A5B4, toggle); } // 0x82e0ac411e41a5b4B1604 + // Does nothing. It's a nullsub. + inline Void SetVehicleShuntOnStick(BOOL toggle) { return _i(0x99A05839C46CE316, toggle); } // 0x99a05839c46ce316B1604 + inline BOOL GetIsVehicleShunting(Vehicle vehicle) { return _i(0xA2459F72C14E2E8D, vehicle); } // 0xa2459f72c14e2e8dB1604 + inline BOOL GetHasVehicleBeenHitByShunt(Vehicle vehicle) { return _i(0xE8718FAF591FD224, vehicle); } // 0xe8718faf591fd224B1604 + // Returns last vehicle that was rammed by the given vehicle using the shunt boost. + inline Vehicle GetLastShuntVehicle(Vehicle vehicle) { return _i(0x04F2FA6E234162F7, vehicle); } // 0x04f2fa6e234162f7B1604 + inline Void SetDisableVehicleExplosionsDamage(BOOL toggle) { return _i(0x143921E45EC44D62, toggle); } // 0x143921e45ec44d62B1604 + inline Void SetOverrideNitrousLevel(Vehicle vehicle, BOOL toggle, float level, float power, float rechargeTime, BOOL disableSound) { return _i(0xC8E9B6B71B8E660D, vehicle, toggle, level, power, rechargeTime, disableSound); } // 0xc8e9b6b71b8e660dB1604 + inline Void SetNitrousIsActive(Vehicle vehicle, BOOL enabled) { return _i(0x465EEA70AF251045, vehicle, enabled); } // 0x465eea70af251045B3095 + inline Void SetOverrideTractionLossMultiplier(Vehicle vehicle, float modifier) { return _i(0xAFD262ACCA64479A, vehicle, modifier); } // 0xafd262acca64479aB3095 + // First two floats relate to rumble, the last is a threshold + inline Void SetDriftSlipAngleLimits(Vehicle vehicle, float durationScalar, float amplitudeScalar, float slipAngleLimit) { return _i(0xDAF4C98C18AC6F06, vehicle, durationScalar, amplitudeScalar, slipAngleLimit); } // 0xdaf4c98c18ac6f06B3095 + inline Void SetMinimumTimeBetweenGearShifts(Vehicle vehicle, int time) { return _i(0x16CFBC5E7EB32861, vehicle, time); } // 0x16cfbc5e7eb32861B3095 + inline Void FullyChargeNitrous(Vehicle vehicle) { return _i(0x1A2BCC8C636F9226, vehicle); } // 0x1a2bcc8c636f9226B3095 + inline float GetRemainingNitrousDuration(Vehicle vehicle) { return _i(0xBEC4B8653462450E, vehicle); } // 0xbec4b8653462450eB3095 + inline BOOL IsNitrousActive(Vehicle vehicle) { return _i(0x491E822B2C464FE4, vehicle); } // 0x491e822b2c464fe4B3095 + inline Void ClearNitrous(Vehicle vehicle) { return _i(0xC889AE921400E1ED, vehicle); } // 0xc889ae921400e1edB3095 + inline Void SetIncreaseWheelCrushDamage(Vehicle vehicle, BOOL toggle) { return _i(0x2970EAA18FD5E42F, vehicle, toggle); } // 0x2970eaa18fd5e42fB1604 + // Sets some global vehicle related BOOL + inline Void SetDisableWeaponBladeForces(BOOL toggle) { return _i(0x211E95CE9903940C, toggle); } // 0x211e95ce9903940cB1604 + // Changes the car jump control to require a double-tap to activate. + inline Void SetUseDoubleClickForCarJump(BOOL toggle) { return _i(0x5BBCF35BF6E456F7, toggle); } // 0x5bbcf35bf6e456f7B1604 + // Returns true only if the "tombstone" bone is attached to the vehicle, irrespective of "FLAG_HAS_TOMBSTONE" being present or not. Detaching the tombstone will return false. + inline BOOL GetDoesVehicleHaveTombstone(Vehicle vehicle) { return _i(0x71AFB258CCED3A27, vehicle); } // 0x71afb258cced3a27B1604 + // Disables detachable bumber from domnator4, dominator5, dominator6, see https://gfycat.com/SecondUnluckyGosling + inline Void HideTombstone(Vehicle vehicle, BOOL toggle) { return _i(0xAE71FB656C600587, vehicle, toggle); } // 0xae71fb656c600587B1604 + inline Void ApplyEmpEffect(Vehicle vehicle) { return _i(0x249249D74F813EB2, vehicle); } // 0x249249d74f813eb2B3095 + // Returns whether this vehicle is currently disabled by an EMP mine. + inline BOOL GetIsVehicleDisabledByEmp(Vehicle vehicle) { return _i(0x0506ED94363AD905, vehicle); } // 0x0506ed94363ad905B1604 + inline Void SetDisableRetractingWeaponBlades(BOOL toggle) { return _i(0x8F0D5BA1C2CC91D7, toggle); } // 0x8f0d5ba1c2cc91d7B1604 + // Usable wheels: + // 0: wheel_lf + // 1: wheel_rf + // 2: wheel_lm1 + // 3: wheel_rm1 + // 4: wheel_lr + // 5: wheel_rr + inline float GetTyreHealth(Vehicle vehicle, int wheelIndex) { return _i(0x55EAB010FAEE9380, vehicle, wheelIndex); } // 0x55eab010faee9380B1868 + // SetTyreWearRate must be active, otherwise values set to <1000.0f will default to 350.0f + // + // Usable wheels: + // 0: wheel_lf + // 1: wheel_rf + // 2: wheel_lm1 + // 3: wheel_rm1 + // 4: wheel_lr + // 5: wheel_rr + inline Void SetTyreHealth(Vehicle vehicle, int wheelIndex, float health) { return _i(0x74C68EF97645E79D, vehicle, wheelIndex, health); } // 0x74c68ef97645e79dB1868 + // Returns the multiplier value from SetTyreWearRate + // + // Usable wheels: + // 0: wheel_lf + // 1: wheel_rf + // 2: wheel_lm1 + // 3: wheel_rm1 + // 4: wheel_lr + // 5: wheel_rr + inline float GetTyreWearRate(Vehicle vehicle, int wheelIndex) { return _i(0x6E387895952F4F71, vehicle, wheelIndex); } // 0x6e387895952f4f71B2060 + // Needs to be run for tire wear to work. Multiplier affects the downforce and how fast the tires will wear out, higher values essentially make the vehicle slower on straights and its tires will wear down quicker when cornering. Value must be >0f. + // Default value in Rockstar's Open Wheel Race JSON's ("owrtws", "owrtwm", "owrtwh") is 1.0 + // + // Usable wheels: + // 0: wheel_lf + // 1: wheel_rf + // 2: wheel_lm1 + // 3: wheel_rm1 + // 4: wheel_lr + // 5: wheel_rr + inline Void SetTyreWearRate(Vehicle vehicle, int wheelIndex, float multiplier) { return _i(0x01894E2EDE923CA2, vehicle, wheelIndex, multiplier); } // 0x01894e2ede923ca2B1868 + // Controls how fast the tires wear out. + // + // Default values from Rockstar's Open Wheel Race JSON's: + // "owrtss" (Soft): 2.2 + // "owrtsm" (Medium): 1.7 + // "owrtsh" (Hard): 1.2 + // + // Usable wheels: + // 0: wheel_lf + // 1: wheel_rf + // 2: wheel_lm1 + // 3: wheel_rm1 + // 4: wheel_lr + // 5: wheel_rr + inline Void SetTyreWearRateScale(Vehicle vehicle, int wheelIndex, float multiplier) { return _i(0x392183BB9EA57697, vehicle, wheelIndex, multiplier); } // 0x392183bb9ea57697B2060 + // Controls how much traction the wheel loses. + // + // Default values from Rockstar's Open Wheel Race JSON's: + // "owrtds" (Soft): 0.05 + // "owrtdm" (Medium): 0.45 + // "owrtdh" (Hard): 0.8 + // + // Usable wheels: + // 0: wheel_lf + // 1: wheel_rf + // 2: wheel_lm1 + // 3: wheel_rm1 + // 4: wheel_lr + // 5: wheel_rr + inline Void SetTyreMaximumGripDifferenceDueToWearRate(Vehicle vehicle, int wheelIndex, float multiplier) { return _i(0xC970D0E0FC31D768, vehicle, wheelIndex, multiplier); } // 0xc970d0e0fc31d768B2060 + inline Void SetAircraftIgnoreHightmapOptimisation(Vehicle vehicle, int p1) { return _i(0xF8B49F5BA7F850E7, vehicle, p1); } // 0xf8b49f5ba7f850e7B2060 + // Lowers the vehicle's stance. Only works for vehicles that have strAdvancedFlags 0x8000 and 0x4000000 set. + inline Void SetReducedSuspensionForce(Vehicle vehicle, BOOL enable) { return _i(0x3A375167F5782A65, vehicle, enable); } // 0x3a375167f5782a65B2372 + inline Void SetDriftTyres(Vehicle vehicle, BOOL toggle) { return _i(0x5AC79C98C5C17F05, vehicle, toggle); } // 0x5ac79c98c5c17f05B2372 + inline BOOL GetDriftTyresSet(Vehicle vehicle) { return _i(0x2F5A72430E78C8D3, vehicle); } // 0x2f5a72430e78c8d3B2372 + // Implemented only for trains. + inline Void NetworkUseHighPrecisionTrainBlending(Vehicle vehicle, BOOL toggle) { return _i(0xEC0C1D4922AF9754, vehicle, toggle); } // 0xec0c1d4922af9754B2372 + // Only used in R* Script fm_content_cargo + inline Void SetCheckForEnoughRoomForPed(Vehicle vehicle, BOOL p1) { return _i(0xEF9D388F8D377F44, vehicle, p1); } // 0xef9d388f8d377f44B2699 + // _SET_ALLOW_R* - _SET_ALLOW_V* + inline Void SetAllowCollisionWhenInVehicle(Vehicle vehicle, BOOL toggle) { return _i(0x27D27223E8EF22ED, vehicle, toggle); } // 0x27d27223e8ef22edB3095 + inline BOOL IsVehicleGen9ExclusiveModel(Hash vehicleModel) { return _i(0x6638C0F19DE692FE, vehicleModel); } // 0x6638c0f19de692feB3095 + inline int GetVehicleMaxExhaustBoneCount() { return _i(0x3EE18B00CD86C54F); } // 0x3ee18b00cd86c54fB3095 + inline BOOL GetVehicleExhaustBone(Vehicle vehicle, int index, int* boneIndex, BOOL* axisX) { return _i(0xE728F090D538CB18, vehicle, index, boneIndex, axisX); } // 0xe728f090d538cb18B3095 } namespace WATER { - // This function set height to the value of z-axis of the water surface. - // - // This function works with sea and lake. However it does not work with shallow rivers (e.g. raton canyon will return -100000.0f) - // - // note: seems to return true when you are in water - inline BOOL GetWaterHeight(float x, float y, float z, float* height) { return _i(0xF6829842C06AE524, x, y, z, height); } // 0xf6829842c06ae5240xd864e17cB323 - inline BOOL GetWaterHeightNoWaves(float x, float y, float z, float* height) { return _i(0x8EE6B53CE13A9794, x, y, z, height); } // 0x8ee6b53ce13a97940x262017f8B323 - inline BOOL TestProbeAgainstWater(float x1, float y1, float z1, float x2, float y2, float z2, Vector3* result) { return _i(0xFFA5D878809819DB, x1, y1, z1, x2, y2, z2, result); } // 0xffa5d878809819db0xaa4ae00cB323 - // enum eScriptWaterTestResult - // { - // SCRIPT_WATER_TEST_RESULT_NONE, - // SCRIPT_WATER_TEST_RESULT_WATER, - // SCRIPT_WATER_TEST_RESULT_BLOCKED, - // }; - inline int TestProbeAgainstAllWater(float x1, float y1, float z1, float x2, float y2, float z2, int flags, float* waterHeight) { return _i(0x8974647ED222EA5F, x1, y1, z1, x2, y2, z2, flags, waterHeight); } // 0x8974647ed222ea5f0x4a962d55B323 - // See TestProbeAgainstAllWater. - inline int TestVerticalProbeAgainstAllWater(float x, float y, float z, int flags, float* waterHeight) { return _i(0x2B3451FA1E3142E2, x, y, z, flags, waterHeight); } // 0x2b3451fa1e3142e20x4c71d143B323 - // Sets the water height for a given position and radius. - // - inline Void ModifyWater(float x, float y, float radius, float height) { return _i(0xC443FD757C3BA637, x, y, radius, height); } // 0xc443fd757c3ba6370xc49e005aB323 - inline int AddExtraCalmingQuad(float xLow, float yLow, float xHigh, float yHigh, float height) { return _i(0xFDBF4CDBC07E1706, xLow, yLow, xHigh, yHigh, height); } // 0xfdbf4cdbc07e17060xa9419b6dB323 - // p0 is the handle returned from AddExtraCalmingQuad - inline Void RemoveExtraCalmingQuad(int calmingQuad) { return _i(0xB1252E3E59A82AAF, calmingQuad); } // 0xb1252e3e59a82aaf0x45268b6fB323 - // Sets a value that determines how aggressive the ocean waves will be. Values of 2.0 or more make for very aggressive waves like you see during a thunderstorm. - // - // Works only ~200 meters around the player. - inline Void SetDeepOceanScaler(float intensity) { return _i(0xB96B00E976BE977F, intensity); } // 0xb96b00e976be977f0x53b694b1B323 - // Gets the aggressiveness factor of the ocean waves. - inline float GetDeepOceanScaler() { return _i(0x2B2A2CC86778B619); } // 0x2b2a2cc86778b6190xbd0a67fbB323 - inline Void SetCalmedWaveHeightScaler(float height) { return _i(0x547237AA71AB44DE, height); } // 0x547237aa71ab44deB573 - // Sets the waves intensity back to original (1.0 in most cases). - inline Void ResetDeepOceanScaler() { return _i(0x5E5E99285AE812DB); } // 0x5e5e99285ae812db0x4ad23212B323 + // This function set height to the value of z-axis of the water surface. + // + // This function works with sea and lake. However it does not work with shallow rivers (e.g. raton canyon will return -100000.0f) + // + // note: seems to return true when you are in water + inline BOOL GetWaterHeight(float x, float y, float z, float* height) { return _i(0xF6829842C06AE524, x, y, z, height); } // 0xf6829842c06ae5240xd864e17cB323 + inline BOOL GetWaterHeightNoWaves(float x, float y, float z, float* height) { return _i(0x8EE6B53CE13A9794, x, y, z, height); } // 0x8ee6b53ce13a97940x262017f8B323 + inline BOOL TestProbeAgainstWater(float x1, float y1, float z1, float x2, float y2, float z2, Vector3* result) { return _i(0xFFA5D878809819DB, x1, y1, z1, x2, y2, z2, result); } // 0xffa5d878809819db0xaa4ae00cB323 + // enum eScriptWaterTestResult + // { + // SCRIPT_WATER_TEST_RESULT_NONE, + // SCRIPT_WATER_TEST_RESULT_WATER, + // SCRIPT_WATER_TEST_RESULT_BLOCKED, + // }; + inline int TestProbeAgainstAllWater(float x1, float y1, float z1, float x2, float y2, float z2, int flags, float* waterHeight) { return _i(0x8974647ED222EA5F, x1, y1, z1, x2, y2, z2, flags, waterHeight); } // 0x8974647ed222ea5f0x4a962d55B323 + // See TestProbeAgainstAllWater. + inline int TestVerticalProbeAgainstAllWater(float x, float y, float z, int flags, float* waterHeight) { return _i(0x2B3451FA1E3142E2, x, y, z, flags, waterHeight); } // 0x2b3451fa1e3142e20x4c71d143B323 + // Sets the water height for a given position and radius. + // + inline Void ModifyWater(float x, float y, float radius, float height) { return _i(0xC443FD757C3BA637, x, y, radius, height); } // 0xc443fd757c3ba6370xc49e005aB323 + inline int AddExtraCalmingQuad(float xLow, float yLow, float xHigh, float yHigh, float height) { return _i(0xFDBF4CDBC07E1706, xLow, yLow, xHigh, yHigh, height); } // 0xfdbf4cdbc07e17060xa9419b6dB323 + // p0 is the handle returned from AddExtraCalmingQuad + inline Void RemoveExtraCalmingQuad(int calmingQuad) { return _i(0xB1252E3E59A82AAF, calmingQuad); } // 0xb1252e3e59a82aaf0x45268b6fB323 + // Sets a value that determines how aggressive the ocean waves will be. Values of 2.0 or more make for very aggressive waves like you see during a thunderstorm. + // + // Works only ~200 meters around the player. + inline Void SetDeepOceanScaler(float intensity) { return _i(0xB96B00E976BE977F, intensity); } // 0xb96b00e976be977f0x53b694b1B323 + // Gets the aggressiveness factor of the ocean waves. + inline float GetDeepOceanScaler() { return _i(0x2B2A2CC86778B619); } // 0x2b2a2cc86778b6190xbd0a67fbB323 + inline Void SetCalmedWaveHeightScaler(float height) { return _i(0x547237AA71AB44DE, height); } // 0x547237aa71ab44deB573 + // Sets the waves intensity back to original (1.0 in most cases). + inline Void ResetDeepOceanScaler() { return _i(0x5E5E99285AE812DB); } // 0x5e5e99285ae812db0x4ad23212B323 } namespace WEAPON { - // Enables laser sight on any weapon. - // - // It doesn't work. Neither on tick nor OnKeyDown - inline Void EnableLaserSightRendering(BOOL toggle) { return _i(0xC8B46D7727D864AA, toggle); } // 0xc8b46d7727d864aa0xe3438955B323 - inline Hash GetWeaponComponentTypeModel(Hash componentHash) { return _i(0x0DB57B41EC1DB083, componentHash); } // 0x0db57b41ec1db0830x324fa47aB323 - // Returns the model of any weapon. - // - // Can also take an ammo hash? - // sub_6663a(&l_115B, WEAPON::GetWeapontypeModel(${ammo_rpg})); - inline Hash GetWeapontypeModel(Hash weaponHash) { return _i(0xF46CDC33180FDA94, weaponHash); } // 0xf46cdc33180fda940x44e1c269B323 - inline Hash GetWeapontypeSlot(Hash weaponHash) { return _i(0x4215460B9B8B7FA0, weaponHash); } // 0x4215460b9b8b7fa00x2e3759afB323 - inline Hash GetWeapontypeGroup(Hash weaponHash) { return _i(0xC3287EE3050FB74C, weaponHash); } // 0xc3287ee3050fb74c0x5f2de833B323 - // Returns the amount of extra components the specified component has. - // Returns -1 if the component isn't of type CWeaponComponentVariantModel. - inline int GetWeaponComponentVariantExtraCount(Hash componentHash) { return _i(0x6558AC7C17BFEF58, componentHash); } // 0x6558ac7c17bfef58B372 - // Returns the model hash of the extra component at specified index. - inline Hash GetWeaponComponentVariantExtraModel(Hash componentHash, int extraComponentIndex) { return _i(0x4D1CB8DC40208A17, componentHash, extraComponentIndex); } // 0x4d1cb8dc40208a17B372 - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void SetCurrentPedWeapon(Ped ped, Hash weaponHash, BOOL bForceInHand) { return _i(0xADF692B254977C0C, ped, weaponHash, bForceInHand); } // 0xadf692b254977c0c0xb8278882B323 - // The return value seems to indicate returns true if the hash of the weapon object weapon equals the weapon hash. - // p2 seems to be 1 most of the time. - // - // - // - // - // - // p2 is not implemented - // - // disassembly said that? - // - inline BOOL GetCurrentPedWeapon(Ped ped, Hash* weaponHash, BOOL p2) { return _i(0x3A87E44BB9A01D54, ped, weaponHash, p2); } // 0x3a87e44bb9a01d540xb0237302B323 - inline Entity GetCurrentPedWeaponEntityIndex(Ped ped, Any p1) { return _i(0x3B390A939AF0B5FC, ped, p1); } // 0x3b390a939af0b5fc0x5d73cd20B323 - // p1 is always 0 in the scripts. - inline Hash GetBestPedWeapon(Ped ped, BOOL p1) { return _i(0x8483E98E8B888AE2, ped, p1); } // 0x8483e98e8b888ae20xb998d444B323 - // Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline BOOL SetCurrentPedVehicleWeapon(Ped ped, Hash weaponHash) { return _i(0x75C55983C2C39DAA, ped, weaponHash); } // 0x75c55983c2c39daa0x8e6f2af1B323 - // Example in VB - // - // Public Shared Function GetVehicleCurrentWeapon(Ped As Ped) As Integer - // Dim arg As New OutputArgument() - // Native.Function.Call(Hash.GetCurrentPedVehicleWeapon, Ped, arg) - // Return arg.GetResult(Of Integer)() - // End Function - // - // Usage: - // If GetVehicleCurrentWeapon(Game.Player.Character) = -821520672 Then ...Do something - // Note: -821520672 = VEHICLE_WEAPON_PLANE_ROCKET - inline BOOL GetCurrentPedVehicleWeapon(Ped ped, Hash* weaponHash) { return _i(0x1017582BCD3832DC, ped, weaponHash); } // 0x1017582bcd3832dc0xf26c5d65B323 - inline Void SetPedCycleVehicleWeaponsOnly(Ped ped) { return _i(0x50276EF8172F5F12, ped); } // 0x50276ef8172f5f12B1734 - // Checks if the ped is currently equipped with a weapon matching a bit specified using a bitwise-or in typeFlags. - // - // Type flag bit values: - // 1 = Melee weapons - // 2 = Explosive weapons - // 4 = Any other weapons - // - // Not specifying any bit will lead to the native *always* returning 'false', and for example specifying '4 | 2' will check for any weapon except fists and melee weapons. - // 7 returns true if you are equipped with any weapon except your fists. - // 6 returns true if you are equipped with any weapon except melee weapons. - // 5 returns true if you are equipped with any weapon except the Explosives weapon group. - // 4 returns true if you are equipped with any weapon except Explosives weapon group AND melee weapons. - // 3 returns true if you are equipped with either Explosives or Melee weapons (the exact opposite of 4). - // 2 returns true only if you are equipped with any weapon from the Explosives weapon group. - // 1 returns true only if you are equipped with any Melee weapon. - // 0 never returns true. - // - // Note: When I say "Explosives weapon group", it does not include the Jerry can and Fire Extinguisher. - inline BOOL IsPedArmed(Ped ped, int typeFlags) { return _i(0x475768A975D5AD17, ped, typeFlags); } // 0x475768a975d5ad170x0bfc892cB323 - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline BOOL IsWeaponValid(Hash weaponHash) { return _i(0x937C71165CF334B3, weaponHash); } // 0x937c71165cf334b30x38ca2954B323 - // p2 should be FALSE, otherwise it seems to always return FALSE - // - // Bool does not check if the weapon is current equipped, unfortunately. - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline BOOL HasPedGotWeapon(Ped ped, Hash weaponHash, BOOL p2) { return _i(0x8DECB02F88F428BC, ped, weaponHash, p2); } // 0x8decb02f88f428bc0x43d2fa82B323 - inline BOOL IsPedWeaponReadyToShoot(Ped ped) { return _i(0xB80CA294F2F26749, ped); } // 0xb80ca294f2f267490x02a32cb0B323 - inline Hash GetPedWeapontypeInSlot(Ped ped, Hash weaponSlot) { return _i(0xEFFED78E9011134D, ped, weaponSlot); } // 0xeffed78e9011134d0x9bc64e16B323 - // WEAPON::GetAmmoInPedWeapon(PLAYER::PlayerPedId(), a_0) - // - // From decompiled scripts - // Returns total ammo in weapon - // - // GTALua Example : - // natives.WEAPON.GetAmmoInPedWeapon(plyPed, WeaponHash) - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline int GetAmmoInPedWeapon(Ped ped, Hash weaponhash) { return _i(0x015A522136D7F951, ped, weaponhash); } // 0x015a522136d7f9510x0c755733B323 - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void AddAmmoToPed(Ped ped, Hash weaponHash, int ammo) { return _i(0x78F0424C34306220, ped, weaponHash, ammo); } // 0x78f0424c343062200x7f0580c7B323 - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void SetPedAmmo(Ped ped, Hash weaponHash, int ammo, BOOL p3) { return _i(0x14E56BC5B5DB6A19, ped, weaponHash, ammo, p3); } // 0x14e56bc5b5db6a190xbf90df1aB323 - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void SetPedInfiniteAmmo(Ped ped, BOOL toggle, Hash weaponHash) { return _i(0x3EDCB0505123623B, ped, toggle, weaponHash); } // 0x3edcb0505123623b0x9cb8d278B323 - inline Void SetPedInfiniteAmmoClip(Ped ped, BOOL toggle) { return _i(0x183DADC6AA953186, ped, toggle); } // 0x183dadc6aa9531860x5a5e3b67B323 - inline Void SetPedStunGunFiniteAmmo(Any p0, Any p1) { return _i(0x24C024BA8379A70A, p0, p1); } // 0x24c024ba8379a70aB1868 - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void GiveWeaponToPed(Ped ped, Hash weaponHash, int ammoCount, BOOL isHidden, BOOL bForceInHand) { return _i(0xBF0FD6E56C964FCB, ped, weaponHash, ammoCount, isHidden, bForceInHand); } // 0xbf0fd6e56c964fcb0xc4d88a85B323 - // Gives a weapon to PED with a delay, example: - // - // WEAPON::GiveDelayedWeaponToPed(PED::PlayerPedId(), MISC::GetHashKey("WEAPON_PISTOL"), 1000, false) - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void GiveDelayedWeaponToPed(Ped ped, Hash weaponHash, int ammoCount, BOOL bForceInHand) { return _i(0xB282DC6EBD803C75, ped, weaponHash, ammoCount, bForceInHand); } // 0xb282dc6ebd803c750x5868d20dB323 - // setting the last params to false it does that same so I would suggest its not a toggle - inline Void RemoveAllPedWeapons(Ped ped, BOOL p1) { return _i(0xF25DF915FA38C5F3, ped, p1); } // 0xf25df915fa38c5f30xa44ce817B323 - // This native removes a specified weapon from your selected ped. - // - // Example: - // C#: - // Function.Call(Hash.RemoveWeaponFromPed, Game.Player.Character, 0x99B507EA); - // - // C++: - // WEAPON::RemoveWeaponFromPed(PLAYER::PlayerPedId(), 0x99B507EA); - // - // The code above removes the knife from the player. - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void RemoveWeaponFromPed(Ped ped, Hash weaponHash) { return _i(0x4899CB088EDF59B8, ped, weaponHash); } // 0x4899cb088edf59b80x9c37f220B323 - // Hides the players weapon during a cutscene. - inline Void HidePedWeaponForScriptedCutscene(Ped ped, BOOL toggle) { return _i(0x6F6981D2253C208F, ped, toggle); } // 0x6f6981d2253c208f0x00cfd6e9B323 - // Has 5 parameters since latest patches. - inline Void SetPedCurrentWeaponVisible(Ped ped, BOOL visible, BOOL deselectWeapon, BOOL p3, BOOL p4) { return _i(0x0725A4CCFDED9A70, ped, visible, deselectWeapon, p3, p4); } // 0x0725a4ccfded9a700x00becd77B323 - inline Void SetPedDropsWeaponsWhenDead(Ped ped, BOOL toggle) { return _i(0x476AE72C1D19D1A8, ped, toggle); } // 0x476ae72c1d19d1a80x8a444056B323 - // It determines what weapons caused damage: - // - // If you want to define only a specific weapon, second parameter=weapon hash code, third parameter=0 - // If you want to define any melee weapon, second parameter=0, third parameter=1. - // If you want to identify any weapon (firearms, melee, rockets, etc.), second parameter=0, third parameter=2. - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline BOOL HasPedBeenDamagedByWeapon(Ped ped, Hash weaponHash, int weaponType) { return _i(0x2D343D2219CD027A, ped, weaponHash, weaponType); } // 0x2d343d2219cd027a0xcdfbbcc6B323 - // Does NOT seem to work with HasPedBeenDamagedByWeapon. Use ClearEntityLastWeaponDamage and HasEntityBeenDamagedByWeapon instead. - inline Void ClearPedLastWeaponDamage(Ped ped) { return _i(0x0E98F88A24C5F4B8, ped); } // 0x0e98f88a24c5f4b80x52c68832B323 - // It determines what weapons caused damage: - // - // If you want to define only a specific weapon, second parameter=weapon hash code, third parameter=0 - // If you want to define any melee weapon, second parameter=0, third parameter=1. - // If you want to identify any weapon (firearms, melee, rockets, etc.), second parameter=0, third parameter=2. - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline BOOL HasEntityBeenDamagedByWeapon(Entity entity, Hash weaponHash, int weaponType) { return _i(0x131D401334815E94, entity, weaponHash, weaponType); } // 0x131d401334815e940x6daabb39B323 - inline Void ClearEntityLastWeaponDamage(Entity entity) { return _i(0xAC678E40BE7C74D2, entity); } // 0xac678e40be7c74d20xcec2732bB323 - inline Void SetPedDropsWeapon(Ped ped) { return _i(0x6B7513D9966FBEC0, ped); } // 0x6b7513d9966fbec00x3d3329faB323 - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void SetPedDropsInventoryWeapon(Ped ped, Hash weaponHash, float xOffset, float yOffset, float zOffset, int ammoCount) { return _i(0x208A1888007FC0E6, ped, weaponHash, xOffset, yOffset, zOffset, ammoCount); } // 0x208a1888007fc0e60x81ffb874B323 - // p2 is mostly 1 in the scripts. - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline int GetMaxAmmoInClip(Ped ped, Hash weaponHash, BOOL p2) { return _i(0xA38DCFFCEA8962FA, ped, weaponHash, p2); } // 0xa38dcffcea8962fa0x6961e2a4B323 - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline BOOL GetAmmoInClip(Ped ped, Hash weaponHash, int* ammo) { return _i(0x2E1202248937775C, ped, weaponHash, ammo); } // 0x2e1202248937775c0x73c100c3B323 - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline BOOL SetAmmoInClip(Ped ped, Hash weaponHash, int ammo) { return _i(0xDCD2A934D65CB497, ped, weaponHash, ammo); } // 0xdcd2a934d65cb4970xa54b0b10B323 - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline BOOL GetMaxAmmo(Ped ped, Hash weaponHash, int* ammo) { return _i(0xDC16122C7A20C933, ped, weaponHash, ammo); } // 0xdc16122c7a20c9330x0b294796B323 - // Returns the max ammo for an ammo type. Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 - inline BOOL GetMaxAmmoByType(Ped ped, Hash ammoTypeHash, int* ammo) { return _i(0x585847C5E4E11709, ped, ammoTypeHash, ammo); } // 0x585847c5e4e11709B1103 - // Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 - inline Void AddPedAmmoByType(Ped ped, Hash ammoTypeHash, int ammo) { return _i(0x2472622CE1F2D45F, ped, ammoTypeHash, ammo); } // 0x2472622ce1f2d45fB1103 - // Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 - inline Void SetPedAmmoByType(Ped ped, Hash ammoTypeHash, int ammo) { return _i(0x5FD1E1F011E76D7E, ped, ammoTypeHash, ammo); } // 0x5fd1e1f011e76d7e0x311c52bbB323 - inline int GetPedAmmoByType(Ped ped, Hash ammoTypeHash) { return _i(0x39D22031557946C1, ped, ammoTypeHash); } // 0x39d22031557946c10x54077c4dB323 - inline Void SetPedAmmoToDrop(Ped ped, int p1) { return _i(0xA4EFEF9440A5B0EF, ped, p1); } // 0xa4efef9440a5b0ef0x2386a307B323 - inline Void SetPickupAmmoAmountScaler(float p0) { return _i(0xE620FD3512A04F18, p0); } // 0xe620fd3512a04f180xd6460ea2B323 - // Returns the current ammo type of the specified ped's specified weapon. - // MkII magazines will change the return value, like Pistol MkII returning AMMO_PISTOL without any components and returning AMMO_PISTOL_TRACER after Tracer Rounds component is attached. - // Use 0xF489B44DD5AF4BD9 if you always want AMMO_PISTOL. - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Hash GetPedAmmoTypeFromWeapon(Ped ped, Hash weaponHash) { return _i(0x7FEAD38B326B9F74, ped, weaponHash); } // 0x7fead38b326b9f740x09337863B323 - // Returns the base/default ammo type of the specified ped's specified weapon. - // Use GetPedAmmoTypeFromWeapon if you want current ammo type (like AMMO_MG_INCENDIARY/AMMO_MG_TRACER while using MkII magazines) and use this if you want base ammo type. (AMMO_MG) - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Hash GetPedOriginalAmmoTypeFromWeapon(Ped ped, Hash weaponHash) { return _i(0xF489B44DD5AF4BD9, ped, weaponHash); } // 0xf489b44dd5af4bd9B1103 - // Pass ped. Pass address of Vector3. - // The coord will be put into the Vector3. - // The return will determine whether there was a coord found or not. - inline BOOL GetPedLastWeaponImpactCoord(Ped ped, Vector3* coords) { return _i(0x6C4D0409BA1A2BC2, ped, coords); } // 0x6c4d0409ba1a2bc20x9b266079B323 - // p1/gadgetHash was always 0xFBAB5776 ("GADGET_PARACHUTE"). - // p2 is always true. - inline Void SetPedGadget(Ped ped, Hash gadgetHash, BOOL p2) { return _i(0xD0D7B1E680ED4A1A, ped, gadgetHash, p2); } // 0xd0d7b1e680ed4a1a0x8a256d0aB323 - // gadgetHash - was always 0xFBAB5776 ("GADGET_PARACHUTE"). - inline BOOL GetIsPedGadgetEquipped(Ped ped, Hash gadgetHash) { return _i(0xF731332072F5156C, ped, gadgetHash); } // 0xf731332072f5156c0x8ddd0b5bB323 - // Returns the hash of the weapon. - // - // var num7 = WEAPON::GetSelectedPedWeapon(num4); - // sub_27D3(num7); - // switch (num7) - // { - // case 0x24B17070: - // - // Also see WEAPON::GetCurrentPedWeapon. Difference? - // - // ------------------------------------------------------------------------- - // - // The difference is that GetSelectedPedWeapon simply returns the ped's current weapon hash but GetCurrentPedWeapon also checks the weapon object and returns true if the hash of the weapon object equals the weapon hash - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Hash GetSelectedPedWeapon(Ped ped) { return _i(0x0A6DB4965674D243, ped); } // 0x0a6db4965674d2430xd240123eB323 - // WEAPON::ExplodeProjectiles(PLAYER::PlayerPedId(), func_221(0x00000003), 0x00000001); - inline Void ExplodeProjectiles(Ped ped, Hash weaponHash, BOOL p2) { return _i(0xFC4BD125DE7611E4, ped, weaponHash, p2); } // 0xfc4bd125de7611e40x35a0b955B323 - // If `explode` true, then removal is done through exploding the projectile. Basically the same as ExplodeProjectiles but without defining the owner ped. - inline Void RemoveAllProjectilesOfType(Hash weaponHash, BOOL explode) { return _i(0xFC52E0F37E446528, weaponHash, explode); } // 0xfc52e0f37e4465280xa5f89919B323 - inline float GetLockonDistanceOfCurrentPedWeapon(Ped ped) { return _i(0x840F03E9041E2C9C, ped); } // 0x840f03e9041e2c9c0x3612110dB323 - inline float GetMaxRangeOfCurrentPedWeapon(Ped ped) { return _i(0x814C9D19DFD69679, ped); } // 0x814c9d19dfd696790xb2b2bbaaB323 - // Fourth Parameter = unsure, almost always -1 - inline BOOL HasVehicleGotProjectileAttached(Ped driver, Vehicle vehicle, Hash weaponHash, Any p3) { return _i(0x717C8481234E3B88, driver, vehicle, weaponHash, p3); } // 0x717c8481234e3b880xa57e2e80B323 - // Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void GiveWeaponComponentToPed(Ped ped, Hash weaponHash, Hash componentHash) { return _i(0xD966D51AA5B28BB9, ped, weaponHash, componentHash); } // 0xd966d51aa5b28bb90x3e1e286dB323 - // Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void RemoveWeaponComponentFromPed(Ped ped, Hash weaponHash, Hash componentHash) { return _i(0x1E8BE90C74FB4C09, ped, weaponHash, componentHash); } // 0x1e8be90c74fb4c090x412aa00dB323 - // Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline BOOL HasPedGotWeaponComponent(Ped ped, Hash weaponHash, Hash componentHash) { return _i(0xC593212475FAE340, ped, weaponHash, componentHash); } // 0xc593212475fae3400xdc0fc145B323 - // Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline BOOL IsPedWeaponComponentActive(Ped ped, Hash weaponHash, Hash componentHash) { return _i(0x0D78DE0572D3969E, ped, weaponHash, componentHash); } // 0x0d78de0572d3969e0x7565fb19B323 - inline BOOL RefillAmmoInstantly(Ped ped) { return _i(0x8C0D57EA686FAD87, ped); } // 0x8c0d57ea686fad870x82eeaf0fB323 - // Forces a ped to reload only if they are able to; if they have a full magazine, they will not reload. - inline BOOL MakePedReload(Ped ped) { return _i(0x20AE33F3AC9C0033, ped); } // 0x20ae33f3ac9c00330x515292c2B323 - // Nearly every instance of p1 I found was 31. Nearly every instance of p2 I found was 0. - // - // RequestWeaponAsset(iLocal_1888, 31, 26); - inline Void RequestWeaponAsset(Hash weaponHash, int p1, int p2) { return _i(0x5443438F033E29C3, weaponHash, p1, p2); } // 0x5443438f033e29c30x65d139a5B323 - inline BOOL HasWeaponAssetLoaded(Hash weaponHash) { return _i(0x36E353271F0E90EE, weaponHash); } // 0x36e353271f0e90ee0x1891d5bbB323 - inline Void RemoveWeaponAsset(Hash weaponHash) { return _i(0xAA08EF13F341C8FC, weaponHash); } // 0xaa08ef13f341c8fc0x2c0dfe3cB323 - // Now has 8 params. - inline Object CreateWeaponObject(Hash weaponHash, int ammoCount, float x, float y, float z, BOOL showWorldModel, float scale, Any p7, Any p8, Any p9) { return _i(0x9541D3CF0D398F36, weaponHash, ammoCount, x, y, z, showWorldModel, scale, p7, p8, p9); } // 0x9541d3cf0d398f360x62f5987fB323 - // componentHash: - // (use WEAPON::GetWeaponComponentTypeModel() to get hash value) - // ${component_at_ar_flsh}, ${component_at_ar_supp}, ${component_at_pi_flsh}, ${component_at_scope_large}, ${component_at_ar_supp_02} - inline Void GiveWeaponComponentToWeaponObject(Object weaponObject, Hash componentHash) { return _i(0x33E179436C0B31DB, weaponObject, componentHash); } // 0x33e179436c0b31db0xf7612a37B323 - // see DoesWeaponTakeWeaponComponent for full list of weapons & components - inline Void RemoveWeaponComponentFromWeaponObject(Object object, Hash componentHash) { return _i(0xF7D82B0D66777611, object, componentHash); } // 0xf7d82b0d667776110xa6e7ed3cB323 - // see DoesWeaponTakeWeaponComponent for full list of weapons & components - inline BOOL HasWeaponGotWeaponComponent(Object weapon, Hash componentHash) { return _i(0x76A18844E743BF91, weapon, componentHash); } // 0x76a18844e743bf910x1d368510B323 - inline Void GiveWeaponObjectToPed(Object weaponObject, Ped ped) { return _i(0xB1FA61371AF7C4B7, weaponObject, ped); } // 0xb1fa61371af7c4b70x639af3efB323 - // Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline BOOL DoesWeaponTakeWeaponComponent(Hash weaponHash, Hash componentHash) { return _i(0x5CEE3DF569CECAB0, weaponHash, componentHash); } // 0x5cee3df569cecab00xb1817baaB323 - // Drops the current weapon and returns the object - // - // Unknown behavior when unarmed. - inline Object GetWeaponObjectFromPed(Ped ped, BOOL p1) { return _i(0xCAE1DC9A0E22A16D, ped, p1); } // 0xcae1dc9a0e22a16d0xdf939a38B323 - // Gives the specified loadout to the specified ped. - // Loadouts are defined in common.rpf\data\ai\loadouts.meta - inline Void GiveLoadoutToPed(Ped ped, Hash loadoutHash) { return _i(0x68F8BE6AF5CDF8A6, ped, loadoutHash); } // 0x68f8be6af5cdf8a6B505 - // tintIndex can be the following: - // - // 0 - Normal - // 1 - Green - // 2 - Gold - // 3 - Pink - // 4 - Army - // 5 - LSPD - // 6 - Orange - // 7 - Platinum - // Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void SetPedWeaponTintIndex(Ped ped, Hash weaponHash, int tintIndex) { return _i(0x50969B9B89ED5738, ped, weaponHash, tintIndex); } // 0x50969b9b89ed57380xeb2a7b23B323 - // Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline int GetPedWeaponTintIndex(Ped ped, Hash weaponHash) { return _i(0x2B9EEDC07BD06B9F, ped, weaponHash); } // 0x2b9eedc07bd06b9f0x3f9c90a7B323 - // Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void SetWeaponObjectTintIndex(Object weapon, int tintIndex) { return _i(0xF827589017D4E4A9, weapon, tintIndex); } // 0xf827589017d4e4a90x44acc1daB323 - inline int GetWeaponObjectTintIndex(Object weapon) { return _i(0xCD183314F7CD2E57, weapon); } // 0xcd183314f7cd2e570xd91d9576B323 - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline int GetWeaponTintCount(Hash weaponHash) { return _i(0x5DCF6C5CAB2E9BF7, weaponHash); } // 0x5dcf6c5cab2e9bf70x99e4eaabB323 - // Colors: - // 0 = Gray - // 1 = Dark Gray - // 2 = Black - // 3 = White - // 4 = Blue - // 5 = Cyan - // 6 = Aqua - // 7 = Cool Blue - // 8 = Dark Blue - // 9 = Royal Blue - // 10 = Plum - // 11 = Dark Purple - // 12 = Purple - // 13 = Red - // 14 = Wine Red - // 15 = Magenta - // 16 = Pink - // 17 = Salmon - // 18 = Hot Pink - // 19 = Rust Orange - // 20 = Brown - // 21 = Earth - // 22 = Orange - // 23 = Light Orange - // 24 = Dark Yellow - // 25 = Yellow - // 26 = Light Brown - // 27 = Lime Green - // 28 = Olive - // 29 = Moss - // 30 = Turquoise - // 31 = Dark Green - // Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void SetPedWeaponComponentTintIndex(Ped ped, Hash weaponHash, Hash camoComponentHash, int colorIndex) { return _i(0x9FE5633880ECD8ED, ped, weaponHash, camoComponentHash, colorIndex); } // 0x9fe5633880ecd8edB1103 - // Returns -1 if camoComponentHash is invalid/not attached to the weapon. - // Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline int GetPedWeaponComponentTintIndex(Ped ped, Hash weaponHash, Hash camoComponentHash) { return _i(0xF0A60040BE558F2D, ped, weaponHash, camoComponentHash); } // 0xf0a60040be558f2dB1103 - // Colors: - // 0 = Gray - // 1 = Dark Gray - // 2 = Black - // 3 = White - // 4 = Blue - // 5 = Cyan - // 6 = Aqua - // 7 = Cool Blue - // 8 = Dark Blue - // 9 = Royal Blue - // 10 = Plum - // 11 = Dark Purple - // 12 = Purple - // 13 = Red - // 14 = Wine Red - // 15 = Magenta - // 16 = Pink - // 17 = Salmon - // 18 = Hot Pink - // 19 = Rust Orange - // 20 = Brown - // 21 = Earth - // 22 = Orange - // 23 = Light Orange - // 24 = Dark Yellow - // 25 = Yellow - // 26 = Light Brown - // 27 = Lime Green - // 28 = Olive - // 29 = Moss - // 30 = Turquoise - // 31 = Dark Green - // Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void SetWeaponObjectComponentTintIndex(Object weaponObject, Hash camoComponentHash, int colorIndex) { return _i(0x5DA825A85D0EA6E6, weaponObject, camoComponentHash, colorIndex); } // 0x5da825a85d0ea6e6B1103 - // Returns -1 if camoComponentHash is invalid/not attached to the weapon object. - // Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline int GetWeaponObjectComponentTintIndex(Object weaponObject, Hash camoComponentHash) { return _i(0xB3EA4FEABF41464B, weaponObject, camoComponentHash); } // 0xb3ea4feabf41464bB1103 - inline int GetPedWeaponCamoIndex(Ped ped, Hash weaponHash) { return _i(0xA2C9AC24B4061285, ped, weaponHash); } // 0xa2c9ac24b4061285B1103 - inline Void SetWeaponObjectCamoIndex(Object weaponObject, int p1) { return _i(0x977CA98939E82E4B, weaponObject, p1); } // 0x977ca98939e82e4bB1103 - // struct WeaponHudStatsData - // { - // BYTE hudDamage; // 0x0000 - // char _0x0001[0x7]; // 0x0001 - // BYTE hudSpeed; // 0x0008 - // char _0x0009[0x7]; // 0x0009 - // BYTE hudCapacity; // 0x0010 - // char _0x0011[0x7]; // 0x0011 - // BYTE hudAccuracy; // 0x0018 - // char _0x0019[0x7]; // 0x0019 - // BYTE hudRange; // 0x0020 - // }; - // - // Usage: - // - // WeaponHudStatsData data; - // if (GetWeaponHudStats(weaponHash, (int *)&data)) - // { - // // BYTE damagePercentage = data.hudDamage and so on - // } - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline BOOL GetWeaponHudStats(Hash weaponHash, Any* outData) { return _i(0xD92C739EE34C9EBA, weaponHash, outData); } // 0xd92c739ee34c9eba0xa9ad3d98B323 - inline BOOL GetWeaponComponentHudStats(Hash componentHash, Any* outData) { return _i(0xB3CAF387AE12E9F8, componentHash, outData); } // 0xb3caf387ae12e9f80xbb5498f4B323 - // This native does not return damages of weapons from the melee and explosive group. - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline float GetWeaponDamage(Hash weaponHash, Hash componentHash) { return _i(0x3133B907D8B32053, weaponHash, componentHash); } // 0x3133b907d8b320530xe81649c0B323 - // // Returns the size of the default weapon component clip. - // - // Use it like this: - // - // char cClipSize[32]; - // Hash cur; - // if (WEAPON::GetCurrentPedWeapon(playerPed, &cur, 1)) - // { - // if (WEAPON::IsWeaponValid(cur)) - // { - // int iClipSize = WEAPON::GetWeaponClipSize(cur); - // sprintf_s(cClipSize, "ClipSize: %.d", iClipSize); - // vDrawString(cClipSize, 0.5f, 0.5f); - // } - // } - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline int GetWeaponClipSize(Hash weaponHash) { return _i(0x583BE370B1EC6EB4, weaponHash); } // 0x583be370b1ec6eb40x8d515e66B323 - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline float GetWeaponTimeBetweenShots(Hash weaponHash) { return _i(0x065D2AACAD8CF7A4, weaponHash); } // 0x065d2aacad8cf7a4B1290 - inline Void SetPedChanceOfFiringBlanks(Ped ped, float xBias, float yBias) { return _i(0x8378627201D5497D, ped, xBias, yBias); } // 0x8378627201d5497d0xb4f44c6eB323 - // Returns handle of the projectile. - inline Object SetPedShootOrdnanceWeapon(Ped ped, float p1) { return _i(0xB4C8D77C80C0421E, ped, p1); } // 0xb4c8d77c80c0421e0xec2e5304B323 - inline Void RequestWeaponHighDetailModel(Entity weaponObject) { return _i(0x48164DBB970AC3F0, weaponObject); } // 0x48164dbb970ac3f00xe3bd00f9B323 - // Changes the weapon damage output by the given multiplier value. Must be run every frame. - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void SetWeaponDamageModifier(Hash weaponHash, float damageMultiplier) { return _i(0x4757F00BC6323CFE, weaponHash, damageMultiplier); } // 0x4757f00bc6323cfeB505 - inline Void SetWeaponAoeModifier(Hash weaponHash, float multiplier) { return _i(0x4AE5AC8B852D642C, weaponHash, multiplier); } // 0x4ae5ac8b852d642cB2372 - // ex, WEAPON::SetWeaponEffectDurationModifier(joaat("vehicle_weapon_mine_slick"), 1.0); - inline Void SetWeaponEffectDurationModifier(Hash p0, float p1) { return _i(0xE6D2CEDD370FF98E, p0, p1); } // 0xe6d2cedd370ff98eB2372 - // This native returns a true or false value. - // - // Ped ped = The ped whose weapon you want to check. - inline BOOL IsPedCurrentWeaponSilenced(Ped ped) { return _i(0x65F0C5AE05943EC7, ped); } // 0x65f0c5ae05943ec70xbaf7bfbeB323 - inline BOOL IsFlashLightOn(Ped ped) { return _i(0x4B7620C47217126C, ped); } // 0x4b7620c47217126c0x76876154B323 - inline BOOL SetFlashLightFadeDistance(float distance) { return _i(0xCEA66DAD478CD39B, distance); } // 0xcea66dad478cd39b0xb0127ea7B323 - // Enables/disables flashlight on ped's weapon. - inline Void SetFlashLightActiveHistory(Ped ped, BOOL toggle) { return _i(0x988DB6FE9B3AC000, ped, toggle); } // 0x988db6fe9b3ac000B2060 - // Changes the selected ped aiming animation style. - // Note : You must use GetHashKey! - // - // Strings to use with GetHashKey : - // - // "Ballistic", - // "Default", - // "Fat", - // "Female", - // "FirstPerson", - // "FirstPersonAiming", - // "FirstPersonFranklin", - // "FirstPersonFranklinAiming", - // "FirstPersonFranklinRNG", - // "FirstPersonFranklinScope", - // "FirstPersonMPFemale", - // "FirstPersonMichael", - // "FirstPersonMichaelAiming", - // "FirstPersonMichaelRNG", - // "FirstPersonMichaelScope", - // "FirstPersonRNG", - // "FirstPersonScope", - // "FirstPersonTrevor", - // "FirstPersonTrevorAiming", - // "FirstPersonTrevorRNG", - // "FirstPersonTrevorScope", - // "Franklin", - // "Gang", - // "Gang1H", - // "GangFemale", - // "Hillbilly", - // "MP_F_Freemode", - // "Michael", - // "SuperFat", - // "Trevor" - inline Void SetWeaponAnimationOverride(Ped ped, Hash animStyle) { return _i(0x1055AC3A667F09D9, ped, animStyle); } // 0x1055ac3a667f09d90xa5df7484B323 - // enum class eDamageType - // { - // UNKNOWN = 0, - // NONE = 1, - // MELEE = 2, - // BULLET = 3, - // BULLET_RUBBER = 4, - // EXPLOSIVE = 5, - // FIRE = 6, - // COLLISION = 7, - // FALL = 8, - // DROWN = 9, - // ELECTRIC = 10, - // BARBED_WIRE = 11, - // FIRE_EXTINGUISHER = 12, - // SMOKE = 13, - // WATER_CANNON = 14, - // TRANQUILIZER = 15, - // }; - // - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline int GetWeaponDamageType(Hash weaponHash) { return _i(0x3BE0BB12D25FB305, weaponHash); } // 0x3be0bb12d25fb3050x013afc13B323 - inline Void SetEqippedWeaponStartSpinningAtFullSpeed(Ped ped) { return _i(0xE4DCEC7FD5B739A5, ped); } // 0xe4dcec7fd5b739a50x64646f1dB323 - // this returns if you can use the weapon while using a parachute - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline BOOL CanUseWeaponOnParachute(Hash weaponHash) { return _i(0xBC7BE5ABC0879F74, weaponHash); } // 0xbc7be5abc0879f740x135e7ad4B323 - // Both coordinates are from objects in the decompiled scripts. Native related to 0xECDC202B25E5CF48 p1 value. The only weapon hash used in the decompiled scripts is weapon_air_defence_gun. These two natives are used by the yacht script, decompiled scripts suggest it and the weapon hash used (valkyrie's rockets) are also used by yachts. - inline int CreateAirDefenceSphere(float x, float y, float z, float radius, float p4, float p5, float p6, Hash weaponHash) { return _i(0x91EF34584710BE99, x, y, z, radius, p4, p5, p6, weaponHash); } // 0x91ef34584710be99B573 - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline int CreateAirDefenceAngledArea(float p0, float p1, float p2, float p3, float p4, float p5, float p6, float p7, float p8, float radius, Hash weaponHash) { return _i(0x9DA58CDBF6BDBC08, p0, p1, p2, p3, p4, p5, p6, p7, p8, radius, weaponHash); } // 0x9da58cdbf6bdbc08B1011 - inline BOOL RemoveAirDefenceSphere(int zoneId) { return _i(0x0ABF535877897560, zoneId); } // 0x0abf535877897560B573 - inline Void RemoveAllAirDefenceSpheres() { return _i(0x1E45B34ADEBEE48E); } // 0x1e45b34adebee48eB573 - inline Void SetPlayerTargettableForAirDefenceSphere(Player player, int zoneId, BOOL enable) { return _i(0xECDC202B25E5CF48, player, zoneId, enable); } // 0xecdc202b25e5cf48B573 - inline BOOL IsAirDefenceSphereInArea(float x, float y, float z, float radius, int* outZoneId) { return _i(0xDAB963831DBFD3F4, x, y, z, radius, outZoneId); } // 0xdab963831dbfd3f4B1103 - inline Void FireAirDefenceSphereWeaponAtPosition(int zoneId, float x, float y, float z) { return _i(0x44F1012B69313374, zoneId, x, y, z); } // 0x44f1012b69313374B573 - inline BOOL DoesAirDefenceSphereExist(int zoneId) { return _i(0xCD79A550999D7D4F, zoneId); } // 0xcd79a550999d7d4fB678 - // Disables selecting the given weapon. Ped isn't forced to put the gun away. However you can't reselect the weapon if you holster then unholster. Weapon is also grayed out on the weapon wheel. - // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - inline Void SetCanPedSelectInventoryWeapon(Ped ped, Hash weaponHash, BOOL toggle) { return _i(0xB4771B9AAF4E68E4, ped, weaponHash, toggle); } // 0xb4771b9aaf4e68e4B1103 - // Disable all weapons. Does the same as 0xB4771B9AAF4E68E4 except for all weapons. - inline Void SetCanPedSelectAllWeapons(Ped ped, BOOL toggle) { return _i(0xEFF296097FF1E509, ped, toggle); } // 0xeff296097ff1e509B1103 + // Enables laser sight on any weapon. + // + // It doesn't work. Neither on tick nor OnKeyDown + inline Void EnableLaserSightRendering(BOOL toggle) { return _i(0xC8B46D7727D864AA, toggle); } // 0xc8b46d7727d864aa0xe3438955B323 + inline Hash GetWeaponComponentTypeModel(Hash componentHash) { return _i(0x0DB57B41EC1DB083, componentHash); } // 0x0db57b41ec1db0830x324fa47aB323 + // Returns the model of any weapon. + // + // Can also take an ammo hash? + // sub_6663a(&l_115B, WEAPON::GetWeapontypeModel(${ammo_rpg})); + inline Hash GetWeapontypeModel(Hash weaponHash) { return _i(0xF46CDC33180FDA94, weaponHash); } // 0xf46cdc33180fda940x44e1c269B323 + inline Hash GetWeapontypeSlot(Hash weaponHash) { return _i(0x4215460B9B8B7FA0, weaponHash); } // 0x4215460b9b8b7fa00x2e3759afB323 + inline Hash GetWeapontypeGroup(Hash weaponHash) { return _i(0xC3287EE3050FB74C, weaponHash); } // 0xc3287ee3050fb74c0x5f2de833B323 + // Returns the amount of extra components the specified component has. + // Returns -1 if the component isn't of type CWeaponComponentVariantModel. + inline int GetWeaponComponentVariantExtraCount(Hash componentHash) { return _i(0x6558AC7C17BFEF58, componentHash); } // 0x6558ac7c17bfef58B372 + // Returns the model hash of the extra component at specified index. + inline Hash GetWeaponComponentVariantExtraModel(Hash componentHash, int extraComponentIndex) { return _i(0x4D1CB8DC40208A17, componentHash, extraComponentIndex); } // 0x4d1cb8dc40208a17B372 + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void SetCurrentPedWeapon(Ped ped, Hash weaponHash, BOOL bForceInHand) { return _i(0xADF692B254977C0C, ped, weaponHash, bForceInHand); } // 0xadf692b254977c0c0xb8278882B323 + // The return value seems to indicate returns true if the hash of the weapon object weapon equals the weapon hash. + // p2 seems to be 1 most of the time. + // + // + // + // + // + // p2 is not implemented + // + // disassembly said that? + // + inline BOOL GetCurrentPedWeapon(Ped ped, Hash* weaponHash, BOOL p2) { return _i(0x3A87E44BB9A01D54, ped, weaponHash, p2); } // 0x3a87e44bb9a01d540xb0237302B323 + inline Entity GetCurrentPedWeaponEntityIndex(Ped ped, Any p1) { return _i(0x3B390A939AF0B5FC, ped, p1); } // 0x3b390a939af0b5fc0x5d73cd20B323 + // p1 is always 0 in the scripts. + inline Hash GetBestPedWeapon(Ped ped, BOOL p1) { return _i(0x8483E98E8B888AE2, ped, p1); } // 0x8483e98e8b888ae20xb998d444B323 + // Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline BOOL SetCurrentPedVehicleWeapon(Ped ped, Hash weaponHash) { return _i(0x75C55983C2C39DAA, ped, weaponHash); } // 0x75c55983c2c39daa0x8e6f2af1B323 + // Example in VB + // + // Public Shared Function GetVehicleCurrentWeapon(Ped As Ped) As Integer + // Dim arg As New OutputArgument() + // Native.Function.Call(Hash.GetCurrentPedVehicleWeapon, Ped, arg) + // Return arg.GetResult(Of Integer)() + // End Function + // + // Usage: + // If GetVehicleCurrentWeapon(Game.Player.Character) = -821520672 Then ...Do something + // Note: -821520672 = VEHICLE_WEAPON_PLANE_ROCKET + inline BOOL GetCurrentPedVehicleWeapon(Ped ped, Hash* weaponHash) { return _i(0x1017582BCD3832DC, ped, weaponHash); } // 0x1017582bcd3832dc0xf26c5d65B323 + inline Void SetPedCycleVehicleWeaponsOnly(Ped ped) { return _i(0x50276EF8172F5F12, ped); } // 0x50276ef8172f5f12B1734 + // Checks if the ped is currently equipped with a weapon matching a bit specified using a bitwise-or in typeFlags. + // + // Type flag bit values: + // 1 = Melee weapons + // 2 = Explosive weapons + // 4 = Any other weapons + // + // Not specifying any bit will lead to the native *always* returning 'false', and for example specifying '4 | 2' will check for any weapon except fists and melee weapons. + // 7 returns true if you are equipped with any weapon except your fists. + // 6 returns true if you are equipped with any weapon except melee weapons. + // 5 returns true if you are equipped with any weapon except the Explosives weapon group. + // 4 returns true if you are equipped with any weapon except Explosives weapon group AND melee weapons. + // 3 returns true if you are equipped with either Explosives or Melee weapons (the exact opposite of 4). + // 2 returns true only if you are equipped with any weapon from the Explosives weapon group. + // 1 returns true only if you are equipped with any Melee weapon. + // 0 never returns true. + // + // Note: When I say "Explosives weapon group", it does not include the Jerry can and Fire Extinguisher. + inline BOOL IsPedArmed(Ped ped, int typeFlags) { return _i(0x475768A975D5AD17, ped, typeFlags); } // 0x475768a975d5ad170x0bfc892cB323 + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline BOOL IsWeaponValid(Hash weaponHash) { return _i(0x937C71165CF334B3, weaponHash); } // 0x937c71165cf334b30x38ca2954B323 + // p2 should be FALSE, otherwise it seems to always return FALSE + // + // Bool does not check if the weapon is current equipped, unfortunately. + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline BOOL HasPedGotWeapon(Ped ped, Hash weaponHash, BOOL p2) { return _i(0x8DECB02F88F428BC, ped, weaponHash, p2); } // 0x8decb02f88f428bc0x43d2fa82B323 + inline BOOL IsPedWeaponReadyToShoot(Ped ped) { return _i(0xB80CA294F2F26749, ped); } // 0xb80ca294f2f267490x02a32cb0B323 + inline Hash GetPedWeapontypeInSlot(Ped ped, Hash weaponSlot) { return _i(0xEFFED78E9011134D, ped, weaponSlot); } // 0xeffed78e9011134d0x9bc64e16B323 + // WEAPON::GetAmmoInPedWeapon(PLAYER::PlayerPedId(), a_0) + // + // From decompiled scripts + // Returns total ammo in weapon + // + // GTALua Example : + // natives.WEAPON.GetAmmoInPedWeapon(plyPed, WeaponHash) + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline int GetAmmoInPedWeapon(Ped ped, Hash weaponhash) { return _i(0x015A522136D7F951, ped, weaponhash); } // 0x015a522136d7f9510x0c755733B323 + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void AddAmmoToPed(Ped ped, Hash weaponHash, int ammo) { return _i(0x78F0424C34306220, ped, weaponHash, ammo); } // 0x78f0424c343062200x7f0580c7B323 + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void SetPedAmmo(Ped ped, Hash weaponHash, int ammo, BOOL p3) { return _i(0x14E56BC5B5DB6A19, ped, weaponHash, ammo, p3); } // 0x14e56bc5b5db6a190xbf90df1aB323 + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void SetPedInfiniteAmmo(Ped ped, BOOL toggle, Hash weaponHash) { return _i(0x3EDCB0505123623B, ped, toggle, weaponHash); } // 0x3edcb0505123623b0x9cb8d278B323 + inline Void SetPedInfiniteAmmoClip(Ped ped, BOOL toggle) { return _i(0x183DADC6AA953186, ped, toggle); } // 0x183dadc6aa9531860x5a5e3b67B323 + inline Void SetPedStunGunFiniteAmmo(Any p0, Any p1) { return _i(0x24C024BA8379A70A, p0, p1); } // 0x24c024ba8379a70aB1868 + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void GiveWeaponToPed(Ped ped, Hash weaponHash, int ammoCount, BOOL isHidden, BOOL bForceInHand) { return _i(0xBF0FD6E56C964FCB, ped, weaponHash, ammoCount, isHidden, bForceInHand); } // 0xbf0fd6e56c964fcb0xc4d88a85B323 + // Gives a weapon to PED with a delay, example: + // + // WEAPON::GiveDelayedWeaponToPed(PED::PlayerPedId(), MISC::GetHashKey("WEAPON_PISTOL"), 1000, false) + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void GiveDelayedWeaponToPed(Ped ped, Hash weaponHash, int ammoCount, BOOL bForceInHand) { return _i(0xB282DC6EBD803C75, ped, weaponHash, ammoCount, bForceInHand); } // 0xb282dc6ebd803c750x5868d20dB323 + // setting the last params to false it does that same so I would suggest its not a toggle + inline Void RemoveAllPedWeapons(Ped ped, BOOL p1) { return _i(0xF25DF915FA38C5F3, ped, p1); } // 0xf25df915fa38c5f30xa44ce817B323 + // This native removes a specified weapon from your selected ped. + // + // Example: + // C#: + // Function.Call(Hash.RemoveWeaponFromPed, Game.Player.Character, 0x99B507EA); + // + // C++: + // WEAPON::RemoveWeaponFromPed(PLAYER::PlayerPedId(), 0x99B507EA); + // + // The code above removes the knife from the player. + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void RemoveWeaponFromPed(Ped ped, Hash weaponHash) { return _i(0x4899CB088EDF59B8, ped, weaponHash); } // 0x4899cb088edf59b80x9c37f220B323 + // Hides the players weapon during a cutscene. + inline Void HidePedWeaponForScriptedCutscene(Ped ped, BOOL toggle) { return _i(0x6F6981D2253C208F, ped, toggle); } // 0x6f6981d2253c208f0x00cfd6e9B323 + // Has 5 parameters since latest patches. + inline Void SetPedCurrentWeaponVisible(Ped ped, BOOL visible, BOOL deselectWeapon, BOOL p3, BOOL p4) { return _i(0x0725A4CCFDED9A70, ped, visible, deselectWeapon, p3, p4); } // 0x0725a4ccfded9a700x00becd77B323 + inline Void SetPedDropsWeaponsWhenDead(Ped ped, BOOL toggle) { return _i(0x476AE72C1D19D1A8, ped, toggle); } // 0x476ae72c1d19d1a80x8a444056B323 + // It determines what weapons caused damage: + // + // If you want to define only a specific weapon, second parameter=weapon hash code, third parameter=0 + // If you want to define any melee weapon, second parameter=0, third parameter=1. + // If you want to identify any weapon (firearms, melee, rockets, etc.), second parameter=0, third parameter=2. + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline BOOL HasPedBeenDamagedByWeapon(Ped ped, Hash weaponHash, int weaponType) { return _i(0x2D343D2219CD027A, ped, weaponHash, weaponType); } // 0x2d343d2219cd027a0xcdfbbcc6B323 + // Does NOT seem to work with HasPedBeenDamagedByWeapon. Use ClearEntityLastWeaponDamage and HasEntityBeenDamagedByWeapon instead. + inline Void ClearPedLastWeaponDamage(Ped ped) { return _i(0x0E98F88A24C5F4B8, ped); } // 0x0e98f88a24c5f4b80x52c68832B323 + // It determines what weapons caused damage: + // + // If you want to define only a specific weapon, second parameter=weapon hash code, third parameter=0 + // If you want to define any melee weapon, second parameter=0, third parameter=1. + // If you want to identify any weapon (firearms, melee, rockets, etc.), second parameter=0, third parameter=2. + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline BOOL HasEntityBeenDamagedByWeapon(Entity entity, Hash weaponHash, int weaponType) { return _i(0x131D401334815E94, entity, weaponHash, weaponType); } // 0x131d401334815e940x6daabb39B323 + inline Void ClearEntityLastWeaponDamage(Entity entity) { return _i(0xAC678E40BE7C74D2, entity); } // 0xac678e40be7c74d20xcec2732bB323 + inline Void SetPedDropsWeapon(Ped ped) { return _i(0x6B7513D9966FBEC0, ped); } // 0x6b7513d9966fbec00x3d3329faB323 + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void SetPedDropsInventoryWeapon(Ped ped, Hash weaponHash, float xOffset, float yOffset, float zOffset, int ammoCount) { return _i(0x208A1888007FC0E6, ped, weaponHash, xOffset, yOffset, zOffset, ammoCount); } // 0x208a1888007fc0e60x81ffb874B323 + // p2 is mostly 1 in the scripts. + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline int GetMaxAmmoInClip(Ped ped, Hash weaponHash, BOOL p2) { return _i(0xA38DCFFCEA8962FA, ped, weaponHash, p2); } // 0xa38dcffcea8962fa0x6961e2a4B323 + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline BOOL GetAmmoInClip(Ped ped, Hash weaponHash, int* ammo) { return _i(0x2E1202248937775C, ped, weaponHash, ammo); } // 0x2e1202248937775c0x73c100c3B323 + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline BOOL SetAmmoInClip(Ped ped, Hash weaponHash, int ammo) { return _i(0xDCD2A934D65CB497, ped, weaponHash, ammo); } // 0xdcd2a934d65cb4970xa54b0b10B323 + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline BOOL GetMaxAmmo(Ped ped, Hash weaponHash, int* ammo) { return _i(0xDC16122C7A20C933, ped, weaponHash, ammo); } // 0xdc16122c7a20c9330x0b294796B323 + // Returns the max ammo for an ammo type. Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 + inline BOOL GetMaxAmmoByType(Ped ped, Hash ammoTypeHash, int* ammo) { return _i(0x585847C5E4E11709, ped, ammoTypeHash, ammo); } // 0x585847c5e4e11709B1103 + // Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 + inline Void AddPedAmmoByType(Ped ped, Hash ammoTypeHash, int ammo) { return _i(0x2472622CE1F2D45F, ped, ammoTypeHash, ammo); } // 0x2472622ce1f2d45fB1103 + // Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 + inline Void SetPedAmmoByType(Ped ped, Hash ammoTypeHash, int ammo) { return _i(0x5FD1E1F011E76D7E, ped, ammoTypeHash, ammo); } // 0x5fd1e1f011e76d7e0x311c52bbB323 + inline int GetPedAmmoByType(Ped ped, Hash ammoTypeHash) { return _i(0x39D22031557946C1, ped, ammoTypeHash); } // 0x39d22031557946c10x54077c4dB323 + inline Void SetPedAmmoToDrop(Ped ped, int p1) { return _i(0xA4EFEF9440A5B0EF, ped, p1); } // 0xa4efef9440a5b0ef0x2386a307B323 + inline Void SetPickupAmmoAmountScaler(float p0) { return _i(0xE620FD3512A04F18, p0); } // 0xe620fd3512a04f180xd6460ea2B323 + // Returns the current ammo type of the specified ped's specified weapon. + // MkII magazines will change the return value, like Pistol MkII returning AMMO_PISTOL without any components and returning AMMO_PISTOL_TRACER after Tracer Rounds component is attached. + // Use 0xF489B44DD5AF4BD9 if you always want AMMO_PISTOL. + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Hash GetPedAmmoTypeFromWeapon(Ped ped, Hash weaponHash) { return _i(0x7FEAD38B326B9F74, ped, weaponHash); } // 0x7fead38b326b9f740x09337863B323 + // Returns the base/default ammo type of the specified ped's specified weapon. + // Use GetPedAmmoTypeFromWeapon if you want current ammo type (like AMMO_MG_INCENDIARY/AMMO_MG_TRACER while using MkII magazines) and use this if you want base ammo type. (AMMO_MG) + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Hash GetPedOriginalAmmoTypeFromWeapon(Ped ped, Hash weaponHash) { return _i(0xF489B44DD5AF4BD9, ped, weaponHash); } // 0xf489b44dd5af4bd9B1103 + // Pass ped. Pass address of Vector3. + // The coord will be put into the Vector3. + // The return will determine whether there was a coord found or not. + inline BOOL GetPedLastWeaponImpactCoord(Ped ped, Vector3* coords) { return _i(0x6C4D0409BA1A2BC2, ped, coords); } // 0x6c4d0409ba1a2bc20x9b266079B323 + // p1/gadgetHash was always 0xFBAB5776 ("GADGET_PARACHUTE"). + // p2 is always true. + inline Void SetPedGadget(Ped ped, Hash gadgetHash, BOOL p2) { return _i(0xD0D7B1E680ED4A1A, ped, gadgetHash, p2); } // 0xd0d7b1e680ed4a1a0x8a256d0aB323 + // gadgetHash - was always 0xFBAB5776 ("GADGET_PARACHUTE"). + inline BOOL GetIsPedGadgetEquipped(Ped ped, Hash gadgetHash) { return _i(0xF731332072F5156C, ped, gadgetHash); } // 0xf731332072f5156c0x8ddd0b5bB323 + // Returns the hash of the weapon. + // + // var num7 = WEAPON::GetSelectedPedWeapon(num4); + // sub_27D3(num7); + // switch (num7) + // { + // case 0x24B17070: + // + // Also see WEAPON::GetCurrentPedWeapon. Difference? + // + // ------------------------------------------------------------------------- + // + // The difference is that GetSelectedPedWeapon simply returns the ped's current weapon hash but GetCurrentPedWeapon also checks the weapon object and returns true if the hash of the weapon object equals the weapon hash + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Hash GetSelectedPedWeapon(Ped ped) { return _i(0x0A6DB4965674D243, ped); } // 0x0a6db4965674d2430xd240123eB323 + // WEAPON::ExplodeProjectiles(PLAYER::PlayerPedId(), func_221(0x00000003), 0x00000001); + inline Void ExplodeProjectiles(Ped ped, Hash weaponHash, BOOL p2) { return _i(0xFC4BD125DE7611E4, ped, weaponHash, p2); } // 0xfc4bd125de7611e40x35a0b955B323 + // If `explode` true, then removal is done through exploding the projectile. Basically the same as ExplodeProjectiles but without defining the owner ped. + inline Void RemoveAllProjectilesOfType(Hash weaponHash, BOOL explode) { return _i(0xFC52E0F37E446528, weaponHash, explode); } // 0xfc52e0f37e4465280xa5f89919B323 + inline float GetLockonDistanceOfCurrentPedWeapon(Ped ped) { return _i(0x840F03E9041E2C9C, ped); } // 0x840f03e9041e2c9c0x3612110dB323 + inline float GetMaxRangeOfCurrentPedWeapon(Ped ped) { return _i(0x814C9D19DFD69679, ped); } // 0x814c9d19dfd696790xb2b2bbaaB323 + // Fourth Parameter = unsure, almost always -1 + inline BOOL HasVehicleGotProjectileAttached(Ped driver, Vehicle vehicle, Hash weaponHash, Any p3) { return _i(0x717C8481234E3B88, driver, vehicle, weaponHash, p3); } // 0x717c8481234e3b880xa57e2e80B323 + // Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void GiveWeaponComponentToPed(Ped ped, Hash weaponHash, Hash componentHash) { return _i(0xD966D51AA5B28BB9, ped, weaponHash, componentHash); } // 0xd966d51aa5b28bb90x3e1e286dB323 + // Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void RemoveWeaponComponentFromPed(Ped ped, Hash weaponHash, Hash componentHash) { return _i(0x1E8BE90C74FB4C09, ped, weaponHash, componentHash); } // 0x1e8be90c74fb4c090x412aa00dB323 + // Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline BOOL HasPedGotWeaponComponent(Ped ped, Hash weaponHash, Hash componentHash) { return _i(0xC593212475FAE340, ped, weaponHash, componentHash); } // 0xc593212475fae3400xdc0fc145B323 + // Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline BOOL IsPedWeaponComponentActive(Ped ped, Hash weaponHash, Hash componentHash) { return _i(0x0D78DE0572D3969E, ped, weaponHash, componentHash); } // 0x0d78de0572d3969e0x7565fb19B323 + inline BOOL RefillAmmoInstantly(Ped ped) { return _i(0x8C0D57EA686FAD87, ped); } // 0x8c0d57ea686fad870x82eeaf0fB323 + // Forces a ped to reload only if they are able to; if they have a full magazine, they will not reload. + inline BOOL MakePedReload(Ped ped) { return _i(0x20AE33F3AC9C0033, ped); } // 0x20ae33f3ac9c00330x515292c2B323 + // Nearly every instance of p1 I found was 31. Nearly every instance of p2 I found was 0. + // + // RequestWeaponAsset(iLocal_1888, 31, 26); + inline Void RequestWeaponAsset(Hash weaponHash, int p1, int p2) { return _i(0x5443438F033E29C3, weaponHash, p1, p2); } // 0x5443438f033e29c30x65d139a5B323 + inline BOOL HasWeaponAssetLoaded(Hash weaponHash) { return _i(0x36E353271F0E90EE, weaponHash); } // 0x36e353271f0e90ee0x1891d5bbB323 + inline Void RemoveWeaponAsset(Hash weaponHash) { return _i(0xAA08EF13F341C8FC, weaponHash); } // 0xaa08ef13f341c8fc0x2c0dfe3cB323 + // Now has 8 params. + inline Object CreateWeaponObject(Hash weaponHash, int ammoCount, float x, float y, float z, BOOL showWorldModel, float scale, Any p7, Any p8, Any p9) { return _i(0x9541D3CF0D398F36, weaponHash, ammoCount, x, y, z, showWorldModel, scale, p7, p8, p9); } // 0x9541d3cf0d398f360x62f5987fB323 + // componentHash: + // (use WEAPON::GetWeaponComponentTypeModel() to get hash value) + // ${component_at_ar_flsh}, ${component_at_ar_supp}, ${component_at_pi_flsh}, ${component_at_scope_large}, ${component_at_ar_supp_02} + inline Void GiveWeaponComponentToWeaponObject(Object weaponObject, Hash componentHash) { return _i(0x33E179436C0B31DB, weaponObject, componentHash); } // 0x33e179436c0b31db0xf7612a37B323 + // see DoesWeaponTakeWeaponComponent for full list of weapons & components + inline Void RemoveWeaponComponentFromWeaponObject(Object object, Hash componentHash) { return _i(0xF7D82B0D66777611, object, componentHash); } // 0xf7d82b0d667776110xa6e7ed3cB323 + // see DoesWeaponTakeWeaponComponent for full list of weapons & components + inline BOOL HasWeaponGotWeaponComponent(Object weapon, Hash componentHash) { return _i(0x76A18844E743BF91, weapon, componentHash); } // 0x76a18844e743bf910x1d368510B323 + inline Void GiveWeaponObjectToPed(Object weaponObject, Ped ped) { return _i(0xB1FA61371AF7C4B7, weaponObject, ped); } // 0xb1fa61371af7c4b70x639af3efB323 + // Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline BOOL DoesWeaponTakeWeaponComponent(Hash weaponHash, Hash componentHash) { return _i(0x5CEE3DF569CECAB0, weaponHash, componentHash); } // 0x5cee3df569cecab00xb1817baaB323 + // Drops the current weapon and returns the object + // + // Unknown behavior when unarmed. + inline Object GetWeaponObjectFromPed(Ped ped, BOOL p1) { return _i(0xCAE1DC9A0E22A16D, ped, p1); } // 0xcae1dc9a0e22a16d0xdf939a38B323 + // Gives the specified loadout to the specified ped. + // Loadouts are defined in common.rpf\data\ai\loadouts.meta + inline Void GiveLoadoutToPed(Ped ped, Hash loadoutHash) { return _i(0x68F8BE6AF5CDF8A6, ped, loadoutHash); } // 0x68f8be6af5cdf8a6B505 + // tintIndex can be the following: + // + // 0 - Normal + // 1 - Green + // 2 - Gold + // 3 - Pink + // 4 - Army + // 5 - LSPD + // 6 - Orange + // 7 - Platinum + // Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void SetPedWeaponTintIndex(Ped ped, Hash weaponHash, int tintIndex) { return _i(0x50969B9B89ED5738, ped, weaponHash, tintIndex); } // 0x50969b9b89ed57380xeb2a7b23B323 + // Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline int GetPedWeaponTintIndex(Ped ped, Hash weaponHash) { return _i(0x2B9EEDC07BD06B9F, ped, weaponHash); } // 0x2b9eedc07bd06b9f0x3f9c90a7B323 + // Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void SetWeaponObjectTintIndex(Object weapon, int tintIndex) { return _i(0xF827589017D4E4A9, weapon, tintIndex); } // 0xf827589017d4e4a90x44acc1daB323 + inline int GetWeaponObjectTintIndex(Object weapon) { return _i(0xCD183314F7CD2E57, weapon); } // 0xcd183314f7cd2e570xd91d9576B323 + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline int GetWeaponTintCount(Hash weaponHash) { return _i(0x5DCF6C5CAB2E9BF7, weaponHash); } // 0x5dcf6c5cab2e9bf70x99e4eaabB323 + // Colors: + // 0 = Gray + // 1 = Dark Gray + // 2 = Black + // 3 = White + // 4 = Blue + // 5 = Cyan + // 6 = Aqua + // 7 = Cool Blue + // 8 = Dark Blue + // 9 = Royal Blue + // 10 = Plum + // 11 = Dark Purple + // 12 = Purple + // 13 = Red + // 14 = Wine Red + // 15 = Magenta + // 16 = Pink + // 17 = Salmon + // 18 = Hot Pink + // 19 = Rust Orange + // 20 = Brown + // 21 = Earth + // 22 = Orange + // 23 = Light Orange + // 24 = Dark Yellow + // 25 = Yellow + // 26 = Light Brown + // 27 = Lime Green + // 28 = Olive + // 29 = Moss + // 30 = Turquoise + // 31 = Dark Green + // Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void SetPedWeaponComponentTintIndex(Ped ped, Hash weaponHash, Hash camoComponentHash, int colorIndex) { return _i(0x9FE5633880ECD8ED, ped, weaponHash, camoComponentHash, colorIndex); } // 0x9fe5633880ecd8edB1103 + // Returns -1 if camoComponentHash is invalid/not attached to the weapon. + // Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline int GetPedWeaponComponentTintIndex(Ped ped, Hash weaponHash, Hash camoComponentHash) { return _i(0xF0A60040BE558F2D, ped, weaponHash, camoComponentHash); } // 0xf0a60040be558f2dB1103 + // Colors: + // 0 = Gray + // 1 = Dark Gray + // 2 = Black + // 3 = White + // 4 = Blue + // 5 = Cyan + // 6 = Aqua + // 7 = Cool Blue + // 8 = Dark Blue + // 9 = Royal Blue + // 10 = Plum + // 11 = Dark Purple + // 12 = Purple + // 13 = Red + // 14 = Wine Red + // 15 = Magenta + // 16 = Pink + // 17 = Salmon + // 18 = Hot Pink + // 19 = Rust Orange + // 20 = Brown + // 21 = Earth + // 22 = Orange + // 23 = Light Orange + // 24 = Dark Yellow + // 25 = Yellow + // 26 = Light Brown + // 27 = Lime Green + // 28 = Olive + // 29 = Moss + // 30 = Turquoise + // 31 = Dark Green + // Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void SetWeaponObjectComponentTintIndex(Object weaponObject, Hash camoComponentHash, int colorIndex) { return _i(0x5DA825A85D0EA6E6, weaponObject, camoComponentHash, colorIndex); } // 0x5da825a85d0ea6e6B1103 + // Returns -1 if camoComponentHash is invalid/not attached to the weapon object. + // Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline int GetWeaponObjectComponentTintIndex(Object weaponObject, Hash camoComponentHash) { return _i(0xB3EA4FEABF41464B, weaponObject, camoComponentHash); } // 0xb3ea4feabf41464bB1103 + inline int GetPedWeaponCamoIndex(Ped ped, Hash weaponHash) { return _i(0xA2C9AC24B4061285, ped, weaponHash); } // 0xa2c9ac24b4061285B1103 + inline Void SetWeaponObjectCamoIndex(Object weaponObject, int p1) { return _i(0x977CA98939E82E4B, weaponObject, p1); } // 0x977ca98939e82e4bB1103 + // struct WeaponHudStatsData + // { + // BYTE hudDamage; // 0x0000 + // char _0x0001[0x7]; // 0x0001 + // BYTE hudSpeed; // 0x0008 + // char _0x0009[0x7]; // 0x0009 + // BYTE hudCapacity; // 0x0010 + // char _0x0011[0x7]; // 0x0011 + // BYTE hudAccuracy; // 0x0018 + // char _0x0019[0x7]; // 0x0019 + // BYTE hudRange; // 0x0020 + // }; + // + // Usage: + // + // WeaponHudStatsData data; + // if (GetWeaponHudStats(weaponHash, (int *)&data)) + // { + // // BYTE damagePercentage = data.hudDamage and so on + // } + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline BOOL GetWeaponHudStats(Hash weaponHash, Any* outData) { return _i(0xD92C739EE34C9EBA, weaponHash, outData); } // 0xd92c739ee34c9eba0xa9ad3d98B323 + inline BOOL GetWeaponComponentHudStats(Hash componentHash, Any* outData) { return _i(0xB3CAF387AE12E9F8, componentHash, outData); } // 0xb3caf387ae12e9f80xbb5498f4B323 + // This native does not return damages of weapons from the melee and explosive group. + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline float GetWeaponDamage(Hash weaponHash, Hash componentHash) { return _i(0x3133B907D8B32053, weaponHash, componentHash); } // 0x3133b907d8b320530xe81649c0B323 + // // Returns the size of the default weapon component clip. + // + // Use it like this: + // + // char cClipSize[32]; + // Hash cur; + // if (WEAPON::GetCurrentPedWeapon(playerPed, &cur, 1)) + // { + // if (WEAPON::IsWeaponValid(cur)) + // { + // int iClipSize = WEAPON::GetWeaponClipSize(cur); + // sprintf_s(cClipSize, "ClipSize: %.d", iClipSize); + // vDrawString(cClipSize, 0.5f, 0.5f); + // } + // } + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline int GetWeaponClipSize(Hash weaponHash) { return _i(0x583BE370B1EC6EB4, weaponHash); } // 0x583be370b1ec6eb40x8d515e66B323 + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline float GetWeaponTimeBetweenShots(Hash weaponHash) { return _i(0x065D2AACAD8CF7A4, weaponHash); } // 0x065d2aacad8cf7a4B1290 + inline Void SetPedChanceOfFiringBlanks(Ped ped, float xBias, float yBias) { return _i(0x8378627201D5497D, ped, xBias, yBias); } // 0x8378627201d5497d0xb4f44c6eB323 + // Returns handle of the projectile. + inline Object SetPedShootOrdnanceWeapon(Ped ped, float p1) { return _i(0xB4C8D77C80C0421E, ped, p1); } // 0xb4c8d77c80c0421e0xec2e5304B323 + inline Void RequestWeaponHighDetailModel(Entity weaponObject) { return _i(0x48164DBB970AC3F0, weaponObject); } // 0x48164dbb970ac3f00xe3bd00f9B323 + inline Void SetWeaponPedDamageModifier(Hash weapon, float damageModifier) { return _i(0x1091922715B68DF0, weapon, damageModifier); } // 0x1091922715b68df0B3095 + // Changes the weapon damage output by the given multiplier value. Must be run every frame. + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void SetWeaponDamageModifier(Hash weaponHash, float damageMultiplier) { return _i(0x4757F00BC6323CFE, weaponHash, damageMultiplier); } // 0x4757f00bc6323cfeB505 + inline Void SetWeaponAoeModifier(Hash weaponHash, float multiplier) { return _i(0x4AE5AC8B852D642C, weaponHash, multiplier); } // 0x4ae5ac8b852d642cB2372 + // ex, WEAPON::SetWeaponEffectDurationModifier(joaat("vehicle_weapon_mine_slick"), 1.0); + inline Void SetWeaponEffectDurationModifier(Hash p0, float p1) { return _i(0xE6D2CEDD370FF98E, p0, p1); } // 0xe6d2cedd370ff98eB2372 + // This native returns a true or false value. + // + // Ped ped = The ped whose weapon you want to check. + inline BOOL IsPedCurrentWeaponSilenced(Ped ped) { return _i(0x65F0C5AE05943EC7, ped); } // 0x65f0c5ae05943ec70xbaf7bfbeB323 + inline BOOL IsFlashLightOn(Ped ped) { return _i(0x4B7620C47217126C, ped); } // 0x4b7620c47217126c0x76876154B323 + inline BOOL SetFlashLightFadeDistance(float distance) { return _i(0xCEA66DAD478CD39B, distance); } // 0xcea66dad478cd39b0xb0127ea7B323 + // Enables/disables flashlight on ped's weapon. + inline Void SetFlashLightActiveHistory(Ped ped, BOOL toggle) { return _i(0x988DB6FE9B3AC000, ped, toggle); } // 0x988db6fe9b3ac000B2060 + // Changes the selected ped aiming animation style. + // Note : You must use GetHashKey! + // + // Strings to use with GetHashKey : + // + // "Ballistic", + // "Default", + // "Fat", + // "Female", + // "FirstPerson", + // "FirstPersonAiming", + // "FirstPersonFranklin", + // "FirstPersonFranklinAiming", + // "FirstPersonFranklinRNG", + // "FirstPersonFranklinScope", + // "FirstPersonMPFemale", + // "FirstPersonMichael", + // "FirstPersonMichaelAiming", + // "FirstPersonMichaelRNG", + // "FirstPersonMichaelScope", + // "FirstPersonRNG", + // "FirstPersonScope", + // "FirstPersonTrevor", + // "FirstPersonTrevorAiming", + // "FirstPersonTrevorRNG", + // "FirstPersonTrevorScope", + // "Franklin", + // "Gang", + // "Gang1H", + // "GangFemale", + // "Hillbilly", + // "MP_F_Freemode", + // "Michael", + // "SuperFat", + // "Trevor" + inline Void SetWeaponAnimationOverride(Ped ped, Hash animStyle) { return _i(0x1055AC3A667F09D9, ped, animStyle); } // 0x1055ac3a667f09d90xa5df7484B323 + // enum class eDamageType + // { + // UNKNOWN = 0, + // NONE = 1, + // MELEE = 2, + // BULLET = 3, + // BULLET_RUBBER = 4, + // EXPLOSIVE = 5, + // FIRE = 6, + // COLLISION = 7, + // FALL = 8, + // DROWN = 9, + // ELECTRIC = 10, + // BARBED_WIRE = 11, + // FIRE_EXTINGUISHER = 12, + // SMOKE = 13, + // WATER_CANNON = 14, + // TRANQUILIZER = 15, + // }; + // + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline int GetWeaponDamageType(Hash weaponHash) { return _i(0x3BE0BB12D25FB305, weaponHash); } // 0x3be0bb12d25fb3050x013afc13B323 + inline Void SetEqippedWeaponStartSpinningAtFullSpeed(Ped ped) { return _i(0xE4DCEC7FD5B739A5, ped); } // 0xe4dcec7fd5b739a50x64646f1dB323 + // this returns if you can use the weapon while using a parachute + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline BOOL CanUseWeaponOnParachute(Hash weaponHash) { return _i(0xBC7BE5ABC0879F74, weaponHash); } // 0xbc7be5abc0879f740x135e7ad4B323 + // Both coordinates are from objects in the decompiled scripts. Native related to 0xECDC202B25E5CF48 p1 value. The only weapon hash used in the decompiled scripts is weapon_air_defence_gun. These two natives are used by the yacht script, decompiled scripts suggest it and the weapon hash used (valkyrie's rockets) are also used by yachts. + inline int CreateAirDefenceSphere(float x, float y, float z, float radius, float p4, float p5, float p6, Hash weaponHash) { return _i(0x91EF34584710BE99, x, y, z, radius, p4, p5, p6, weaponHash); } // 0x91ef34584710be99B573 + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline int CreateAirDefenceAngledArea(float p0, float p1, float p2, float p3, float p4, float p5, float p6, float p7, float p8, float radius, Hash weaponHash) { return _i(0x9DA58CDBF6BDBC08, p0, p1, p2, p3, p4, p5, p6, p7, p8, radius, weaponHash); } // 0x9da58cdbf6bdbc08B1011 + inline BOOL RemoveAirDefenceSphere(int zoneId) { return _i(0x0ABF535877897560, zoneId); } // 0x0abf535877897560B573 + inline Void RemoveAllAirDefenceSpheres() { return _i(0x1E45B34ADEBEE48E); } // 0x1e45b34adebee48eB573 + inline Void SetPlayerTargettableForAirDefenceSphere(Player player, int zoneId, BOOL enable) { return _i(0xECDC202B25E5CF48, player, zoneId, enable); } // 0xecdc202b25e5cf48B573 + inline BOOL IsAirDefenceSphereInArea(float x, float y, float z, float radius, int* outZoneId) { return _i(0xDAB963831DBFD3F4, x, y, z, radius, outZoneId); } // 0xdab963831dbfd3f4B1103 + inline Void FireAirDefenceSphereWeaponAtPosition(int zoneId, float x, float y, float z) { return _i(0x44F1012B69313374, zoneId, x, y, z); } // 0x44f1012b69313374B573 + inline BOOL DoesAirDefenceSphereExist(int zoneId) { return _i(0xCD79A550999D7D4F, zoneId); } // 0xcd79a550999d7d4fB678 + // Disables selecting the given weapon. Ped isn't forced to put the gun away. However you can't reselect the weapon if you holster then unholster. Weapon is also grayed out on the weapon wheel. + // Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json + inline Void SetCanPedSelectInventoryWeapon(Ped ped, Hash weaponHash, BOOL toggle) { return _i(0xB4771B9AAF4E68E4, ped, weaponHash, toggle); } // 0xb4771b9aaf4e68e4B1103 + // Disable all weapons. Does the same as 0xB4771B9AAF4E68E4 except for all weapons. + inline Void SetCanPedSelectAllWeapons(Ped ped, BOOL toggle) { return _i(0xEFF296097FF1E509, ped, toggle); } // 0xeff296097ff1e509B1103 } namespace ZONE { - inline int GetZoneAtCoords(float x, float y, float z) { return _i(0x27040C25DE6CB2F4, x, y, z); } // 0x27040c25de6cb2f40xc9018181B323 - // 'zoneName' corresponds to an entry in 'popzone.ipl'. - // - // AIRP = Los Santos International Airport - // ALAMO = Alamo Sea - // ALTA = Alta - // ARMYB = Fort Zancudo - // BANHAMC = Banham Canyon Dr - // BANNING = Banning - // BEACH = Vespucci Beach - // BHAMCA = Banham Canyon - // BRADP = Braddock Pass - // BRADT = Braddock Tunnel - // BURTON = Burton - // CALAFB = Calafia Bridge - // CANNY = Raton Canyon - // CCREAK = Cassidy Creek - // CHAMH = Chamberlain Hills - // CHIL = Vinewood Hills - // CHU = Chumash - // CMSW = Chiliad Mountain State Wilderness - // CYPRE = Cypress Flats - // DAVIS = Davis - // DELBE = Del Perro Beach - // DELPE = Del Perro - // DELSOL = La Puerta - // DESRT = Grand Senora Desert - // DOWNT = Downtown - // DTVINE = Downtown Vinewood - // EAST_V = East Vinewood - // EBURO = El Burro Heights - // ELGORL = El Gordo Lighthouse - // ELYSIAN = Elysian Island - // GALFISH = Galilee - // GOLF = GWC and Golfing Society - // GRAPES = Grapeseed - // GREATC = Great Chaparral - // HARMO = Harmony - // HAWICK = Hawick - // HORS = Vinewood Racetrack - // HUMLAB = Humane Labs and Research - // JAIL = Bolingbroke Penitentiary - // KOREAT = Little Seoul - // LACT = Land Act Reservoir - // LAGO = Lago Zancudo - // LDAM = Land Act Dam - // LEGSQU = Legion Square - // LMESA = La Mesa - // LOSPUER = La Puerta - // MIRR = Mirror Park - // MORN = Morningwood - // MOVIE = Richards Majestic - // MTCHIL = Mount Chiliad - // MTGORDO = Mount Gordo - // MTJOSE = Mount Josiah - // MURRI = Murrieta Heights - // NCHU = North Chumash - // NOOSE = N.O.O.S.E - // OCEANA = Pacific Ocean - // PALCOV = Paleto Cove - // PALETO = Paleto Bay - // PALFOR = Paleto Forest - // PALHIGH = Palomino Highlands - // PALMPOW = Palmer-Taylor Power Station - // PBLUFF = Pacific Bluffs - // PBOX = Pillbox Hill - // PROCOB = Procopio Beach - // RANCHO = Rancho - // RGLEN = Richman Glen - // RICHM = Richman - // ROCKF = Rockford Hills - // RTRAK = Redwood Lights Track - // SANAND = San Andreas - // SANCHIA = San Chianski Mountain Range - // SANDY = Sandy Shores - // SKID = Mission Row - // SLAB = Stab City - // STAD = Maze Bank Arena - // STRAW = Strawberry - // TATAMO = Tataviam Mountains - // TERMINA = Terminal - // TEXTI = Textile City - // TONGVAH = Tongva Hills - // TONGVAV = Tongva Valley - // VCANA = Vespucci Canals - // VESP = Vespucci - // VINE = Vinewood - // WINDF = Ron Alternates Wind Farm - // WVINE = West Vinewood - // ZANCUDO = Zancudo River - // ZP_ORT = Port of South Los Santos - // ZQ_UAR = Davis Quartz - // - // Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json - inline int GetZoneFromNameId(String zoneName) { return _i(0x98CD1D2934B76CC1, zoneName); } // 0x98cd1d2934b76cc10x8ec68304B323 - inline int GetZonePopschedule(int zoneId) { return _i(0x4334BC40AA0CB4BB, zoneId); } // 0x4334bc40aa0cb4bb0x20ab2fc9B323 - // AIRP = Los Santos International Airport - // ALAMO = Alamo Sea - // ALTA = Alta - // ARMYB = Fort Zancudo - // BANHAMC = Banham Canyon Dr - // BANNING = Banning - // BEACH = Vespucci Beach - // BHAMCA = Banham Canyon - // BRADP = Braddock Pass - // BRADT = Braddock Tunnel - // BURTON = Burton - // CALAFB = Calafia Bridge - // CANNY = Raton Canyon - // CCREAK = Cassidy Creek - // CHAMH = Chamberlain Hills - // CHIL = Vinewood Hills - // CHU = Chumash - // CMSW = Chiliad Mountain State Wilderness - // CYPRE = Cypress Flats - // DAVIS = Davis - // DELBE = Del Perro Beach - // DELPE = Del Perro - // DELSOL = La Puerta - // DESRT = Grand Senora Desert - // DOWNT = Downtown - // DTVINE = Downtown Vinewood - // EAST_V = East Vinewood - // EBURO = El Burro Heights - // ELGORL = El Gordo Lighthouse - // ELYSIAN = Elysian Island - // GALFISH = Galilee - // GOLF = GWC and Golfing Society - // GRAPES = Grapeseed - // GREATC = Great Chaparral - // HARMO = Harmony - // HAWICK = Hawick - // HORS = Vinewood Racetrack - // HUMLAB = Humane Labs and Research - // JAIL = Bolingbroke Penitentiary - // KOREAT = Little Seoul - // LACT = Land Act Reservoir - // LAGO = Lago Zancudo - // LDAM = Land Act Dam - // LEGSQU = Legion Square - // LMESA = La Mesa - // LOSPUER = La Puerta - // MIRR = Mirror Park - // MORN = Morningwood - // MOVIE = Richards Majestic - // MTCHIL = Mount Chiliad - // MTGORDO = Mount Gordo - // MTJOSE = Mount Josiah - // MURRI = Murrieta Heights - // NCHU = North Chumash - // NOOSE = N.O.O.S.E - // OCEANA = Pacific Ocean - // PALCOV = Paleto Cove - // PALETO = Paleto Bay - // PALFOR = Paleto Forest - // PALHIGH = Palomino Highlands - // PALMPOW = Palmer-Taylor Power Station - // PBLUFF = Pacific Bluffs - // PBOX = Pillbox Hill - // PROCOB = Procopio Beach - // RANCHO = Rancho - // RGLEN = Richman Glen - // RICHM = Richman - // ROCKF = Rockford Hills - // RTRAK = Redwood Lights Track - // SANAND = San Andreas - // SANCHIA = San Chianski Mountain Range - // SANDY = Sandy Shores - // SKID = Mission Row - // SLAB = Stab City - // STAD = Maze Bank Arena - // STRAW = Strawberry - // TATAMO = Tataviam Mountains - // TERMINA = Terminal - // TEXTI = Textile City - // TONGVAH = Tongva Hills - // TONGVAV = Tongva Valley - // VCANA = Vespucci Canals - // VESP = Vespucci - // VINE = Vinewood - // WINDF = Ron Alternates Wind Farm - // WVINE = West Vinewood - // ZANCUDO = Zancudo River - // ZP_ORT = Port of South Los Santos - // ZQ_UAR = Davis Quartz - // - // Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json - inline String GetNameOfZone(float x, float y, float z) { return _i(0xCD90657D4C30E1CA, x, y, z); } // 0xCD90657D4C30E1CA 0x7875CE91 b323 - inline Void SetZoneEnabled(int zoneId, BOOL toggle) { return _i(0xBA5ECEEA120E5611, zoneId, toggle); } // 0xba5eceea120e56110x04e21b03B323 - // cellphone range 1- 5 used for signal bar in iFruit phone - inline int GetZoneScumminess(int zoneId) { return _i(0x5F7B268D15BA0739, zoneId); } // 0x5f7b268d15ba07390xb2fb5c4cB323 - // Only used once in the decompiled scripts. Seems to be related to scripted vehicle generators. - // - // Modified example from "am_imp_exp.c4", line 6406: - // /* popSchedules[0] = ZONE::GetZonePopschedule(ZONE::GetZoneAtCoords(891.3, 807.9, 188.1)); - // etc. - // */ - // ZONE::OverridePopscheduleVehicleModel(popSchedules[index], vehicleHash); - // STREAMING::RequestModel(vehicleHash); - inline Void OverridePopscheduleVehicleModel(int scheduleId, Hash vehicleHash) { return _i(0x5F7D596BAC2E7777, scheduleId, vehicleHash); } // 0x5f7d596bac2e77770x3f0a3680B323 - // Only used once in the decompiled scripts. Seems to be related to scripted vehicle generators. - // - // Modified example from "am_imp_exp.c4", line 6418: - // /* popSchedules[0] = ZONE::GetZonePopschedule(ZONE::GetZoneAtCoords(891.3, 807.9, 188.1)); - // etc. - // */ - // STREAMING::SetModelAsNoLongerNeeded(vehicleHash); - // ZONE::ClearPopscheduleOverrideVehicleModel(popSchedules[index]); - inline Void ClearPopscheduleOverrideVehicleModel(int scheduleId) { return _i(0x5C0DE367AA0D911C, scheduleId); } // 0x5c0de367aa0d911c0x7a72a24eB323 - // Returns a hash representing which part of the map the given coords are located. - // - // Possible return values: - // (Hash of) city -> -289320599 - // (Hash of) countryside -> 2072609373 - // - // C# Example : - // - // Ped player = Game.Player.Character; - // Hash h = Function.Call(Hash.GetHashOfMapAreaAtCoords, player.Position.X, player.Position.Y, player.Position.Z); - inline Hash GetHashOfMapAreaAtCoords(float x, float y, float z) { return _i(0x7EE64D51E8498728, x, y, z); } // 0x7ee64d51e84987280xb5c5c99bB323 + inline int GetZoneAtCoords(float x, float y, float z) { return _i(0x27040C25DE6CB2F4, x, y, z); } // 0x27040c25de6cb2f40xc9018181B323 + // 'zoneName' corresponds to an entry in 'popzone.ipl'. + // + // AIRP = Los Santos International Airport + // ALAMO = Alamo Sea + // ALTA = Alta + // ARMYB = Fort Zancudo + // BANHAMC = Banham Canyon Dr + // BANNING = Banning + // BEACH = Vespucci Beach + // BHAMCA = Banham Canyon + // BRADP = Braddock Pass + // BRADT = Braddock Tunnel + // BURTON = Burton + // CALAFB = Calafia Bridge + // CANNY = Raton Canyon + // CCREAK = Cassidy Creek + // CHAMH = Chamberlain Hills + // CHIL = Vinewood Hills + // CHU = Chumash + // CMSW = Chiliad Mountain State Wilderness + // CYPRE = Cypress Flats + // DAVIS = Davis + // DELBE = Del Perro Beach + // DELPE = Del Perro + // DELSOL = La Puerta + // DESRT = Grand Senora Desert + // DOWNT = Downtown + // DTVINE = Downtown Vinewood + // EAST_V = East Vinewood + // EBURO = El Burro Heights + // ELGORL = El Gordo Lighthouse + // ELYSIAN = Elysian Island + // GALFISH = Galilee + // GOLF = GWC and Golfing Society + // GRAPES = Grapeseed + // GREATC = Great Chaparral + // HARMO = Harmony + // HAWICK = Hawick + // HORS = Vinewood Racetrack + // HUMLAB = Humane Labs and Research + // JAIL = Bolingbroke Penitentiary + // KOREAT = Little Seoul + // LACT = Land Act Reservoir + // LAGO = Lago Zancudo + // LDAM = Land Act Dam + // LEGSQU = Legion Square + // LMESA = La Mesa + // LOSPUER = La Puerta + // MIRR = Mirror Park + // MORN = Morningwood + // MOVIE = Richards Majestic + // MTCHIL = Mount Chiliad + // MTGORDO = Mount Gordo + // MTJOSE = Mount Josiah + // MURRI = Murrieta Heights + // NCHU = North Chumash + // NOOSE = N.O.O.S.E + // OCEANA = Pacific Ocean + // PALCOV = Paleto Cove + // PALETO = Paleto Bay + // PALFOR = Paleto Forest + // PALHIGH = Palomino Highlands + // PALMPOW = Palmer-Taylor Power Station + // PBLUFF = Pacific Bluffs + // PBOX = Pillbox Hill + // PROCOB = Procopio Beach + // RANCHO = Rancho + // RGLEN = Richman Glen + // RICHM = Richman + // ROCKF = Rockford Hills + // RTRAK = Redwood Lights Track + // SANAND = San Andreas + // SANCHIA = San Chianski Mountain Range + // SANDY = Sandy Shores + // SKID = Mission Row + // SLAB = Stab City + // STAD = Maze Bank Arena + // STRAW = Strawberry + // TATAMO = Tataviam Mountains + // TERMINA = Terminal + // TEXTI = Textile City + // TONGVAH = Tongva Hills + // TONGVAV = Tongva Valley + // VCANA = Vespucci Canals + // VESP = Vespucci + // VINE = Vinewood + // WINDF = Ron Alternates Wind Farm + // WVINE = West Vinewood + // ZANCUDO = Zancudo River + // ZP_ORT = Port of South Los Santos + // ZQ_UAR = Davis Quartz + // + // Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json + inline int GetZoneFromNameId(String zoneName) { return _i(0x98CD1D2934B76CC1, zoneName); } // 0x98cd1d2934b76cc10x8ec68304B323 + inline int GetZonePopschedule(int zoneId) { return _i(0x4334BC40AA0CB4BB, zoneId); } // 0x4334bc40aa0cb4bb0x20ab2fc9B323 + // AIRP = Los Santos International Airport + // ALAMO = Alamo Sea + // ALTA = Alta + // ARMYB = Fort Zancudo + // BANHAMC = Banham Canyon Dr + // BANNING = Banning + // BEACH = Vespucci Beach + // BHAMCA = Banham Canyon + // BRADP = Braddock Pass + // BRADT = Braddock Tunnel + // BURTON = Burton + // CALAFB = Calafia Bridge + // CANNY = Raton Canyon + // CCREAK = Cassidy Creek + // CHAMH = Chamberlain Hills + // CHIL = Vinewood Hills + // CHU = Chumash + // CMSW = Chiliad Mountain State Wilderness + // CYPRE = Cypress Flats + // DAVIS = Davis + // DELBE = Del Perro Beach + // DELPE = Del Perro + // DELSOL = La Puerta + // DESRT = Grand Senora Desert + // DOWNT = Downtown + // DTVINE = Downtown Vinewood + // EAST_V = East Vinewood + // EBURO = El Burro Heights + // ELGORL = El Gordo Lighthouse + // ELYSIAN = Elysian Island + // GALFISH = Galilee + // GOLF = GWC and Golfing Society + // GRAPES = Grapeseed + // GREATC = Great Chaparral + // HARMO = Harmony + // HAWICK = Hawick + // HORS = Vinewood Racetrack + // HUMLAB = Humane Labs and Research + // JAIL = Bolingbroke Penitentiary + // KOREAT = Little Seoul + // LACT = Land Act Reservoir + // LAGO = Lago Zancudo + // LDAM = Land Act Dam + // LEGSQU = Legion Square + // LMESA = La Mesa + // LOSPUER = La Puerta + // MIRR = Mirror Park + // MORN = Morningwood + // MOVIE = Richards Majestic + // MTCHIL = Mount Chiliad + // MTGORDO = Mount Gordo + // MTJOSE = Mount Josiah + // MURRI = Murrieta Heights + // NCHU = North Chumash + // NOOSE = N.O.O.S.E + // OCEANA = Pacific Ocean + // PALCOV = Paleto Cove + // PALETO = Paleto Bay + // PALFOR = Paleto Forest + // PALHIGH = Palomino Highlands + // PALMPOW = Palmer-Taylor Power Station + // PBLUFF = Pacific Bluffs + // PBOX = Pillbox Hill + // PROCOB = Procopio Beach + // RANCHO = Rancho + // RGLEN = Richman Glen + // RICHM = Richman + // ROCKF = Rockford Hills + // RTRAK = Redwood Lights Track + // SANAND = San Andreas + // SANCHIA = San Chianski Mountain Range + // SANDY = Sandy Shores + // SKID = Mission Row + // SLAB = Stab City + // STAD = Maze Bank Arena + // STRAW = Strawberry + // TATAMO = Tataviam Mountains + // TERMINA = Terminal + // TEXTI = Textile City + // TONGVAH = Tongva Hills + // TONGVAV = Tongva Valley + // VCANA = Vespucci Canals + // VESP = Vespucci + // VINE = Vinewood + // WINDF = Ron Alternates Wind Farm + // WVINE = West Vinewood + // ZANCUDO = Zancudo River + // ZP_ORT = Port of South Los Santos + // ZQ_UAR = Davis Quartz + // + // Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json + inline String GetNameOfZone(float x, float y, float z) { return _i(0xCD90657D4C30E1CA, x, y, z); } // 0xcd90657d4c30e1ca0x7875ce91B323 + inline Void SetZoneEnabled(int zoneId, BOOL toggle) { return _i(0xBA5ECEEA120E5611, zoneId, toggle); } // 0xba5eceea120e56110x04e21b03B323 + // cellphone range 1- 5 used for signal bar in iFruit phone + inline int GetZoneScumminess(int zoneId) { return _i(0x5F7B268D15BA0739, zoneId); } // 0x5f7b268d15ba07390xb2fb5c4cB323 + // Only used once in the decompiled scripts. Seems to be related to scripted vehicle generators. + // + // Modified example from "am_imp_exp.c4", line 6406: + // /* popSchedules[0] = ZONE::GetZonePopschedule(ZONE::GetZoneAtCoords(891.3, 807.9, 188.1)); + // etc. + // */ + // ZONE::OverridePopscheduleVehicleModel(popSchedules[index], vehicleHash); + // STREAMING::RequestModel(vehicleHash); + inline Void OverridePopscheduleVehicleModel(int scheduleId, Hash vehicleHash) { return _i(0x5F7D596BAC2E7777, scheduleId, vehicleHash); } // 0x5f7d596bac2e77770x3f0a3680B323 + // Only used once in the decompiled scripts. Seems to be related to scripted vehicle generators. + // + // Modified example from "am_imp_exp.c4", line 6418: + // /* popSchedules[0] = ZONE::GetZonePopschedule(ZONE::GetZoneAtCoords(891.3, 807.9, 188.1)); + // etc. + // */ + // STREAMING::SetModelAsNoLongerNeeded(vehicleHash); + // ZONE::ClearPopscheduleOverrideVehicleModel(popSchedules[index]); + inline Void ClearPopscheduleOverrideVehicleModel(int scheduleId) { return _i(0x5C0DE367AA0D911C, scheduleId); } // 0x5c0de367aa0d911c0x7a72a24eB323 + // Returns a hash representing which part of the map the given coords are located. + // + // Possible return values: + // (Hash of) city -> -289320599 + // (Hash of) countryside -> 2072609373 + // + // C# Example : + // + // Ped player = Game.Player.Character; + // Hash h = Function.Call(Hash.GetHashOfMapAreaAtCoords, player.Position.X, player.Position.Y, player.Position.Z); + inline Hash GetHashOfMapAreaAtCoords(float x, float y, float z) { return _i(0x7EE64D51E8498728, x, y, z); } // 0x7ee64d51e84987280xb5c5c99bB323 } //python code //import re -//with open('natives.hpp', 'r') as file: -// content = file.read() -//pattern = r'(inline\s+\w+\s+)(?P[a-zA-Z0-9_]+)\((?P.*?)\)\s*{([^}]+)}\s*/ / \s * (? P.* ? )$' +// +//with open('natives.hpp', 'r') as file : +//content = file.read() +// +//pattern = r'(inline\s+\w+\s+)(?P[a-zA-Z0-9_]+)\((?P.*?)\)\s*{([^}]+)}\s*//\s*(?P.*?)$' //matches = re.finditer(pattern, content, re.MULTILINE) +//num = 0 //modified_content = content //for match in matches : //old_function_name = match.group('function_name') //new_function_name = ''.join(word.capitalize() for word in re.split(r'[^a-zA-Z0-9]', old_function_name)) //modified_content = re.sub(r'\b' + old_function_name + r'\b', new_function_name, modified_content) +//print(num + 1, new_function_name) +//num += 1 //old_comment = match.group('comment') //new_comment = ''.join(word.capitalize() for word in re.split(r'[^a-zA-Z0-9]', old_comment)) //modified_content = modified_content.replace(old_comment, new_comment, 1) -//if match.group('function_name') != 'void': //modified_content = modified_content.replace('void', 'Void', 1) -//modified_content = modified_content.replace('_i', '_i', 1) -// -//with open('output.txt', 'w') as output_file : -//output_file.write(modified_content) -// -//Replace manually const char* to String \ No newline at end of file +//modified_content = modified_content.replace('const char*', 'String', 1) +//with open('out.hpp', 'w') as output_file : +//output_file.write(modified_content) \ No newline at end of file