Nгo foi eu que fiz, achei ai no forum samp, й sу vocк adaptar ao jeito que vocк quer
pawn Код:
/*
===================================
[FS]Taser by GangstaLC
ICQ: 369-11-88-17
===================================
*/
#include <a_samp>
#include "../include/gl_common.inc"
forward TimerClear(playerid);
forward TimerFall(playerid);
forward Float:GetDistanceBetweenPlayers(p1,p2);
forward GetClosestPlayer(p1);
new HaveTaser[MAX_PLAYERS];
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print("[FS]Taser by GangstaLC - Loaded");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256],idx;
cmd = strtok(cmdtext, idx);
if(strcmp("/gettaser", cmd, true) == 0)
{
new tmp[258];
SetPlayerAttachedObject(playerid, 0, 18642, 6, 0.06, 0.01, 0.08, 180.0, 0.0, 0.0);
HaveTaser[playerid] = 1;
format(tmp,sizeof(tmp),"{FFFFFF}You have got a {FF6600}taser{FFFFFF}.");
SendClientMessage(playerid,0xFFFFFF,tmp);
}
else if(strcmp("/droptaser", cmd, true) == 0)
{
new tmp[258];
RemovePlayerAttachedObject(playerid, 0);
HaveTaser[playerid] = 0;
format(tmp,sizeof(tmp),"{FFFFFF}You have dropped the {FF6600}taser{FFFFFF}.");
SendClientMessage(playerid,0xFFFFFF,tmp);
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_FIRE)
{
if(HaveTaser[playerid] == 1)
{
ApplyAnimation(playerid,"KNIFE","knife_3",4.1,0,1,1,0,0,1);
SetTimerEx("TimerClear",2000,false,"d",playerid);
new victimid = GetClosestPlayer(playerid);
if(IsPlayerConnected(victimid))
{
if(GetDistanceBetweenPlayers(playerid,victimid) < 2)
{
new Float:health;
GetPlayerHealth(victimid, health);
SetPlayerHealth(victimid, health - 5.0);
SetTimerEx("TimerFall",300,false,"d",victimid);
return 1;
}
}
}
}
return 1;
}
public TimerClear(playerid)
{
ClearAnimations(playerid,1);
}
public TimerFall(playerid)
{
ApplyAnimation(playerid,"KNIFE","knife_hit_3",4.1,0,1,1,0,0,1);
}
public GetClosestPlayer(p1)
{
new x,Float:dis,Float:dis2,player;
player = -1;
dis = 99999.99;
for (x=0;x<MAX_PLAYERS;x++)
{
if(IsPlayerConnected(x))
{
if(x != p1)
{
dis2 = GetDistanceBetweenPlayers(x,p1);
if(dis2 < dis && dis2 != -1.00)
{
dis = dis2;
player = x;
}
}
}
}
return player;
}
public Float:GetDistanceBetweenPlayers(p1,p2)
{
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
{
return -1.00;
}
GetPlayerPos(p1,x1,y1,z1);
GetPlayerPos(p2,x2,y2,z2);
return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}
public OnPlayerConnect(playerid)
{
HaveTaser[playerid] = 0;
RemovePlayerAttachedObject(playerid, 0);
return 1;
}