SendOnFootSyncData

From NPC for VCMP 0.4 Servers
Revision as of 17:37, 7 December 2022 by Habi (talk | contribs)
Jump to navigation Jump to search


Description:
This will send a packet to server which is filled by the following parameters.


Parameters:

( keys, posx, posy, posz, angle, health, armour, weapon, ammo, speedx, speedy, speedz, aimposx, aimposy, aimposz, aimdirx, aimdiry, aimdirz, isCrouching, isReloading )

keys : The npc's Game Keys to hold.
posx : The npc's position x co-ordinate.
posy  : The npc's position y co-ordinate.
posz  : The npc's position z co-ordinate.
angle : The npc's facing angle in radians.(-PI to PI ).
health : Health of the npc.
armour : Armour of the npc.
weapon : Weapon of the npc.
ammo : The amount of ammo the npc has for weapon.
speedx : The npc's speed in x direction (supposed to be same as player.Speed.x on serverside )
speedy : The npc's speed in y direction ( " )
speedz : The npc's speed in z direction ( " )
aimposx : The x co-ordinate of aim position of NPC ( can be determined using server using player.AimPos or can be calculated artificially).
aimposy : The y co-ordinate of aim position of NPC
aimposz : The z co-ordinate of aim position of NPC
aimdirx : The x value given by player.Aimdir. (It is mostly 0 or PI )
aimdiry : The y value given by player.Aimdir.
aimdirz : The z value given by player.Aimdir. (usually ranges from -PI/2 to PI/2)
isCrouching : Whether the player is crouching. ( need not set to true even if aiming using weapons like ruger or sniper rifles. The logic is whether player has previously send 'Crouch Key'.)
isReloading: true, if the player has stopped shooting and is reloading his weapon. false, otherwise. The keys while reloading when 'Bitwise AND' with 512 must be zero while reloading. If the keys given are otherwise, the corresponding bit will be set off to match this requirement.


Return Values:
This function does not return any specific values.

Important Note:
This was added in v1.4 and will not work in previous builds.

Example

//The following function when called once will make npc shoot at tPos=Vector(x, y, z)
function ShootAt(tPos)
{
	local Pos=GetMyPos();
	local angle= atan2(-(tPos.x-Pos.x), tPos.y-Pos.y);
	local aimPos=Vector(tPos.x,tPos.y,tPos.z);

	SendOnFootSyncData( 576, Pos.x,Pos.y, Pos.z, angle, GetPlayerHealth( npcid ), GetPlayerArmour( npcid ), 27, 0.0, 0.0, 0.0, aimPos.x, aimPos.y, aimPos.z, PI, PI, -angle, false, false ); 
}

function OnNPCConnect(myplayerid)
{
	npcid<-myplayerid;
}

Related Functions

The following functions may be helpful as they relate to this function in one way or another.