/handschellen frage

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
  • Ich möchte einen Handschellen machen und hab auch schon was aufgesetzt aber es würde ja nichts passieren ich möchte dass dem Spieler Handschellen angelegt werden und er nur laufen kann mehr net wie mache ich das ?


    ocmd:handschellen(playerid,params[])
    {
    new pID,Float:PosX,Float:PosY,Float:PosZ,String[164];
    if(IstSpielerInFraktion(playerid,1))
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,Orange,"Benutzung: /handschellen [pID]");
    GetPlayerPos(pID,PosX,PosY,PosZ);
    if(!IsPlayerInRangeOfPoint(playerid,5,PosX,PosY,PosZ)) return SendClientMessage(playerid,Rot,"Der Spieler ist zu weit weg!");

    format(String,sizeof(String),"Du hast %s festgenommen!",SpielerName(pID));
    format(String,sizeof(String),"Du wurdest von %s festgenommen!",SpielerName(playerid));
    SendClientMessage(playerid,Gruen,String);
    SendClientMessage(pID,Rot,String);
    return 1;
    }

  • Dann machst du am besten bei Onplayerkey


    eine Abfrage, z.B beim F oder Schlagen ob er handschellen trägt und dann Freezen und sofort wieder entfreezen... Handschellen auf den rücken:


    SetPlayerSpecialAction(pID, SPECIAL_ACTION_CUFFED);

  • Ich habs jetzt so aber wenn ich einfach so /handschellen eingebe kommt Du wurdest festgenommen und wenn ich das isnplayerinRangeOfPonit nich auskommentier kommt DDer SPieler ist dzu weit weg was hab ich falsch gemacht ?


    ocmd:handschellen(playerid,params[])
    {
    new pID,Float:PosX,Float:PosY,Float:PosZ,String[164];
    if(IstSpielerInFraktion(playerid,1))
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,Orange,"Benutzung: /handschellen [pID]");
    GetPlayerPos(pID,PosX,PosY,PosZ);
    if(!IsPlayerInRangeOfPoint(playerid,5,PosX,PosY,PosZ)) return SendClientMessage(playerid,Rot,"Der Spieler ist zu weit weg!");
    SetPlayerSpecialAction(pID,24);
    format(String,sizeof(String),"Du hast %s festgenommen!",SpielerName(pID));
    format(String,sizeof(String),"Du wurdest von %s festgenommen!",SpielerName(playerid));
    SendClientMessage(playerid,Gruen,String);
    SendClientMessage(pID,Rot,String);
    return 1;
    }

  • //Das muss zu einer Abfrage gemacht werden
    if (ProxDetectorS(8.0, playerid, pID))
    {
    //Wenn er am spieler ist....
    }
    else
    {
    //Wenn er zuweit weg ist
    }
    //das irgendwo am besten ganz unten


    forward ProxDetectorS(Float:radi, playerid, targetid);
    public ProxDetectorS(Float:radi, playerid, targetid)
    {
    if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
    {
    new Float:posx, Float:posy, Float:posz;
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    GetPlayerPos(targetid, posx, posy, posz);
    tempposx = (oldposx -posx);
    tempposy = (oldposy -posy);
    tempposz = (oldposz -posz);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    return 1;
    }
    }
    return 0;
    }

  • Das mein ich ja nich wenn ich handschellen ohne Id eingebe kommt nur die Du wurdest festgenommen was nich sein darf und wenn ich die Id eingebe kommt auch nur die Message.


    Wernn du es selber testen willst komm auf den Server :
    84.142.92.239

  • teste mal:


    ocmd:handschellen(playerid,params[])
    {
    new pID, string1[64], string2[64];
    if(IstSpielerInFraktion(playerid,1))
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,Orange,"Benutzung: /handschellen [pID]");
    if (ProxDetectorS(8.0, playerid, pID))
    {
    SetPlayerSpecialAction(pID, SPECIAL_ACTION_CUFFED);
    format(string1,sizeof(string1),"Du hast %s festgenommen!",SpielerName(pID));
    format(string2,sizeof(string2),"Du wurdest von %s festgenommen!",SpielerName(playerid));
    SendClientMessage(playerid,Gruen,string1);
    SendClientMessage(pID,Rot,string2);
    }
    else
    {
    SendClientMessage(pID,Rot,"Du bist nicht in der Nähe des Spielers!");
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • Das hat er doch schon gemacht sogar noch kürzer wieso soll er das so machen wenns einfacher geht?

  • Es läuft aber der Typ hat keine Handschellen dran aber die Hände aufm Rücken


    Hab das jetzt so aber wenn ich handschellen mache bekomme ich gleich 2 Nachrichten die Hanschellen abgenommen und festgenommen und passiert nix was habe ich jetzt wieder falsch gemacht ?


    ocmd:handschellen(playerid,params[])
    { if(Handschellen[playerid] == 0)
    {
    new pID, string1[64], string2[64];
    if(!IstSpielerInFraktion(playerid,1)) return SendClientMessage(playerid,Rot,"Du bist kein Polizist!");
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,Orange,"Benutzung: /handschellen [pID]");
    if (ProxDetectorS(8.0, playerid, pID))
    {
    SetPlayerSpecialAction(pID, SPECIAL_ACTION_CUFFED);
    format(string1,sizeof(string1),"Du hast %s festgenommen!",SpielerName(pID));
    format(string2,sizeof(string2),"Du wurdest von %s festgenommen!",SpielerName(playerid));
    SendClientMessage(playerid,Gruen,string1);
    SendClientMessage(pID,Rot,string2);
    Handschellen[playerid] = 1;
    }
    else
    {
    SendClientMessage(pID,Rot,"Der Spieler ist zu weit weg!");
    }
    }
    if(Handschellen[playerid] ==1)
    {
    new pID, string1[64], string2[64];
    if(!IstSpielerInFraktion(playerid,1)) return SendClientMessage(playerid,Rot,"Du bist kein Polizist!");
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,Orange,"Benutzung: /handschellen [pID]");
    if (ProxDetectorS(8.0, playerid, pID))
    {
    SetPlayerSpecialAction(pID,0);
    format(string1,sizeof(string1),"Du hast die Handschellen von %s abgenommen!",SpielerName(pID));
    format(string2,sizeof(string2),"Die Handschellen wurden dir von %s abgenommen!",SpielerName(playerid));
    SendClientMessage(playerid,Gruen,string1);
    SendClientMessage(pID,Rot,string2);
    Handschellen[playerid] = 0;
    }
    else
    {
    SendClientMessage(pID,Rot,"Der Spieler ist zu weit weg!");
    }
    return 1;
    }
    return 1;
    }

    Einmal editiert, zuletzt von Ralf ()

  • ocmd:handschellen(playerid,params[])
    {
    new pID, string1[64], string2[64];
    if(!IstSpielerInFraktion(playerid,1)) return SendClientMessage(playerid,Rot,"Du bist kein Polizist!");
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,Orange,"Benutzung: /handschellen [pID]");
    if (ProxDetectorS(8.0, playerid, pID))
    {
    if(Handschellen[playerid] ==0)
    {
    SetPlayerSpecialAction(pID, SPECIAL_ACTION_CUFFED);
    format(string1,sizeof(string1),"Du hast %s festgenommen!",SpielerName(pID));
    format(string2,sizeof(string2),"Du wurdest von %s festgenommen!",SpielerName(playerid));
    SendClientMessage(playerid,Gruen,string1);
    SendClientMessage(pID,Rot,string2);
    Handschellen[playerid] = 1;
    }
    else
    {
    SetPlayerSpecialAction(pID,0);
    format(string1,sizeof(string1),"Du hast die Handschellen von %s abgenommen!",SpielerName(pID));
    format(string2,sizeof(string2),"Die Handschellen wurden dir von %s abgenommen!",SpielerName(playerid));
    SendClientMessage(playerid,Gruen,string1);
    SendClientMessage(pID,Rot,string2);
    Handschellen[playerid] = 0;
    return 1;
    }
    }
    else
    {
    SendClientMessage(pID,Rot,"Der Spieler ist zu weit weg!");
    }
    return 1;
    }


  • ocmd:handschellen(playerid,params[])
    {
    new pID, string1[64], string2[64];
    if(!IstSpielerInFraktion(playerid,1)) return SendClientMessage(playerid,Rot,"Du bist kein Polizist!");
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,Orange,"Benutzung: /handschellen [pID]");
    if (ProxDetectorS(8.0, playerid, pID))
    {
    if(Handschellen[playerid] ==0)
    {
    SetPlayerSpecialAction(pID, SPECIAL_ACTION_CUFFED);
    format(string1,sizeof(string1),"Du hast %s festgenommen!",SpielerName(pID));
    format(string2,sizeof(string2),"Du wurdest von %s festgenommen!",SpielerName(playerid));
    Handschellen[playerid] = 1;
    return SendClientMessage(pID,Rot,string2), SendClientMessage(playerid,Gruen,string1);
    }
    else
    {
    SetPlayerSpecialAction(pID,0);
    format(string1,sizeof(string1),"Du hast die Handschellen von %s abgenommen!",SpielerName(pID));
    format(string2,sizeof(string2),"Die Handschellen wurden dir von %s abgenommen!",SpielerName(playerid));
    Handschellen[playerid] = 0;
    return SendClientMessage(pID,Rot,string2), SendClientMessage(playerid,Gruen,string1);
    }
    }
    else return SendClientMessage(playerid,Rot,"Der Spieler ist zu weit weg!");
    }


    So bissel gekürzt habe ich es auch noch ;)


    Bedanke dich bitte, wenn du den Beitrag als hilfreich empfandest!



  • wenn du echte Handschellen dran haben willst nutz
    SetPlayerAttachedObject(pID, 0, 19418, 6, -0.011000, 0.028000, -0.022000, -15.600012, -33.699977, -81.700035, 0.891999, 1.000000, 1.168000);
    und wenn die ab sollen:
    RemovePlayerAttachedObject(pID,0);