Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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 carga su 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 apaga su 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 Quitado.", 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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement