Skip to content

Commit bc22bac

Browse files
authored
Merge pull request #19 from matheustkn/master
feat: update to latest version and added new functions
2 parents 2686274 + 61076ff commit bc22bac

File tree

7 files changed

+144
-37
lines changed

7 files changed

+144
-37
lines changed

VCMP-LUA/Core.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ int my_exception_handler(lua_State* L, sol::optional<const std::exception&> mayb
2929
return sol::stack::push(L, description);
3030
}
3131

32-
extern "C" EXPORT unsigned int VcmpPluginInit(PluginFuncs * pluginFuncs, PluginCallbacks * pluginCalls, PluginInfo * pluginInfo) {
32+
extern "C" EXPORT unsigned int VcmpPluginInit(PluginFuncs* pluginFuncs, PluginCallbacks* pluginCalls, PluginInfo* pluginInfo) {
3333
g_Funcs = pluginFuncs;
3434
g_Calls = pluginCalls;
3535
g_Info = pluginInfo;

VCMP-LUA/include/vcmp.h

Lines changed: 62 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
you may not use this file except in compliance with the License.
99
You may obtain a copy of the License at
1010
11-
http://www.apache.org/licenses/LICENSE-2.0
11+
http://www.apache.org/licenses/LICENSE-2.0
1212
1313
Unless required by applicable law or agreed to in writing, software
1414
distributed under the License is distributed on an "AS IS" BASIS,
@@ -162,6 +162,7 @@ typedef enum {
162162
vcmpServerOptionWallGlitch = 19,
163163
vcmpServerOptionDisableBackfaceCulling = 20,
164164
vcmpServerOptionDisableHeliBladeDamage = 21,
165+
vcmpServerOptionDisableCrouch = 22,
165166
forceSizeVcmpServerOption = INT32_MAX
166167
} vcmpServerOption;
167168

@@ -175,7 +176,8 @@ typedef enum {
175176
vcmpPlayerOptionCanAttack = 6,
176177
vcmpPlayerOptionHasMarker = 7,
177178
vcmpPlayerOptionChatTagsEnabled = 8,
178-
vcmpPlayerOptionDrunkEffects = 9,
179+
vcmpPlayerOptionDrunkEffectsDeprecated = 9,
180+
vcmpPlayerOptionBleeding = 10,
179181
forceSizeVcmpPlayerOption = INT32_MAX
180182
} vcmpPlayerOption;
181183

@@ -187,6 +189,9 @@ typedef enum {
187189
vcmpVehicleOptionGhost = 4,
188190
vcmpVehicleOptionSiren = 5,
189191
vcmpVehicleOptionSingleUse = 6,
192+
vcmpVehicleOptionEngineDisabled = 7,
193+
vcmpVehicleOptionBootOpen = 8,
194+
vcmpVehicleOptionBonnetOpen = 9,
190195
forceSizeVcmpVehicleOption = INT32_MAX
191196
} vcmpVehicleOption;
192197

@@ -202,7 +207,7 @@ typedef struct {
202207
* Plugin system
203208
*/
204209

205-
/* success */
210+
/* success */
206211
uint32_t(*GetServerVersion) (void);
207212
/* vcmpErrorNullArgument */
208213
vcmpError(*GetServerSettings) (ServerSettings* settings);
@@ -229,7 +234,7 @@ typedef struct {
229234
* Client messages
230235
*/
231236

232-
/* vcmpErrorNoSuchEntity, vcmpErrorNullArgument, vcmpErrorTooLargeInput */
237+
/* vcmpErrorNoSuchEntity, vcmpErrorNullArgument, vcmpErrorTooLargeInput */
233238
vcmpError(*SendClientScriptData) (int32_t playerId, const void* data, size_t size);
234239
/* vcmpErrorNoSuchEntity, vcmpErrorNullArgument, vcmpErrorTooLargeInput */
235240
vcmpError(*SendClientMessage) (int32_t playerId, uint32_t colour, const char* format, ...);
@@ -240,7 +245,7 @@ typedef struct {
240245
* Server settings
241246
*/
242247

243-
/* vcmpErrorNullArgument, vcmpErrorTooLargeInput */
248+
/* vcmpErrorNullArgument, vcmpErrorTooLargeInput */
244249
vcmpError(*SetServerName) (const char* text);
245250
/* vcmpErrorNullArgument, vcmpErrorBufferTooSmall */
246251
vcmpError(*GetServerName) (char* buffer, size_t size);
@@ -263,7 +268,7 @@ typedef struct {
263268
* Game environment settings
264269
*/
265270

266-
/* vcmpErrorArgumentOutOfBounds */
271+
/* vcmpErrorArgumentOutOfBounds */
267272
vcmpError(*SetServerOption) (vcmpServerOption option, uint8_t toggle);
268273
/* GetLastError: vcmpErrorArgumentOutOfBounds */
269274
uint8_t(*GetServerOption) (vcmpServerOption option);
@@ -320,7 +325,7 @@ typedef struct {
320325
* Miscellaneous things
321326
*/
322327

323-
/* vcmpErrorArgumentOutOfBounds, vcmpErrorNoSuchEntity */
328+
/* vcmpErrorArgumentOutOfBounds, vcmpErrorNoSuchEntity */
324329
vcmpError(*CreateExplosion) (int32_t worldId, int32_t type, float x, float y, float z, int32_t responsiblePlayerId, uint8_t atGroundLevel);
325330
/* vcmpErrorArgumentOutOfBounds */
326331
vcmpError(*PlaySound) (int32_t worldId, int32_t soundId, float x, float y, float z);
@@ -335,7 +340,7 @@ typedef struct {
335340
* Weapon settings
336341
*/
337342

338-
/* vcmpErrorArgumentOutOfBounds */
343+
/* vcmpErrorArgumentOutOfBounds */
339344
vcmpError(*SetWeaponDataValue) (int32_t weaponId, int32_t fieldId, double value);
340345
/* GetLastError: vcmpErrorArgumentOutOfBounds */
341346
double(*GetWeaponDataValue) (int32_t weaponId, int32_t fieldId);
@@ -352,7 +357,7 @@ typedef struct {
352357
* Key binds
353358
*/
354359

355-
/* -1 == vcmpEntityNone */
360+
/* -1 == vcmpEntityNone */
356361
int32_t(*GetKeyBindUnusedSlot) (void);
357362
/* vcmpErrorNoSuchEntity */
358363
vcmpError(*GetKeyBindData) (int32_t bindId, uint8_t* isCalledOnReleaseOut, int32_t* keyOneOut, int32_t* keyTwoOut, int32_t* keyThreeOut);
@@ -367,7 +372,7 @@ typedef struct {
367372
* Coordinate blips
368373
*/
369374

370-
/* GetLastError: vcmpErrorPoolExhausted */
375+
/* GetLastError: vcmpErrorPoolExhausted */
371376
int32_t(*CreateCoordBlip) (int32_t index, int32_t world, float x, float y, float z, int32_t scale, uint32_t colour, int32_t sprite);
372377
/* vcmpErrorNoSuchEntity */
373378
vcmpError(*DestroyCoordBlip) (int32_t index);
@@ -378,7 +383,7 @@ typedef struct {
378383
* Radios
379384
*/
380385

381-
/* vcmpErrorArgumentOutOfBounds, vcmpErrorNullArgument */
386+
/* vcmpErrorArgumentOutOfBounds, vcmpErrorNullArgument */
382387
vcmpError(*AddRadioStream) (int32_t radioId, const char* radioName, const char* radioUrl, uint8_t isListed);
383388
/* vcmpErrorNoSuchEntity */
384389
vcmpError(*RemoveRadioStream) (int32_t radioId);
@@ -387,7 +392,7 @@ typedef struct {
387392
* Spawning and classes
388393
*/
389394

390-
/* GetLastError: vcmpErrorArgumentOutOfBounds, vcmpErrorPoolExhausted */
395+
/* GetLastError: vcmpErrorArgumentOutOfBounds, vcmpErrorPoolExhausted */
391396
int32_t(*AddPlayerClass) (int32_t teamId, uint32_t colour, int32_t modelIndex, float x, float y, float z, float angle, int32_t weaponOne, int32_t weaponOneAmmo, int32_t weaponTwo, int32_t weaponTwoAmmo, int32_t weaponThree, int32_t weaponThreeAmmo);
392397
/* success */
393398
void(*SetSpawnPlayerPosition) (float x, float y, float z);
@@ -399,8 +404,8 @@ typedef struct {
399404
/*
400405
* Administration
401406
*/
402-
403-
/* GetLastError: vcmpErrorNoSuchEntity */
407+
408+
/* GetLastError: vcmpErrorNoSuchEntity */
404409
uint8_t(*IsPlayerAdmin) (int32_t playerId);
405410
/* vcmpErrorNoSuchEntity */
406411
vcmpError(*SetPlayerAdmin) (int32_t playerId, uint8_t toggle);
@@ -425,7 +430,7 @@ typedef struct {
425430
* Player access and basic info
426431
*/
427432

428-
/* -1 == vcmpEntityNone */
433+
/* -1 == vcmpEntityNone */
429434
int32_t(*GetPlayerIdFromName) (const char* name);
430435
/* success */
431436
uint8_t(*IsPlayerConnected) (int32_t playerId);
@@ -448,7 +453,7 @@ typedef struct {
448453
* Player world
449454
*/
450455

451-
/* vcmpErrorNoSuchEntity */
456+
/* vcmpErrorNoSuchEntity */
452457
vcmpError(*SetPlayerWorld) (int32_t playerId, int32_t world);
453458
/* GetLastError: vcmpErrorNoSuchEntity */
454459
int32_t(*GetPlayerWorld) (int32_t playerId);
@@ -465,7 +470,7 @@ typedef struct {
465470
* Player class, team, skin, colour
466471
*/
467472

468-
/* GetLastError: vcmpErrorNoSuchEntity */
473+
/* GetLastError: vcmpErrorNoSuchEntity */
469474
int32_t(*GetPlayerClass) (int32_t playerId);
470475
/* vcmpErrorNoSuchEntity, vcmpErrorArgumentOutOfBounds */
471476
vcmpError(*SetPlayerTeam) (int32_t playerId, int32_t teamId);
@@ -484,7 +489,7 @@ typedef struct {
484489
* Player spawn cycle
485490
*/
486491

487-
/* vcmpErrorNoSuchEntity */
492+
/* vcmpErrorNoSuchEntity */
488493
uint8_t(*IsPlayerSpawned) (int32_t playerId);
489494
/* vcmpErrorNoSuchEntity */
490495
vcmpError(*ForcePlayerSpawn) (int32_t playerId);
@@ -499,7 +504,7 @@ typedef struct {
499504
* Player money, score, wanted level
500505
*/
501506

502-
/* vcmpErrorNoSuchEntity */
507+
/* vcmpErrorNoSuchEntity */
503508
vcmpError(*GivePlayerMoney) (int32_t playerId, int32_t amount);
504509
/* vcmpErrorNoSuchEntity */
505510
vcmpError(*SetPlayerMoney) (int32_t playerId, int32_t amount);
@@ -522,7 +527,7 @@ typedef struct {
522527
* Player health and immunity
523528
*/
524529

525-
/* vcmpErrorNoSuchEntity */
530+
/* vcmpErrorNoSuchEntity */
526531
vcmpError(*SetPlayerHealth) (int32_t playerId, float health);
527532
/* GetLastError: vcmpErrorNoSuchEntity */
528533
float(*GetPlayerHealth) (int32_t playerId);
@@ -539,7 +544,7 @@ typedef struct {
539544
* Player position and rotation
540545
*/
541546

542-
/* vcmpErrorNoSuchEntity */
547+
/* vcmpErrorNoSuchEntity */
543548
vcmpError(*SetPlayerPosition) (int32_t playerId, float x, float y, float z);
544549
/* vcmpErrorNoSuchEntity */
545550
vcmpError(*GetPlayerPosition) (int32_t playerId, float* xOut, float* yOut, float* zOut);
@@ -566,7 +571,7 @@ typedef struct {
566571
* Player actions and keys
567572
*/
568573

569-
/* GetLastError: vcmpErrorNoSuchEntity */
574+
/* GetLastError: vcmpErrorNoSuchEntity */
570575
uint8_t(*IsPlayerOnFire) (int32_t playerId);
571576
/* GetLastError: vcmpErrorNoSuchEntity */
572577
uint8_t(*IsPlayerCrouching) (int32_t playerId);
@@ -579,7 +584,7 @@ typedef struct {
579584
* Player vehicle
580585
*/
581586

582-
/* vcmpErrorNoSuchEntity, vcmpErrorArgumentOutOfBounds, vcmpErrorRequestDenied */
587+
/* vcmpErrorNoSuchEntity, vcmpErrorArgumentOutOfBounds, vcmpErrorRequestDenied */
583588
vcmpError(*PutPlayerInVehicle) (int32_t playerId, int32_t vehicleId, int32_t slotIndex, uint8_t makeRoom, uint8_t warp);
584589
/* vcmpErrorNoSuchEntity */
585590
vcmpError(*RemovePlayerFromVehicle) (int32_t playerId);
@@ -594,7 +599,7 @@ typedef struct {
594599
* Player weapons
595600
*/
596601

597-
/* vcmpErrorNoSuchEntity, vcmpErrorArgumentOutOfBounds */
602+
/* vcmpErrorNoSuchEntity, vcmpErrorArgumentOutOfBounds */
598603
vcmpError(*GivePlayerWeapon) (int32_t playerId, int32_t weaponId, int32_t ammo);
599604
/* vcmpErrorNoSuchEntity, vcmpErrorArgumentOutOfBounds */
600605
vcmpError(*SetPlayerWeapon) (int32_t playerId, int32_t weaponId, int32_t ammo);
@@ -619,7 +624,7 @@ typedef struct {
619624
* Player camera
620625
*/
621626

622-
/* vcmpErrorNoSuchEntity */
627+
/* vcmpErrorNoSuchEntity */
623628
vcmpError(*SetCameraPosition) (int32_t playerId, float posX, float posY, float posZ, float lookX, float lookY, float lookZ);
624629
/* vcmpErrorNoSuchEntity */
625630
vcmpError(*RestoreCamera) (int32_t playerId);
@@ -630,7 +635,7 @@ typedef struct {
630635
* Player miscellaneous stuff
631636
*/
632637

633-
/* vcmpErrorNoSuchEntity */
638+
/* vcmpErrorNoSuchEntity */
634639
vcmpError(*SetPlayerAnimation) (int32_t playerId, int32_t groupId, int32_t animationId);
635640
/* GetLastError: vcmpErrorNoSuchEntity */
636641
int32_t(*GetPlayerStandingOnVehicle) (int32_t playerId);
@@ -649,14 +654,14 @@ typedef struct {
649654
* All entities
650655
*/
651656

652-
/* GetLastError: vcmpArgumentOutOfBounds */
657+
/* GetLastError: vcmpArgumentOutOfBounds */
653658
uint8_t(*CheckEntityExists) (vcmpEntityPool entityPool, int32_t index);
654659

655660
/*
656661
* Vehicles
657662
*/
658663

659-
/* GetLastError: vcmpErrorArgumentOutOfBounds, vcmpErrorPoolExhausted */
664+
/* GetLastError: vcmpErrorArgumentOutOfBounds, vcmpErrorPoolExhausted */
660665
int32_t(*CreateVehicle) (int32_t modelIndex, int32_t world, float x, float y, float z, float angle, int32_t primaryColour, int32_t secondaryColour);
661666
/* vcmpErrorNoSuchEntity */
662667
vcmpError(*DeleteVehicle) (int32_t vehicleId);
@@ -755,7 +760,7 @@ typedef struct {
755760
* Vehicle handling
756761
*/
757762

758-
/* success */
763+
/* success */
759764
void(*ResetAllVehicleHandlings) (void);
760765
/* vcmpErrorArgumentOutOfBounds */
761766
uint8_t(*ExistsHandlingRule) (int32_t modelIndex, int32_t ruleIndex);
@@ -782,7 +787,7 @@ typedef struct {
782787
* Pickups
783788
*/
784789

785-
/* vcmpErrorPoolExhausted */
790+
/* vcmpErrorPoolExhausted */
786791
int32_t(*CreatePickup) (int32_t modelIndex, int32_t world, int32_t quantity, float x, float y, float z, int32_t alpha, uint8_t isAutomatic);
787792
/* vcmpErrorNoSuchEntity */
788793
vcmpError(*DeletePickup) (int32_t pickupId);
@@ -819,7 +824,7 @@ typedef struct {
819824
* Checkpoints
820825
*/
821826

822-
/* vcmpErrorPoolExhausted, vcmpErrorNoSuchEntity */
827+
/* vcmpErrorPoolExhausted, vcmpErrorNoSuchEntity */
823828
int32_t(*CreateCheckPoint) (int32_t playerId, int32_t world, uint8_t isSphere, float x, float y, float z, int32_t red, int32_t green, int32_t blue, int32_t alpha, float radius);
824829
/* vcmpErrorNoSuchEntity */
825830
vcmpError(*DeleteCheckPoint) (int32_t checkPointId);
@@ -850,7 +855,7 @@ typedef struct {
850855
* Objects
851856
*/
852857

853-
/* GetLastError: vcmpErrorPoolExhausted */
858+
/* GetLastError: vcmpErrorPoolExhausted */
854859
int32_t(*CreateObject) (int32_t modelIndex, int32_t world, float x, float y, float z, int32_t alpha);
855860
/* vcmpErrorNoSuchEntity */
856861
vcmpError(*DeleteObject) (int32_t objectId);
@@ -913,6 +918,30 @@ typedef struct {
913918
/* GetLastError: vcmpErrorNoSuchEntity */
914919
uint32_t(*GetVehicleLightsData) (int32_t vehicleId);
915920

921+
/* vcmpErrorNoSuchEntity */
922+
vcmpError(*KillPlayer) (int32_t playerId);
923+
924+
/* vcmpErrorNoSuchEntity */
925+
vcmpError(*SetVehicle3DArrowForPlayer) (int32_t nVehicleId, int32_t nTargetPlayerId, uint8_t bEnabled);
926+
/* GetLastError: vcmpErrorNoSuchEntity */
927+
uint8_t(*GetVehicle3DArrowForPlayer) (int32_t nVehicleId, int32_t nTargetPlayerId);
928+
/* vcmpErrorNoSuchEntity */
929+
vcmpError(*SetPlayer3DArrowForPlayer) (int32_t nPlayerId, int32_t nTargetPlayerId, uint8_t bEnabled);
930+
/* GetLastError: vcmpErrorNoSuchEntity */
931+
uint8_t(*GetPlayer3DArrowForPlayer) (int32_t nVehicleId, int32_t nTargetPlayerId);
932+
933+
/* vcmpErrorNoSuchEntity */
934+
vcmpError(*SetPlayerDrunkHandling) (int32_t playerId, uint32_t drunkLevel);
935+
/* GetLastError: vcmpErrorNoSuchEntity */
936+
uint32_t(*GetPlayerDrunkHandling) (int32_t playerId);
937+
/* vcmpErrorNoSuchEntity */
938+
vcmpError(*SetPlayerDrunkVisuals) (int32_t playerId, uint8_t drunkLevel);
939+
/* GetLastError: vcmpErrorNoSuchEntity */
940+
uint8_t(*GetPlayerDrunkVisuals) (int32_t playerId);
941+
942+
/* vcmpErrorNoSuchEntity, vcmpErrorRequestDenied */
943+
vcmpError(*InterpolateCameraLookAt) (int32_t playerId, float lookX, float lookY, float lookZ, uint32_t interpTimeMS);
944+
916945
} PluginFuncs;
917946

918947
typedef struct {
@@ -978,4 +1007,4 @@ typedef struct {
9781007
// TODO: MOVE LATER
9791008
void(*OnPlayerModuleList) (int32_t playerId, const char* list);
9801009

981-
} PluginCallbacks;
1010+
} PluginCallbacks;

0 commit comments

Comments
 (0)