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.
    Ich habe versucht ein Cuff-/Handschellensystem zu erstellen, welches an sich auch funktioniert. Allerdings cufft man sich damit immer selber, warum dies so ist weiß ich allerdings auch. Nun wollte ich nachfragen wie man es macht, dass man sich hiermit nicht selbst freezed.
    Der Command der die Variable keycuff ändert ist /h - Wenn man diesen als Polizist ausführt ist allerdings das Problem, dass die beiden Nachrichten "Keycuff wurde aktiviert" und "Keycuff wurde deaktiviert" erscheinen.
    if (newkeys == 128)
    {
    if(pInfo[playerid][fraktion] == SAPD || pInfo[playerid][fraktion] == SEK || pInfo[playerid][fraktion] == Army)
    {
    if(keycuff == 1)
    {
    new Float:X;
    new Float:Y;
    new Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i,2.0,X,Y,Z))
    {
    if(cuffed[i] == 0)
    {
    new name2[MAX_PLAYER_NAME];
    new cuff2[70];
    new name[MAX_PLAYER_NAME];
    new cuff[70];
    GetPlayerName(playerid,name,sizeof(name));
    format(cuff,sizeof(cuff),"%s hat dir deine Handschellen abgenommen!",name);
    GetPlayerName(playerid,name2,sizeof(name2));
    format(cuff2,sizeof(cuff2),"Du hast %s's Handschellen abgenommen!",name2);
    SendClientMessage(i,BLAU,cuff);
    TogglePlayerControllable(i,0);
    cuffed[i] = 1;
    }
    if(cuffed[i] == 1)
    {
    new name2[MAX_PLAYER_NAME];
    new cuff2[70];
    new name[MAX_PLAYER_NAME];
    new cuff[70];
    GetPlayerName(playerid,name,sizeof(name));
    format(cuff,sizeof(cuff),"%s hat dir Handschellen angelegt!",name);
    GetPlayerName(playerid,name2,sizeof(name2));
    format(cuff2,sizeof(cuff2),"Du hast %s Handschellen angelegt!",name2);
    SendClientMessage(i,BLAU,cuff);
    TogglePlayerControllable(i,1);
    cuffed[i] = 0;
    }
    }
    }
    }
    }



    if (strcmp("/h", cmdtext, true, 10) == 0)
    {
    if(pInfo[playerid][fraktion] == SEK || pInfo[playerid][fraktion] == Army || pInfo[playerid][fraktion] == SAPD)
    {
    if(keycuff == 1)
    {
    keycuff = 0;
    SendClientMessage(playerid,GRÜN,"Handschellen ausgeschaltet!");
    }
    if(keycuff == 0)
    {
    keycuff = 1;
    SendClientMessage(playerid,GRÜN,"Handschellen eingeschaltet!");
    }
    }
    else return SendClientMessage(playerid,ROT,"Du bist kein Polizist!");
    return 1;
    }


    Mit freundlichen Grüßen
    Padarom

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

    Einmal editiert, zuletzt von Padarom ()

  • Versuchs mal so
    if (strcmp("/h", cmdtext, true) == 0)
    {
    if(pInfo[playerid][fraktion] == SEK || pInfo[playerid][fraktion] == Army || pInfo[playerid][fraktion] == SAPD)
    {
    if(keycuff == 0)
    {
    keycuff = 1;
    SendClientMessage(playerid,GRÜN,"Handschellen ausgeschaltet!");
    }
    if(keycuff == 1)
    {
    keycuff = 0;
    SendClientMessage(playerid,GRÜN,"Handschellen eingeschaltet!");
    }
    }
    else return SendClientMessage(playerid,ROT,"Du bist kein Polizist!");
    return 1;
    }


    Powered by Windows 7


    Die HDD stimmt nich , hab 3 Festplatten drin.

  • Okay - Das erste Problem ist behoben, ich habe einfach das zweite if zu einem else if geändert.
    Nun wäre allerdings immernoch das Problem dass man sich selbst cufft.
    Wie kann man das ändern?


    Mit freundlichen Grüßen
    Padarom

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • Hallo?
    Ich möchte das mit InPlayerKeyStateChange machen, also auf Knopfdruck und nicht auf Command - Warum habe ich es wohl sonst so geschrieben?


    Ich weiß wie man Parameter nutzt.

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

    Einmal editiert, zuletzt von Padarom ()

  • Benutze mal dies:


    stock PlayerNearPlayer(Float:radius, playerid, targetid)
    {
    new Float:fpX, Float:fpY, Float:fpZ;
    GetPlayerPos(targetid, fpX, fpY, fpZ);
    if(IsPlayerInRangeOfPoint(playerid, radius, fpX, fpY, fpZ))
    { return 1; }
    else
    { return 0; }
    }

  • Damit freeze ich mich leider immernoch selbst...

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • Du musst nicht mehr als eine if Schleife reinnehmen die deinen Spieler ausschließt...


    if(i == playerid) { /* Was soll passieren wenn der getazerte Spieler der Cop ist der gerade tazert bzw. was soll nicht passieren */ }
    else { /*deine Funktion */}

    [align=center]
    Mta Script Editor - Work in Progress