Main Page: Difference between revisions

From NPC for VCMP 0.4 Servers
Jump to navigation Jump to search
No edit summary
No edit summary
 
(125 intermediate revisions by 2 users not shown)
Line 2: Line 2:
<big>
<big>
== Introduction ==
== Introduction ==
NPCs also known as bots -feature introduced in April 2022 in [https://forum.vc-mp.org/?topic=8799.0 vc-mp forum].
NPCs (Non Player Characters) or bots can be created in vcmp server. They can be created at ammunition stores, toolshop or mall. They can chat with players, send command to server. They can be used to play a previous recording like driving a car around an area repeatedly. Like normal players, they use server slot.
This new feature allows you to create NPCs inside your server. They can be created at ammunition stores, toolshop or mall. They can chat with players, send command to server. They can be used to play a previous recording like driving a car around an area repeatedly. Like normal players, they use server slot.
Their intelligence can be scripted in separate squirrel scripts. These scripts with 'artificial intelligence' of NPC reside in '''npcscripts''' directory.  
Their actions are scripted by squirrel scripts. These scripts with 'artificial intelligence' of NPC reside in '''npcscripts''' directory.  


Each NPC run in its own process. This might make their usage and working economical. The NPC scripts have functions as well as callbacks. The Player functions, Advanced functions are all functions usable in npcscripts( and not server scripts).
Each NPC run in its own process. The NPC scripts have functions as well as callbacks.  


Since v1.5, adding an npc is simple as a call to [[ConnectNPC]] and if you do not want to give npc AI, the script parameter can be omitted.  
Since v1.5, adding an npc is simple as a call to [[ConnectNPC]] and if you do not want to give npc any artificial intelligence, the script parameter can be omitted.  
{| style=height:1em
{| style=height:1em
|scope="col" style="width: 300px; text-align:left; vertical-align: top;"|  
|scope="col" style="width: 300px; text-align:left; vertical-align: top;"|  
Line 14: Line 13:
|scope="col" style="width: 630px;vertical-align: top;" |   
|scope="col" style="width: 630px;vertical-align: top;" |   
== NPC script functions ==  
== NPC script functions ==  
|scope="col" style="width: 300px;vertical-align: top;" |
|scope="col" style="width: 300px;vertical-align: top;" |  
== Remote Calls from Server Script ==  
==ServerData ==
|-style="vertical-align: top;"
|-style="vertical-align: top;"
|  
|  
Line 37: Line 36:
* [[OnConsoleInput]]
* [[OnConsoleInput]]
* [[OnServerData]]
* [[OnServerData]]
* [[OnExplosion]]
* [[OnProjectileFired]]
* [[OnNPCClassSelect]]
* [[OnServerShareTick]]
*[[OnTimeWeatherSync]]
==Constants==
==Constants==
* [[Bodypart| BodyParts]]
* [[Bodypart| BodyParts]]
Line 42: Line 46:
* [[Keys|Game Keys]]
* [[Keys|Game Keys]]
* [[Player_States|Player States]]
* [[Player_States|Player States]]
* [[Play_Flags|Play Flags]]
== Classes ==
== Classes ==
*[[Vector]]
*[[Vector]]
Line 57: Line 62:
*[[GetPlayerName]]
*[[GetPlayerName]]
*[[IsPlayerConnected]]  
*[[IsPlayerConnected]]  
* [[GetPlayerSkin]] (v1.5)
* [[GetPlayerSkin]]  
* [[GetPlayerTeam]] (v1.5)
* [[GetPlayerTeam]]  
* [[GetPlayerSlotWeapon]] (v1.5)
* [[GetPlayerSlotWeapon]]  
* [[GetPlayerSlotAmmo]] (v1.5)
* [[GetPlayerSlotAmmo]]  
* [[WhereIsPlayer]] (v1.5)
*[[GetPlayerSpeed]]
*[[GetPlayerAction]]
* [[WhereIsPlayer]]
== Modules ==
* [[LibRPC]]
* [[LibAction]]
* [[npcmodule]] (to be renamed)
* [[z-finder]]  
== v1.8 ==
* [[Suicide]]
* [[SetMyHealth]]
* [[GetMyHealth]]
* [[LookAtPos]]
* [[LookAtPlayer]]
* [[GetMyClass]]
* [[RequestClassAbs]]
* [[AmISpawned]]
* [[GetMySkin]]
* [[GetMyTeam]]
* [[GetMyArmour]]
* [[SendPrivMsg]]
* [[SetConfig]]
* [[GetPlayerColor]]
* [[GetMyColor]]
* [[IsPlaybackRunning]]
* [[IsPlaybackPaused]]
* [[InPoly]]
  ||  
  ||  
* [[StartRecordingPlayback]]
* [[StartRecordingPlayback]]
Line 76: Line 107:
* [[IsVehicleStreamedIn]]
* [[IsVehicleStreamedIn]]
* [[IsPlayerStreamedIn]]
* [[IsPlayerStreamedIn]]
* [[SelectWeapon]] (v1.6 b4p2)
* [[GetAvailableWeapons]]
* [[GetAmmoOfMyWeapon]]
* [[SetTimer]]
* [[SetTimer]]
* [[SetTimerEx]] (v1.5)
* [[SetTimerEx]]  
* [[KillTimer]]
* [[KillTimer]]
* [[GetMyName]] (v1.6 )
* [[GetMyName]]  
* [[GetMyID]] (v1.6 )
* [[GetMyID]]  
==Advanced functions(v1.5+)==
* [[QuitServer]]
* [[RequestClass]]
* [[ReqeustClassAbs]]
* [[RequestSpawn]]
* [[GetTickCount]]
* [[GetClosestPlayer]]
* [[GetSlotFromWeaponId]]
* [[FaceNPCToPlayer]]
==Advanced functions==
* [[SendOnFootSyncData]]
* [[SendOnFootSyncData]]
* [[SendOnFootSyncDataEx]]
* [[SendOnFootSyncDataEx]]
Line 91: Line 133:
* [[FireSniperRifle]]
* [[FireSniperRifle]]
* [[FireSniperRifleEx]]
* [[FireSniperRifleEx]]
* [[FireProjectile]]
* [[SendShotInfo]]
* [[SendShotInfo]]
* [[SendDeathInfo]]
* [[SendDeathInfo]]
* [[GetLocalValue]]
* [[GetLocalValue]]
* [[SetLocalValue]]
* [[SetLocalValue]]
* [[SendServerData]]
* [[GetSlotFromWeaponId]]
* [[FaceNPCToPlayer]]
* [[GetTickCount]]
* [[GetClosestPlayer]]
== Functions used only in server scripts==
== Functions used only in server scripts==
* [[ConnectNPC]]
* [[ConnectNPC]]
Line 107: Line 145:
* [[StartRecordingPlayerData]]
* [[StartRecordingPlayerData]]
* [[StopRecordingPlayerData]]
* [[StopRecordingPlayerData]]
* [[RFC]]
* [[F]]
* [[Examples]] (Remote calls)
* [[StartRecordingAllPlayerData]] (v1.8)
* [[StopRecordingAllPlayerData]]
* [[PutServerInRecordingMode]]
* [[StopServerInRecordingMode]]
* [[IsPlayerRecording]]
* [[IsServerInRecordingMode]]
* [[ConnectMultipleNpcs]]
* [[StopConnectingMultipleNpcs]]
* [[Server.cfg|server.cfg values]]
==Tools==
* [[recupdate]]
* [[recEdit]]
==0.4.7.1==
* [[FireBullet]]
* [[OnBulletFired]]
==Store==
* [[GetStoreLocation]]
* [[IsStoreDownloading]]
* [[OnStoreDownloadComplete]]
* [[GetStoreURL]]
||
* [[SendServerData]]
* [[ReadInt]]
* [[ReadByte]]
* [[ReadFloat]]
* [[ReadString]]
* [[WriteInt]]
*[[WriteByte]]
*[[WriteFloat]]
*[[WriteString]]
==Pickup==
*[[ClaimPickup]]
*[[IsPickupStreamedIn]]
*[[GetPickupModel]]
*[[GetPickupAlpha]]
*[[GetPickupQuantity]]
*[[GetPickupPos]]
*[[GetPickupCount]]
*[[OnPickupStreamIn]]
*[[OnPickupDestroyed]]
*[[OnPickupUpdate]]
==Checkpoint==
*[[OnCheckpointStreamIn]]
*[[OnCheckpointDestroyed]]
*[[OnCheckpointUpdate]]
*[[IsCheckpointStreamedIn]]
*[[GetCheckpointRadius]]
*[[GetCheckpointPos]]
*[[GetCheckpointColor]]
*[[IsCheckpointSphere]]
*[[ClaimEnterCheckpoint]]
*[[ClaimExitCheckpoint]]
*[[GetCheckpointCount]]
==Vehicle==
*[[EnterVehicle]]
*[[GetVehicleDriver]]
*[[GetVehicleModel]]
*[[GetVehicleTurretRot]]
*[[GetVehicleRotation]]
*[[GetVehiclePos]]
*[[GetVehicleSpeed]]
*[[GetVehicleHealth]]
*[[GetVehicleDamage]]
*[[ExitVehicle]]
*[[ExitVehicleEx]]
==Objects==
*[[OnObjectStreamIn]]
*[[OnObjectDestroyed]]
*[[OnObjectUpdate]]
*[[IsObjectStreamedIn]]
*[[GetObjectModel]]
*[[GetObjectPos]]
*[[GetObjectRotation]]
*[[GetObjectAlpha]]
*[[IsObjectTouchReportEnabled]]
*[[IsObjectShotReportEnabled]]
*[[ClaimObjectTouch]]
*[[ClaimObjectShot]]
*[[GetObjectCount]]
== More ==
== More ==
* [[SquirrelPlugin|Squirrel Add-On Plugin]]
*[[NPC Installation]]
*[[NPC Installation]]
* [[Squirrel Standard Library Functions]]
* [[Squirrel Standard Library Functions]]
==v1.5 ==
* [[NPCHide]]
* [[New Release]]
* [[Command-line usage]]
* [[Command-line usage]]
* [[Attack Script]]
* [[Attack Script]] (v1.5)
||
* [[walking_man|Walking cop script]]
* [[RFC]]
* [[F]]
|}
|}
</big>
</big>
<poem style="border: 2px solid #d6d2c5; background-color: #f9f4e6; ">
<poem style="border: 2px solid #d6d2c5; background-color: #19f4e6; ">
'''08 January 2023: Happy New Year. NPC Version 1.6 alpha is out'''. [[V1_6_alpha_release_notes|'''here''']]
'''04 February 2023: Hiding/Changing name of NPC In-Game New Plugin. [[NPCHide|see]]
</poem>
<Poem style="border: 2px solid #4682B4; background-color: #FFE4B5; ">
'''03 October 2024: NPC v1.8 Beta 3 is released'''. (new) [[V1_8_beta3_release_notes|'''click here''']]
</poem>
</poem>
<poem style="border: 2px solid #d6d2c5; background-color: #f9f4e6; ">
<Poem style="border: 2px solid #4682B4; background-color: #FFE4B5; ">
'''13 January 2023: Server Plugin to hide npcs from VCMP-Browser. [[NPC_HIDE|see]]
'''25 October 2024: NPC v1.8 Beta 4'''. (new) [[V1_8_beta4_release_notes|'''click here''']]
</poem>
</poem>

Latest revision as of 16:17, 25 October 2024

Introduction

NPCs (Non Player Characters) or bots can be created in vcmp server. They can be created at ammunition stores, toolshop or mall. They can chat with players, send command to server. They can be used to play a previous recording like driving a car around an area repeatedly. Like normal players, they use server slot. Their intelligence can be scripted in separate squirrel scripts. These scripts with 'artificial intelligence' of NPC reside in npcscripts directory.

Each NPC run in its own process. The NPC scripts have functions as well as callbacks.

Since v1.5, adding an npc is simple as a call to ConnectNPC and if you do not want to give npc any artificial intelligence, the script parameter can be omitted.

NPC script callbacks

NPC script functions

ServerData

Constants

Classes

Player functions

Modules

v1.8

Advanced functions

Functions used only in server scripts

Tools

0.4.7.1

Store

Pickup

Checkpoint

Vehicle

Objects

More

04 February 2023: Hiding/Changing name of NPC In-Game New Plugin. see

03 October 2024: NPC v1.8 Beta 3 is released. (new) click here

25 October 2024: NPC v1.8 Beta 4. (new) click here