Problem mit Befehl /breakcuff

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


    Ich habe ein problem mit /breakcuff
    Der befehl soll bewirken, dass z.b. ein Wheelman die Handschellen "zerstört"


    Er soll /breakcuff eingeben mit der ID und nach 20sekunden sollen die Handschellen abgemacht werden sozusagen..


    Mir gehts hauptsächlich darum wie man das nach 20sekunden macht.


    MfG Kevin

  • if(strcmp(cmd, "/breakcuff", true) == 0) { if(IsPlayerConnected(playerid)) { if(Spieler[playerid][Team] == 15) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /breakcuff [ID/Name]"); return 1; } new pID = ReturnUser(tmp); if(IsPlayerConnected(pID)) { if(pID != INVALID_PLAYER_ID) { if(Cuffed[pID] == 0) { return SendClientMessage(playerid, COLOR_GRAD2, "Der Spieler ist nicht gecufft."); } new Float:x, Float:y, Float:z; GetPlayerPos(pID, x,y,z); if(IsPlayerInRangeOfPoint(playerid, 8, x,y,z)) { if(pID == playerid) { return SendClientMessage(playerid, COLOR_GRAD2, "Du kannst dich selber nicht entfesseln."); } SetTimerEx("cufftimer",1000*20,0,"%i%",pID); SendClientMessage(playerid,COLOR_GRAD2,"Du versuchst ein Spieler zu befreien.");
    } else { SendClientMessage(playerid, COLOR_GRAD2, "Der Spieler ist nicht in deiner Nähe."); return 1; } } } } else { return SendClientMessage(playerid, COLOR_GRAD2, "Du bist kein Wheelman."); } } return 1; }[[/pwn]


    Das Problem ist auch dass der Server dann sofort abkackt :D

  • So sollte es klappen:
    if(strcmp(cmd, "/breakcuff", true) == 0)
    {
    if(Spieler[playerid][Team] == 1 || Spieler[playerid][Team] == 2 || Spieler[playerid][Team] == 14)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /cuff [ID/Name]");
    return 1;
    }
    new pID = ReturnUser(tmp), string[145];
    if(IsPlayerConnected(pID))
    {
    if(pID != INVALID_PLAYER_ID)
    {
    if(Cuffed[pID] != 1)
    {
    return SendClientMessage(playerid, COLOR_GRAD2, "Der Spieler ist NICHT gecufft.");
    }
    new Float:x, Float:y, Float:z;
    GetPlayerPos(pID, x,y,z);
    if(IsPlayerInRangeOfPoint(playerid, 8, x,y,z))
    {
    if(pID == playerid)
    {
    return SendClientMessage(playerid, COLOR_GRAD2, "Du kannst dich selber nicht entfesseln.");
    }
    format(string, sizeof(string), "* Beamter %s hat dir Handschellen entfernt.", SpielerName(playerid));
    SendClientMessage(pID, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Du hast %s Handschellen entfernt.", SpielerName(pID));
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "** Beamter %s hat %s Handschellen entfernt.", SpielerName(playerid), SpielerName(pID));
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    GameTextForPlayer(pID, "~r~Frei", 2500, 3);
    SetTimerEx("cufftimer",1000*20,0,"i",pID);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Der Spieler ist nicht in deiner Nähe.");
    return 1;
    }
    }
    }
    }
    else
    {
    return SendClientMessage(playerid, COLOR_GRAD2, "Du bist kein Beamter.");
    }
    return 1;
    }

  • #define Funk_FP%0(%1) forward%0(%1); public%0(%1){


    Funk_FP cufftimer(playerid)
    SendClientMessage(playerid,0xFFFFFFFF,"Das ist ein DEBUG-Test!");
    TogglePlayerControllable(pid,1);
    return 1;
    }


    Ich habe mir dein Code zwar nicht angeguckt, jedoch sollte es so passen.


    E x2: Dummheit²


    E:


    Bitte anpassen!
    Der Inhalt ist rein improvisiert! :)


    E:


    Da es nicht so viel ist, editiere ich es hier einfach dazu ;)


    #define Funk_FP%0(%1) forward%0(%1); public%0(%1){


    Funk_FP cufftimer(playerid)
    printf("%s wurde durch den cufftimer zum Laufen gebracht!",SpielerName(playerid));
    GameTextForPlayer(playerid, "~g~Freigelassen", 2500, 3);
    UnfreezePlayer(playerid);
    Cuffed[playerid] = 0;
    return 1;
    }


    stock SpielerName(playerid)
    {
    new nub[MAX_PLAYER_NAME];
    GetPlayerName(playerid,nub,sizeof(nub));
    return nub;
    }

    Einmal editiert, zuletzt von Andosius ()