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
918947typedef 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