ProxDetectorS findet die Position des Spielers raus und gibt die Position zurück an den "Befehl" wenn du innerhalb der 5 Meter zu diesem Spieler bist, werden Handschellen angelegt, wenn nicht, dann nicht^^
ALso ist eig. nur eine Funktion um herraus zu finden wie weit weg der eine Spieler von dem anderen ist^^
Aso und ein kleiner Fail...
ich denke es ist nicht gewollt dass die Meldung "Officer XYZ hat YTX Handschellen angelegt" an alle Spieler gesendet werden soll...
Würde da mit ProxDetector arbeiten.
(Nicht ProxDetectorS sondern einfach nur ProxDetector)
Alles anzeigen
Willst du nicht lieber GetDistanceBetweenPlayers(playerid1,playerid2); benutzen?
Das ist doch so bisschen umständlicher?
//Stock:
stock 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));
}
//Benutzung:
if(GetDistanceBetweenPlayers(playerid,pID) >= 5)return SendClientMessage(playerid,FARBE,"Der Spieler ist nicht in deiner Nähe!");
ocmd:hs(playerid,params[])
{
if(IsACop(playerid))
{
new pID;
if(sscanf(params, "u", pID))
{
SendClientMessage(playerid,COLOR_ROT, "Benutzung: /hs [ID]");
return 1;
}
if(ProxDetectorS(5.0,playerid,pID))
{
new str[128], Officer[MAX_PLAYER_NAME], Spieler[MAX_PLAYER_NAME];
GetPlayerName(playerid, Officer, sizeof(Officer));
GetPlayerName(pID, Spieler, sizeof(Spieler));
format(str, sizeof(str), "Officer %s hat %s Handschellen angelegt", Officer, Spieler);
//SendClientMessageToAll(COLOR_HELLBLAU, str); << ich glaube auch nicht das das an alle Spieler gesendet werden soll, daher hier eine For-Schleife>>
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(IsACop(i))
{
SendClientMessage(i,FARBE,str);
}
}
}
SetPlayerSpecialAction(pID,24);
SetPlayerAttachedObject(pID, 0, 19418, 6, -0.011000, 0.028000, -0.022000, -15.600012, -33.699977, -81.700035, 0.891999, 1.000000, 1.168000);
}
else
{
SendClientMessage(playerid,COLOR_ROT,"Der Spieler ist nicht in deiner nähe!");
}
}
else
{
SendClientMessage(playerid,COLOR_ROT,"Du bist kein Beamter");
}
return 1;
}
Ich habe den Wert so eingestellt das er ab 4 Meter Entfernung ihn nicht cufft!
Achte darauf das es noch das = zeichen hinter dem > gibt!
D.h. wenn du 10 Meter willst musst 11 eintragen!
MfG
Geronimo