Cop´s Befehle

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
  • ocmd:cuff(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Beamter");
    new pID, Cop;
    if(sscanf(params,"ud",pID,Cop))return SendClientMessage(playerid,-1,"Verwendung: /cuff [spielerid]");
    TogglePlayerControllable(pID,0); SendClientMessage(playerid,BLAU,"Handschellen angelegt.");
    return 1;
    }
    ocmd:uncuff(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Beamter");
    new pID, Cop;
    if(sscanf(params,"ud",pID,Cop))return SendClientMessage(playerid,-1,"Verwendung: /uncuff [spielerid]");
    TogglePlayerControllable(pID,1); SendClientMessage(playerid,BLAU,"Handschellen abgenommen.");
    return 1;
    }
    ocmd:arrest(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Beamter");
    new pID, Cop, string[50];
    if(sscanf(params,"ud",pID,Cop))return SendClientMessage(playerid,-1,"Verwendung: /arrest [spielerid]");
    if(!IsPlayerInRangeOfPoint(playerid,15,1566.6780,-1694.3621,5.8906))
    TogglePlayerControllable(pID,1); SendClientMessage(playerid,ROT,"Du wurdest eingesperrt.");
    format(string,sizeof string,"<<Officer %s hat den Verbrecher %s eingesperrt.>>",SpielerName(playerid),pID);
    SendClientMessageToAll(ROT,string);
    switch(random(1))
    {
    case 0: { SetPlayerPos(playerid,263.1886,86.1076,1001.0391);SetPlayerInterior(playerid,6);}
    case 1: { SetPlayerPos(playerid,263.8037,81.9530,1001.0391);SetPlayerInterior(playerid,6);}
    }
    return 1;
    }


    Bei /cuff wird er nicht gecufft
    Bei /uncuff <- nicht getestet
    Bei /Arrest wird er nicht tp in einer der zellen könnt ihr dies richtig machen.

  • Du verwendest bei all deinen Befehlen einen 2. Parameter der auf der Variable Cop liegen soll.
    Denn brauchst du aber gar nicht.

    new pID, Cop;
    if(sscanf(params,"ud",pID,Cop))return SendClientMessage(playerid,-1,"Verwendung: /cuff [spielerid]");

    Ändern zu:

    new pID;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,-1,"Verwendung: /cuff [spielerid]");


    Das ebenfalls bei den anderen Befehlen.
    Zudem wäre es vllt noch gut wenn du jmd fesselst einen Wert zu speichern das er gefesselt wurde.
    So kann man nachvollziehen warum er gefreezt wurde.
    Beispiel:
    SpielerInfo[pID][cuffed]=true;

    ocmd:unfreeze(playerid,params[])
    {
    new pID;
    if(sscanf(params,"u",pID)) return 1;
    if(SpielerInfo[pID][cuffed]==true) return SendClientMessage(playerid,-1,"Der Spieler wurde gefesselt daher kannst du ihn nicht unfreezen.");
    }


    Mfg
    RS

  • Naja hab es eingefügt und es bissle geändert.
    4 Error´s


    ocmd:cuff(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Beamter");
    new pID;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,-1,"Verwendung: /cuff [spielerid]");
    TogglePlayerControllable(pID,0); SendClientMessage(playerid,BLAU,"Handschellen angelegt.");
    SpielerName[pID][cuffed]=true;
    return 1;
    }
    ocmd:uncuff(playerid,params[])
    {
    new pID;
    if(sscanf(params,"u",pID)) return 1;
    if(SpielerInfo[pID][cuffed]==true) return SendClientMessage(playerid,-1,"Der Spieler ist nicht Gefesselt.");
    }
    ocmd:arrest(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Beamter");
    new pID, Cop, string[50];
    if(sscanf(params,"ud",pID,Cop))return SendClientMessage(playerid,-1,"Verwendung: /arrest [spielerid]");
    if(!IsPlayerInRangeOfPoint(playerid,15,1566.6780,-1694.3621,5.8906))
    TogglePlayerControllable(pID,1); SendClientMessage(playerid,ROT,"Du wurdest eingesperrt.");
    format(string,sizeof string,"<<Officer %s hat den Verbrecher %s eingesperrt.>>",SpielerName(playerid),pID);
    SendClientMessageToAll(ROT,string);
    switch(random(1))
    {
    case 0: { SetPlayerPos(playerid,263.1886,86.1076,1001.0391);SetPlayerInterior(playerid,6);}
    case 1: { SetPlayerPos(playerid,263.8037,81.9530,1001.0391);SetPlayerInterior(playerid,6);}
    }
    return 1;
    }


  • Bring doch bitte mal eine Struktur in Deinen Quellcode. Es tut meinen Augen weh, wenn ich so etwas durchlesen muss.


    Beispiel:

    ocmd:cuff(playerid,params[])
    {
    new pID;

    if (!isPlayerInFrakt(playerid, 1)) {
    SendClientMessage(playerid,ROT,"Du bist kein Beamter");
    }
    else {
    if (sscanf(params,"u",pID)) {
    SendClientMessage(playerid,-1,"Verwendung: /cuff [spielerid]");
    }
    else {
    SendClientMessage(playerid,BLAU,"Handschellen angelegt.");
    TogglePlayerControllable(pID,0);
    SpielerName[pID][cuffed]=true;
    }
    }

    return 1;
    }


    Mir ging es jetzt nicht um die Klammern sondern darum, dass Du SendClientMessage und TogglePlayerControllable in eine Zeile gequetscht hast. So kann man irgendwann nur die Übersicht verlieren.


    Jetzt zeig mal bitte Dein Enum oder muss man Dir echt alles aus der Nase ziehen?

  • Probier das mal so ;)
    ocmd:cuff(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Beamter!");
    new pID;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,-1,"Verwendung: /cuff [playerid]");
    return TogglePlayerControllable(pID,0),SendClientMessage(playerid,BLAU,"Handschellen angelegt!");
    }
    ocmd:uncuff(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Beamter");
    new pID;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,-1,"Verwendung: /uncuff [spielerid]");
    return TogglePlayerControllable(pID,1),SendClientMessage(playerid,BLAU,"Handschellen abgenommen.");
    }
    ocmd:arrest(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Beamter!");
    new pID,string[128];
    if(!IsPlayerInRangeOfPoint(playerid,15,1566.6780,-1694.3621,5.8906))return 1;
    TogglePlayerControllable(pID,1),SendClientMessage(pID,ROT,"Du wurdest eingesperrt!");
    format(string,128,"<<Officer %s hat den Verbrecher %s eingesperrt.>>",SpielerName(playerid),SpielerName(pID)),SendClientMessageToAll(ROT,string);
    SetPlayerInterior(pID,6);
    switch(random(1)){
    case 0:SetPlayerPos(pID,263.1886,86.1076,1001.0391);
    case 1:SetPlayerPos(pID,263.8037,81.9530,1001.0391);
    }
    return 1;
    }