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;
}
|