Cuff System

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 Community, ich habe mal den gamemode mafia vs police für lan private lan party geändert, nun wollte ich ein cuff system einfügen




    if(strcmp(cmd, "/cuff", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gTeam[playerid] == TEAM_POLICE || IsInAdmin[playerid] == 1)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, dblau, "Verwendung: /cuff [spielerid/teildesnamens]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(gTeam[giveplayerid] == 2 || IsACop(giveplayerid))
    {
    SendClientMessage(playerid, dblau, "Du kannst einen Polizisten keine Handschellen anlegen!");
    return 1;
    }
    if(PlayerCuffed[giveplayerid] > 0)
    {
    SendClientMessage(playerid, dblau, "Dieser Spieler trägt bereits Handschellen!");
    return 1;
    }
    if (ProxDetectorS(8.0, playerid, giveplayerid))
    {
    new car = GetPlayerVehicleID(playerid);
    if(giveplayerid == playerid) { SendClientMessage(playerid, dblau, "Du kannst dir nicht selbst Handschellen anlegen!"); return 1; }
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == 2 && IsPlayerInVehicle(giveplayerid, car))
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* Dir wurden von %s Handschellen angelegt.", sendername);
    SendClientMessage(giveplayerid, dblau, string);
    format(string, sizeof(string), "* Du hast %s Handschellen angelegt.", giveplayer);
    SendClientMessage(playerid, dblau, string);
    format(string, sizeof(string), "* %s hat %s Handschellen angelegt.", sendername ,giveplayer);
    ProxDetector(30.0, playerid, string, dblau);
    GameTextForPlayer(giveplayerid, "~r~Handschellen angelegt", 2500, 3);
    TogglePlayerControllable(giveplayerid, 0);
    PlayerCuffed[giveplayerid] = 2;
    PlayerCuffedTime[giveplayerid] = 180;
    }
    else
    {
    SendClientMessage(playerid, dblau, "Dieser Spieler ist nicht in deinem Fahrzeug oder du bist nicht Fahrer!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, dblau, "Dieser Spieler ist zu weit entfernt!");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, dblau, "Diesen Spieler gibt es nicht!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, dblau, " You are not a Cop / FBI / National Guard !");
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/uncuff", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gTeam[playerid] == 2)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, dblau, "Verwendung: /uncuff [spielerid/teildesnamens]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if (ProxDetectorS(8.0, playerid, giveplayerid))
    {
    if(giveplayerid == playerid) { SendClientMessage(playerid, dblau, "You cannot Uncuff yourself!"); return 1; }
    if(PlayerCuffed[giveplayerid])
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* Dir wurden die Handschellen von %s abgenommen.", sendername);
    SendClientMessage(giveplayerid, dblau, string);
    format(string, sizeof(string), "* Du hast %s's Handschellen entfernt.", giveplayer);
    SendClientMessage(playerid, dblau, string);
    GameTextForPlayer(giveplayerid, "~g~Handschellen sind ab", 2500, 3);
    TogglePlayerControllable(giveplayerid, 1);
    PlayerCuffed[giveplayerid] = 0;
    }
    else
    {
    SendClientMessage(playerid, dblau, "Dieser Spieler trägt keine Handschellen!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, dblau, "Dieser Spieler ist zu weit entfernt!");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, dblau, "Diesen Spieler gibt es nicht!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, dblau, " Du bist kein Polizist / FBI Agent / Nationalgarde!");
    }
    }//not connected
    return 1;
    }




    Das ist dabei ruasgekommen, nun zeigt er folgende Feheler an wenn ich konventiere




    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(762) : error 017: undefined symbol "cmd"
    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(768) : error 017: undefined symbol "tmp"
    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(768) : error 017: undefined symbol "strtok"
    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(769) : error 017: undefined symbol "tmp"
    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(773) : error 017: undefined symbol "giveplayerid"
    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(773) : error 017: undefined symbol "ReturnUser"
    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(774) : error 017: undefined symbol "giveplayerid"
    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(776) : error 017: undefined symbol "giveplayerid"
    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(778) : error 017: undefined symbol "giveplayerid"
    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(781) : warning 217: loose indentation
    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(783) : error 017: undefined symbol "PlayerCuffed"
    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(783) : error 017: undefined symbol "giveplayerid"
    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(783) : error 029: invalid expression, assumed zero
    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(783) : fatal error 107: too many error messages on one line
    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase




    Kann mir einer helfen?




    mfg

  • Ich weiß zwar nicht was du meinst aber das ist darüber



    if (strcmp("/close", cmdtext, true, 10) == 0 || strcmp("/o", cmdtext, true, 10) == 0)
    {
    if(gTeam[playerid] == TEAM_POLICE || IsInAdmin[playerid] == 1)
    {
    MoveObject(policetor2,-1633.97073125, 668.81884765625, -2.472,3.5);
    SendClientMessage(playerid,gelb,"Du schließt das Spezial-Tor (manuell)");
    SetTimer("policetor",5000,0);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,rot,"Du bist nicht Teil der Police");
    }
    }
    if (strcmp("/togpm", cmdtext, true, 10) == 0)
    {
    if(togpm[playerid] == 0)
    {
    SendClientMessage(playerid,weiß,"Private Nachrichten deaktiviert");
    togpm[playerid] = 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid,weiß,"Private Nachrichten aktiviert");
    togpm[playerid] = 0;
    return 1;
    }
    }



    müsst wissen bin anfänger^^

  • da sind einpaar sachen nicht definiert wie zb. cmd ich würde ein leichteren code nehmen wenn man anfänger ist ;)nix copy &Past

  • if(strcmp(strget(cmdtext,0), "/cuff", true) == 0)
    {
    if(!strlen(strget(cmdtext,1))) return SendClientMessage(playerid, COLOR_RED, "Benutze: /cuff [ID]");
    {
    new name[128], save[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
    if(dini_Exists(save)) // steht
    {
    pInfo[playerid][gTeam] = dini_Int(save,"Fraktion");
    }


    if(pInfo[playerid][gTeam] == SAPD || pInfo[playerid][gLeader] == SAPD)
    {


    ziel = strval(strget(cmdtext,1));
    new Float:x, Float:y, Float:z;
    new Float:x2, Float:y2, Float:z2;
    GetPlayerPos(ziel,x,y,z);
    GetPlayerPos(playerid,x2,y2,z2);
    new plrmess[128];
    new plrname[128];
    new zielname[128];
    new wcop;
    GetPlayerName(playerid,plrname,sizeof(plrname));
    GetPlayerName(ziel,zielname,sizeof(zielname));


    if(IsPlayerInRangeOfPoint(playerid,3.5,x,y,z))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    wcop = GetPlayerVehicleID(playerid);
    PutPlayerInVehicle(ziel, wcop,3);
    TogglePlayerControllable(ziel, 0);
    PlayerCuffed[ziel] = 1;
    return 1;
    }
    if(PlayerCuffed[ziel] == 1){
    TogglePlayerControllable(ziel, 1);
    format(plrmess,sizeof(plrmess),"*** %s nimmt die Handschellen von %s ab! ***",plrname,zielname);
    SendClientMessage(playerid,COLOR_PURPLE,plrmess);
    PlayerCuffed[ziel] = 0;
    return 1;
    }else{
    if(IsPlayerInAnyVehicle(ziel))
    {
    SendClientMessage(playerid, COLOR_RED, "*** Der Spieler ist in einem Auto! Hole ihn zuerst aus dem Auto! ***");
    return 1;
    }
    }
    TogglePlayerControllable(ziel, 0);
    format(plrmess,sizeof(plrmess),"*** %s nimmt seine Handschellen und legt sie %s an! ***",plrname,zielname);
    SendClientMessage(playerid,COLOR_PURPLE,plrmess);
    PlayerCuffed[ziel] = 1;
    }else{
    SendClientMessage(playerid,COLOR_RED,"Spieler ist nicht in der Nähe!");
    }


    }else{
    SendClientMessage(playerid,COLOR_RED,"Du musst Polizist sein um diesen Befehl nutzen zu können!");
    }
    }
    return 1;
    }


    geht bei mir

  • bin mir sicher das hier ist bei ihm net definiet

    PlayerCuffed[ziel] = 1;




    also kein copy&past schreibt doch selber einen befehl xD ist das selbe prinzip wie mit /kick einfach unten net Kick(id3); sondern Toggle......

  • Zitat

    Achne,bei dir ist auch alles definiert was der Befehl benötigt, bei ihm aber sicherlich nicht :pinch:


    Da hasst du Recht zeigt er auch an -.-






    Zitat

    also kein copy&past schreibt doch selber einen befehl xD ist das selbe prinzip wie mit /kick einfach unten net Kick(id3); sondern Toggle......



    Könntest du das irgendwie noch ein biss ausführen?




    EDIT:








    So ich habe jetzt mal die freeze funktion aus dem Ausgnagsskript genommen und umgeändert




    ORIGINAL:




    dcmd_freeze(playerid,params[])
    {
    new zielid;
    if(sscanf(params, "u",zielid))
    {
    return SendClientMessage(playerid,weiß,"Benutzung: /freeze [ID]");
    }
    if(IsInAdmin[playerid] == 1)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerConnected(zielid))
    {
    SendClientMessage(playerid,rot,"Es existiert kein Spieler mit dieser ID");
    return 1;
    }
    else
    {
    if(playerid == zielid)
    {
    SendClientMessage(playerid,rot,"Fehler: Du kannst dich nicht selber freezen");
    return 1;
    }
    else
    {
    new string[256];
    new string2[256];
    new admin[MAX_PLAYER_NAME];
    new zielname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,admin,sizeof(admin));
    GetPlayerName(zielid,zielname,sizeof(zielname));
    format(string,sizeof(string),"Admin %s hat dich gefreezed",admin);
    format(string2,sizeof(string2),"Du hast %s gefreezed",zielname);
    SendClientMessage(playerid,grün,string2);
    SendClientMessage(zielid,grün,string);


    TogglePlayerControllable(zielid,0);
    new string3[256];
    format(string3,sizeof(string3),"Admin: %s hat %s gefreezed",admin,zielname);
    print("-----");
    print(string3);
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid,rot,"Du besitzt nicht die nötige Einstufung zur Ausführung dieses Befehls");
    return 1;
    }
    }




    UMGEÄNDERT:




    dcmd_freeze(playerid,params[])
    {
    new zielid;
    if(sscanf(params, "u",zielid))
    {
    return SendClientMessage(playerid,weiß,"Benutzung: /cuff [ID]");
    }
    if(gTeam[playerid] == TEAM_POLICE || IsInAdmin[playerid] == 1)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerConnected(zielid))
    {
    SendClientMessage(playerid,rot,"Es existiert kein Spieler mit dieser ID");
    return 1;
    }
    else
    {
    if(playerid == zielid)
    {
    SendClientMessage(playerid,rot,"Fehler: Du kannst dich nicht selber cuffen");
    return 1;
    }
    else
    {
    new string[256];
    new string2[256];
    new admin[MAX_PLAYER_NAME];
    new zielname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,admin,sizeof(admin));
    GetPlayerName(zielid,zielname,sizeof(zielname));
    format(string,sizeof(string),"Cop %s hat dich gecuffed",admin);
    format(string2,sizeof(string2),"Du hast %s gecuffed",zielname);
    SendClientMessage(playerid,grün,string2);
    SendClientMessage(zielid,grün,string);
    TogglePlayerControllable(zielid,0);
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid,rot,"Du besitzt kein Cop");
    return 1;
    }
    }




    Obwohl ich nur Die Schrift und den Befehlt von /freeze auf /cuff umgeändert hat zeigt er mir folgende Fehler an:




    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(762) : error 017: undefined symbol "params"
    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(766) : error 017: undefined symbol "params"
    C:\GTA San Andreas\gamemodes\Mafia-Policev4 - Kopie (2) - Kopie.pwn(814) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase




    Des weiteren wundert mich Fehler drei, an diesen Befehl habe ich nichts geändert


    Warum zeigt er die Fehler an? Und wie kann ich die beheben?


    mfg