FireSniperRifle: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
</poem>| | </poem>| | ||
example=<source lang="lua"> | example=<source lang="lua"> | ||
//Sniper Rifle | //Sniper Rifle example taken from Attack Script | ||
function SnipeAt(tPos, isReloading=false, isHeadShot=false) | function SnipeAt(tPos, isReloading=false, isHeadShot=false) | ||
{ | { | ||
Line 23: | Line 23: | ||
local ammo = GetLocalValue(I_CURWEP_AMMO ); | local ammo = GetLocalValue(I_CURWEP_AMMO ); | ||
aimPos+=Vector( dx, dy, dz); | aimPos+=Vector( dx, dy, dz); | ||
SendOnFootSyncData( keys, Pos.x,Pos.y, Pos.z, angle, GetPlayerHealth( npcid ), GetPlayerArmour( npcid ), GetPlayerArmedWeapon( npcid ),ammo, 0.0, 0.0, 0.0, aimPos.x, aimPos.y, aimPos.z, dx, dy, dz, false, isReloading ); | /*SendOnFootSyncData( keys, Pos.x,Pos.y, Pos.z, angle, GetPlayerHealth( npcid ), GetPlayerArmour( npcid ), GetPlayerArmedWeapon( npcid ),ammo, 0.0, 0.0, 0.0, aimPos.x, aimPos.y, aimPos.z, dx, dy, dz, false, isReloading ); */ | ||
SetTimerEx("FireSniperRifle", 60, 1, GetPlayerArmedWeapon(npcid), Pos.x, Pos.y, Pos.z, 16.0*dx, 16.0*dy, 16.0*dz ); | SetTimerEx("FireSniperRifle", 60, 1, GetPlayerArmedWeapon(npcid), Pos.x, Pos.y, Pos.z, 16.0*dx, 16.0*dy, 16.0*dz ); | ||
} | } | ||
Line 32: | Line 32: | ||
npcid<-myplayerid; | npcid<-myplayerid; | ||
} | } | ||
</source> | </source>| | ||
}} | }} |
Latest revision as of 18:53, 26 February 2023
Description:
This will send a packet to server which is filled by the following parameters.
Parameters:
( sniperid, aimposx, aimposy, aimposz, dx, dy, dz)
sniperid : The weapon ID of sniper (28 or 29) to fire.
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 pos
aimposz : The z co-ordinate of aimpos
dx, dy, dz = The normalized direction vector(from aimpos to target ) multiplied by 16.
Return Values:
This function does not return any specific values.
Example
//Sniper Rifle example taken from Attack Script function SnipeAt(tPos, isReloading=false, isHeadShot=false) { if(isHeadShot)tPos.z+=0.627299; local Pos= GetMyPos(); local aimPos = Vector( Pos.x, Pos.y, Pos.z-0.2); local angle= atan2(-(tPos.x-aimPos.x), tPos.y-aimPos.y); local alpha = atan2( tPos.z - aimPos.z, sqrt( pow( tPos.y - aimPos.y, 2 ) + pow( tPos.x - aimPos.x , 2 ) ) ); local dx = cos(alpha) * sin(-angle); local dy = cos(alpha) * cos(-angle); local dz = sin(alpha); local keys= 577 ; local ammo = GetLocalValue(I_CURWEP_AMMO ); aimPos+=Vector( dx, dy, dz); /*SendOnFootSyncData( keys, Pos.x,Pos.y, Pos.z, angle, GetPlayerHealth( npcid ), GetPlayerArmour( npcid ), GetPlayerArmedWeapon( npcid ),ammo, 0.0, 0.0, 0.0, aimPos.x, aimPos.y, aimPos.z, dx, dy, dz, false, isReloading ); */ SetTimerEx("FireSniperRifle", 60, 1, GetPlayerArmedWeapon(npcid), Pos.x, Pos.y, Pos.z, 16.0*dx, 16.0*dy, 16.0*dz ); } //Grab npc ID function OnNPCConnect(myplayerid) { npcid<-myplayerid; }