Hallo Breadfish, ich habe ein kleines Problem mit meinem /cuff Befehl.
Man kann es über die ganze Map machen! Deswegen wollte ich Fragen
wie ich es mache das er abfragt ob der Spieler neben einem steht?!
MFG
DeRoX
Hallo Breadfish, ich habe ein kleines Problem mit meinem /cuff Befehl.
Man kann es über die ganze Map machen! Deswegen wollte ich Fragen
wie ich es mache das er abfragt ob der Spieler neben einem steht?!
MFG
DeRoX
GetDistanceBetweenPlayers
oder
IsPlayerInRangeOfPoint
Bei GF
if (ProxDetectorS(8.0, playerid, giveplayerid)) // 8.0 = 8ImgameMeter
Wenn du selfmade hast schreib mir pn und mache dir das
;Mfg
Bei GF
if (ProxDetectorS(8.0, playerid, giveplayerid)) // 8.0 = 8ImgameMeter
Wenn du selfmade hast schreib mir pn und mache dir das
;Mfg
Nee, dass ist ein Selfmade!
Wie mache ich das mit
GetDistanceBetweenPlayers
Vielleicht so ?
GetDistanceBetweenPlayers(playerid,RANGE) ??
MFG
SnaKe_KilL
Dafür musst du erstma den Definieren der den Command ausübt
Dafür musst du erstma den Definieren der den Command ausübt
und wie ? Ich habe gerade etwas Schwierigkeiten
Ich Empfehle dir einen Befehl aus deinem Godfather raus zu kopieren und ihn dir mal Anschaust
Bin mal heute nett bitte schön !
//=================================CUFF==========================================
if(strcmp(cmd, "/cuff", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(IsACop(playerid) || PlayerInfo[playerid][pMember] == 21 || PlayerInfo[playerid][pLeader] == 21 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, " /cuff [playerid]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(PlayerCuffed[giveplayerid] > 0)
{
SendClientMessage(playerid, COLOR_GREY, " Spieler ist schon gefesselt !");
return 1;
}
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selber fesseln!"); return 1; }
if(IsPlayerConnected(giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, pname, sizeof(pname));
format(string, sizeof(string), "* Du wurdest von %s gefesselt.", pname);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Du fesselst %s.", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* %s fesselt %s, damit er nicht entkommt.", pname ,giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
GameTextForPlayer(giveplayerid, "~r~Gefesselt", 2500, 3);
TogglePlayerControllable(giveplayerid, 0);
PlayerCuffed[giveplayerid] = 1;
PlayerCuffedTime[giveplayerid] = 300;
FreezePlayer(giveplayerid);
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Spieler ist nicht in deinem Auto, oder du bist nicht in einem Auto !");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Der Spieler ist nicht in deiner nähe !");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Dieser Spieler ist Offline !");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Du bist kein Polizist !");
}
}
return 1;
}
Ich schreibe meine Befehle mit OCMD nicht mit strcmp
Hier ist mein Befehl, wie mach ich das dann mit dem GetDistance... ?
ocmd:cuff(playerid,params[])
{
new pID, string[64];
if(!IsPlayerInFrak(playerid,1))return SendClientMessage(playerid,Rot,"Du bist kein Cop!");
if(!IsPlayerOnDuty(playerid,1))return SendClientMessage(playerid,Rot,"Du bist nicht im Dienst");
if(sscanf(params,"u",pID))return SendClientMessage(playerid,Hellblau,"Benutzung: /cuff [ID]");
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,Rot,"Du und der Spieler müssen in einem Auto sitzen");
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,Rot,"Der Spieler muss in einem Auto sitzen");
if(pID==playerid)return SendClientMessage(playerid,Rot,"Du kannst dich nicht selber cuffen!");
TogglePlayerControllable(pID,0);
format(string,sizeof(string),"Officer %s hat dich gefesselt.",SpielerName(playerid));
SendClientMessage(pID,Hellblau,string);
format(string,sizeof(string),"Du hast %s Handschellen angelegt.",SpielerName(pID));
return 1;
}
//Edit: und wie mach ich das dann mit der Chat Range, d.h. wenn ich so normal was in den Chat Schrieben, das kann bei mir
jeder Lesen der aufm Server ist auch wenn man nicht nebeneinander steht!
Lass die ID als Parameter weg und nimm einfach das GetClosestPlayer aus den useful functions. Ist für die Cops leichter
Zu finden ist das hier: http://wiki.sa-mp.com/wiki/Useful_Functions#GetClosestPlayer
Wieso machst Du es einfach nicht so:
ocmd:cuff(playerid,params[])
{
new pID, string[64];
if(!IsPlayerInFrak(playerid,1))return SendClientMessage(playerid,Rot,"Du bist kein Cop!");
if(!IsPlayerOnDuty(playerid,1))return SendClientMessage(playerid,Rot,"Du bist nicht im Dienst");
if(sscanf(params,"u",pID))return SendClientMessage(playerid,Hellblau,"Benutzung: /cuff [ID]");
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,Rot,"Du und der Spieler müssen in einem Auto sitzen");
if(!IsPlayerInAnyVehicle(pID))return SendClientMessage(playerid,Rot,"Der Spieler muss in einem Auto sitzen");
if(pID==playerid)return SendClientMessage(playerid,Rot,"Du kannst dich nicht selber cuffen!");
new Float: x, Float: y, Float: z;
GetPlayerPos(pID,x,y,z);
if(IsPlayerInRangeOfPoint(playerid,5.0,x,y,z))
{
TogglePlayerControllable(pID,0);
format(string,sizeof(string),"Officer %s hat dich gefesselt.",SpielerName(playerid));
SendClientMessage(pID,Hellblau,string);
format(string,sizeof(string),"Du hast %s Handschellen angelegt.",SpielerName(pID));
}
else SendClientMessage(playerid,FARBE,"Der Spieler ist nicht in der Nähe");
return 1;
}
Lass die ID als Parameter weg und nimm einfach das GetClosestPlayer aus den useful functions. Ist für die Cops leichter
Zu finden ist das hier: http://wiki.sa-mp.com/wiki/Useful_Functions#GetClosestPlayer
Häää ?!!!!
Wenn ich die in meinem Script einfüge bekomme ich nur lauter Errors!!! Da steht nur dieser
scheiß Befehl oder was weiß ich das man da rein schreiben soll...
Könnte mir jemand vielleicht so was bei mir im Befehl einbauen ?
Wäre echt nett wenn mir das jemand machen könnte -.-
Und wenn es geht noch für den Normalen Chat die Range, aber die werde ich dann selber wahrscheinlich hinbekommen
MFG
DeRoX
//Edit: PumpguN konnte Gedanken lesen Danke
Ah, und das würde so nicht funktionieren:
format(string,sizeof(string),"Officer %s hat dich gefesselt.",SpielerName(playerid));
SendClientMessage(pID,Hellblau,string);
format(string,sizeof(string),"Du hast %s Handschellen angelegt.",SpielerName(pID));
Mach es so:
new s1[128],s2[128];
format(s1,sizeof(s1),"Du hast %s(ID:%d) Handschellen angelegt",SpielerName(pID),pID);
format(s2,sizeof(s2),"%s(ID:%d) hat dir Handschellen angelegt",SpielerName(playerid),playerid);
SendClientMessage(playerid;FARBE,s1);
SendClientMessage(pID,FARBE,s2);
Joo Danke
So jetzt bräcuhte ich das nur noch mit dem Chat
mit wurde das mal so geschickt nun schriebe ich in der Farbe weiß
aber trotzdem geht diese Nachricht noch an jeden Spieler -.-
public OnPlayerText(playerid, text[])
{
new Float:x,Float:y,Float:z;
new pName[MAX_PLAYER_NAME];
new pString[256];
GetPlayerPos(playerid,x,y,z);
GetPlayerName(playerid, pName, sizeof(pName));
format(pString,sizeof(pString),"%s sagt: %s",pName,text);
SendClientMessageToAll(WEIß,pString); //
return 0;
}
Ich wäre echt Dankbar wenn mir dabei noch geholfen werden könnte
Naja ich hab eigentlich noch mehr Fragen, aber ich glaub die eine reicht hier erstmal
MFG
DeRoX
//Edit: Text hinzugefügt
² Sachen entfertn, die wurde nicht dazu geschickt