Otacon.
filterscripts.
.
It is a weapon with the police, that is, to shoot a gun that zaps the person and leaves him paralyzed.
pawn Код:
/*
CREDITS: Otacon
I'm Otacon ¬ ¬
*/
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#define COLOR_PURPLE 0xC2A2DAAA
#define SACAR_TAZER (5000)
new AmmoTazer[MAX_PLAYERS];
new bool:ActivarTazer[MAX_PLAYERS]=false;
new bool:PlayerTazeado[MAX_PLAYERS]=false;
new TerminarTazeado[MAX_PLAYERS];
COMMAND:tazer(playerid, params[]) {
new string[128], name[MAX_PLAYER_NAME+1];
GetPlayerName(playerid, name, sizeof(name));
AmmoTazer[playerid] = GetPlayerAmmo(playerid);
switch(GetPlayerWeapon(playerid)) {
case 22: { //9mm
GivePlayerWeapon(playerid, 23, AmmoTazer[playerid]);
ActivarTazer[playerid] = true;
format(string, sizeof(string), "* %s Load your tazer.", name);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
case 23: { //Silenced 9mm
GivePlayerWeapon(playerid, 22, AmmoTazer[playerid]);
ActivarTazer[playerid] = false;
format(string, sizeof(string), "* %s off his tazer.", name);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
}
return 1;
}
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
if(issuerid != INVALID_PLAYER_ID) {
if(ActivarTazer[issuerid] == true && GetPlayerWeapon(issuerid) == 23 && PlayerTazeado[playerid] == false) {
SetPlayerHealth(playerid, (0-amount));
TogglePlayerControllable(playerid, false);
PlayerTazeado[playerid] = true;
TerminarTazeado[playerid]=SetTimerEx("TocarTazer", SACAR_TAZER, false, "i", playerid);
new string[128];
format(string, sizeof(string), "Tazeado %i Milisegundos.", SACAR_TAZER);
GameTextForPlayer(playerid, string, 3000, 1);
ApplyAnimation(playerid, "CRACK","crckdeth2",4.1,0,1,1,1,1,1);
}
}
return 1;
}
forward TocarTazer(playerid);
public TocarTazer(playerid) {
TogglePlayerControllable(playerid, true);
PlayerTazeado[playerid] = false;
GameTextForPlayer(playerid, "Tazer taken.", 3000, 1);
KillTimer(TerminarTazeado[playerid]);
ClearAnimations(playerid);
return 1;
}
forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);
public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
if(IsPlayerConnected(playerid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
{
GetPlayerPos(i, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16))) // If the player is within 16 meters
{
SendClientMessage(i, col1, string);
}
else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8))) // within 8 meters
{
SendClientMessage(i, col2, string);
}
else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4))) //4 meters
{
SendClientMessage(i, col3, string);
}
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2))) //2 meters
{
SendClientMessage(i, col4, string);
}
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) //1 meter
{
SendClientMessage(i, col5, string);
}
}
else
{
SendClientMessage(i, col1, string);
}
}
}
return 1;
}
/*
CREDITS: Otacon
I'm Otacon ¬ ¬
*/
Nice but... SS?
Congratulations for this script, I like keep it up.