Main Page: Difference between revisions
No edit summary |
No edit summary |
||
(96 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
<big> | <big> | ||
== Introduction == | == Introduction == | ||
NPCs | 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. | 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 | 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 | 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;" | | ||
== | ==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]] | * [[GetPlayerSkin]] | ||
* [[GetPlayerTeam]] | * [[GetPlayerTeam]] | ||
* [[GetPlayerSlotWeapon]] | * [[GetPlayerSlotWeapon]] | ||
* [[GetPlayerSlotAmmo]] | * [[GetPlayerSlotAmmo]] | ||
* [[WhereIsPlayer]] | *[[GetPlayerSpeed]] | ||
*[[GetPlayerAction]] | |||
* [[WhereIsPlayer]] | |||
== Modules == | == Modules == | ||
* [[LibRPC]] | * [[LibRPC]] | ||
* [[npcmodule]] | * [[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]] | |||
|| | || | ||
* [[StartRecordingPlayback]] | * [[StartRecordingPlayback]] | ||
Line 82: | Line 106: | ||
* [[IsVehicleStreamedIn]] | * [[IsVehicleStreamedIn]] | ||
* [[IsPlayerStreamedIn]] | * [[IsPlayerStreamedIn]] | ||
* [[SelectWeapon]] (v1.6 b4p2) | |||
* [[GetAvailableWeapons]] | |||
* [[GetAmmoOfMyWeapon]] | |||
* [[SetTimer]] | * [[SetTimer]] | ||
* [[SetTimerEx]] | * [[SetTimerEx]] | ||
* [[KillTimer]] | * [[KillTimer]] | ||
* [[GetMyName]] | * [[GetMyName]] | ||
* [[GetMyID]] | * [[GetMyID]] | ||
* [[QuitServer]] | * [[QuitServer]] | ||
==Advanced functions | * [[RequestClass]] | ||
* [[ReqeustClassAbs]] | |||
* [[RequestSpawn]] | |||
* [[GetTickCount]] | |||
* [[GetClosestPlayer]] | |||
* [[GetSlotFromWeaponId]] | |||
* [[FaceNPCToPlayer]] | |||
==Advanced functions== | |||
* [[SendOnFootSyncData]] | * [[SendOnFootSyncData]] | ||
* [[SendOnFootSyncDataEx]] | * [[SendOnFootSyncDataEx]] | ||
Line 98: | Line 132: | ||
* [[FireSniperRifle]] | * [[FireSniperRifle]] | ||
* [[FireSniperRifleEx]] | * [[FireSniperRifleEx]] | ||
* [[FireProjectile]] | |||
* [[SendShotInfo]] | * [[SendShotInfo]] | ||
* [[SendDeathInfo]] | * [[SendDeathInfo]] | ||
* [[GetLocalValue]] | * [[GetLocalValue]] | ||
* [[SetLocalValue]] | * [[SetLocalValue]] | ||
== Functions used only in server scripts== | == Functions used only in server scripts== | ||
* [[ConnectNPC]] | * [[ConnectNPC]] | ||
Line 113: | Line 144: | ||
* [[StartRecordingPlayerData]] | * [[StartRecordingPlayerData]] | ||
* [[StopRecordingPlayerData]] | * [[StopRecordingPlayerData]] | ||
* [[RFC]] | * [[RFC]] | ||
* [[F]] | * [[F]] | ||
* [[Examples]] | * [[Examples]] (Remote calls) | ||
== | * [[StartRecordingAllPlayerData]] (v1.8) | ||
* [[StopRecordingAllPlayerData]] | |||
* [[PutServerInRecordingMode]] | |||
* [[StopServerInRecordingMode]] | |||
* [[IsPlayerRecording]] | |||
* [[IsServerInRecordingMode]] | |||
* [[ConnectMultipleNpcs]] | |||
* [[StopConnectingMultipleNpcs]] | |||
* [[Server.cfg|server.cfg values]] | |||
==Tools== | |||
* [[recupdate]] | |||
* [[recEdit]] | |||
|| | |||
* [[SendServerData]] | * [[SendServerData]] | ||
* [[ReadInt]] | * [[ReadInt]] | ||
Line 135: | Line 169: | ||
*[[WriteFloat]] | *[[WriteFloat]] | ||
*[[WriteString]] | *[[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 == | |||
*[[NPC Installation]] | |||
* [[Squirrel Standard Library Functions]] | |||
* [[NPCHide]] | |||
* [[Command-line usage]] | |||
* [[Attack Script]] (v1.5) | |||
* [[walking_man|Walking cop script]] | |||
|} | |} | ||
</big> | </big> | ||
<poem style="border: 2px solid #d6d2c5; background-color: #19f4e6; "> | <poem style="border: 2px solid #d6d2c5; background-color: #19f4e6; "> | ||
'''04 February 2023: Hiding/Changing name of NPC In-Game New Plugin. [[NPCHide|see]] | '''04 February 2023: Hiding/Changing name of NPC In-Game New Plugin. [[NPCHide|see]] | ||
</poem> | </poem> | ||
< | <Poem style="border: 2px solid #d6d2c5; background-color: #FFC0CB; "> | ||
''' | '''29 February 2024: NPC v1.8 Beta P1 is released'''. (new) [[V1_8_beta_release_notes|'''click here''']] | ||
</poem> | </poem> |
Revision as of 06:09, 6 May 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.
04 February 2023: Hiding/Changing name of NPC In-Game New Plugin. see
29 February 2024: NPC v1.8 Beta P1 is released. (new) click here