if(strcmp(cmd, "/taze", true) == 0) { if(IsSpawned[playerid] == 0) { SendClientMessage(playerid, COLOR_ERROR, "You are dead. You cannot use this command"); return 1; } if(gTeam[playerid] >= 3) { SendClientMessage(playerid, COLOR_ERROR, "Only Law Enforcement can use this command"); return 1; } if(InDerby[playerid] == 1) { SendClientMessage(playerid,COLOR_ERROR,"You cannot use this command while you are in the stadium"); return 1; } if(Jailed[playerid] == 1) { SendClientMessage(playerid, COLOR_ERROR, "You cannot use this command in jail"); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_ERROR, "USAGE: /taze (id)"); return 1; } giveplayerid = strval(tmp); if(!IsNumeric(tmp)) { SendClientMessage(playerid, COLOR_ERROR, "USAGE: /taze (id) ID Must be a number"); return 1; } if(!IsPlayerConnected(giveplayerid)) { format(string, sizeof(string), "ID (%d) Is not an active player", giveplayerid); SendClientMessage(playerid, COLOR_ERROR, string); return 1; } if(gTeam[giveplayerid] <= 2) { SendClientMessage(playerid, COLOR_ERROR, "You cannot taze another Law Enforcement agent"); return 1; } new oname[24]; new pname[24]; GetPlayerName(playerid,oname, 24); GetPlayerName(giveplayerid, pname, 24); if(GetPlayerWantedLevel(giveplayerid) <= 3) { format(string, sizeof(string), "%s(%d) Does not have a warrant. You cannot use your tazer on this player",pname,giveplayerid); SendClientMessage(playerid, COLOR_ERROR, string); return 1; } if(GetDistanceBetweenPlayers(playerid,giveplayerid) > 10) { format(string, sizeof(string), "%s(%d) Is not close enough to taze",pname,giveplayerid); SendClientMessage(playerid, COLOR_ERROR, string); return 1; } if(cuffed[giveplayerid] == 1) { format(string, sizeof(string), "%s(%d) Is in handcuffs and is restrained. You cannot taze a handcuffed player",pname, giveplayerid); SendClientMessage(playerid, COLOR_ERROR, string); return 1; } if(IsPlayerInAnyVehicle(giveplayerid)) { format(string, sizeof(string), "%s(%d) Is in a vehicle. Get the player out the vehicle then use your tazer",pname,giveplayerid); SendClientMessage(playerid, COLOR_ERROR, string); return 1; } if(IsPlayerInAnyVehicle(playerid)) { SendClientMessage(playerid, COLOR_ERROR, "You cannot taze a player from inside a vehicle"); return 1; } if(Tazed[giveplayerid] == 1) { format(string, sizeof(string), "%s(%d) Is being tazed right now. You cannot taze a player while the player is being tazed",pname,giveplayerid); SendClientMessage(playerid, COLOR_ERROR, string); } else{ Tazed[giveplayerid] =1; new tazername[30]; GetPlayerName(playerid,tazername,30); format(string, sizeof(string), "Law Enforcement agent %s(%d) Has tazed suspect %s(%d)",tazername,playerid,pname,giveplayerid); SendClientMessageToAll(0x00C7FFAA, string); SendClientMessage(giveplayerid, 0xA9A9A9AA, "|_Law Enforcement Action_|"); format(string, sizeof(string), "Officer %s(%d) Has tazed you", oname,playerid); SendClientMessage(giveplayerid,COLOR_DODGERBLUE, string); ApplyAnimation(giveplayerid,"PED","BIKE_fall_off",4.1,0,1,1,1,1); SetTimer("Tazingtime",3000,0); } return 1; }
stock IsPlayerAiming(playerid, aimid) { // Not my function, can't remember who made it though. new Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2; GetPlayerPos(playerid, X1, Y1, Z1); GetPlayerPos(aimid, X2, Y2, Z2); new Float:Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2)); if(Distance < 100) { new Float:A; GetPlayerFacingAngle(playerid, A); X1 += (Distance * floatsin(-A, degrees)); Y1 += (Distance * floatcos(-A, degrees)); Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2)); if(Distance < 0.5) { return true; } } return false; }
Originally Posted by MafiaGuy™
ye use OnPlayerKeyStats callback and use this:
Код:
stock IsPlayerAiming(playerid, aimid) { // Not my function, can't remember who made it though. new Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2; GetPlayerPos(playerid, X1, Y1, Z1); GetPlayerPos(aimid, X2, Y2, Z2); new Float:Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2)); if(Distance < 100) { new Float:A; GetPlayerFacingAngle(playerid, A); X1 += (Distance * floatsin(-A, degrees)); Y1 += (Distance * floatcos(-A, degrees)); Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2)); if(Distance < 0.5) { return true; } } return false; } |