/cuff Spieler nähe abfragen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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

  • 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

  • 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!

  • 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 :D

    Einmal editiert, zuletzt von DeRoX ()