/tazer bug Spieler dreht sich

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 hab ein Problem mit dem tazer bug. und zwar wenn ein Cop ein Spieler tazert dann ist er ja ganz normal gelämt und dann wenn die 8 sek um sehnt dreht der Spieler sich die Ganze zeit und muss relog machen


    if(strcmp(cmd, "/tazer", true) ==0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsACop(playerid))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY, " Du kannst nicht in einem Auto auf jemanden mit einem Tazer schiessen !");
    return 1;
    }
    new suspect = GetClosestPlayer(playerid);
    if(IsPlayerConnected(suspect))
    {
    if(PlayerCuffed[suspect] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Spieler ist bereits gelähmt/gefesselt !");
    return 1;
    }
    if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
    {
    if(gTeam[suspect] == 2)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du kannst keine Beamten mit einem Tazer beschießen !");
    return 1;
    }
    if(IsPlayerInAnyVehicle(suspect))
    {
    SendClientMessage(playerid, COLOR_GREY, " Verbrecher ist in einem Auto !");
    return 1;
    }
    GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* Du wurdest von %s für 8 Sekunden gelähmt.", sendername);
    SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Du hast %s für 8 sekunden gelähmt.", giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* %s schiesst mit einem Tazer auf %s, und lähmte ihn.", sendername ,giveplayer);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    GameTextForPlayer(suspect, "~r~Du wurdest gelaehmt", 2500, 3);
    TogglePlayerControllable(suspect, 0);
    PlayerCuffed[suspect] = 1;
    PlayerCuffedTime[suspect] = 5;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Es ist kein Mensch in deiner Nähe!");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein Beamter !");
    }
    }//not connected
    return 1;
    }


    mfg

  • Hmm, ich glaube ich kenne das Problem.
    Dies hatte ich auch mal, ich bin immer kurz auf Desk gegangen und d wieder ins Game, und ich drehte mich nicht mehr.

  • TogglePlayerControllable(suspect, 0);
    PlayerCuffed[suspect] = 1;
    PlayerCuffedTime[suspect] = 5;


    Ich würde an dieser Stelle lieber einen Timer einbauen.


    SetTimer("tazer",8000,false); // "tazer" ist der Name des Timers - 8000 Millisekunden ist die Angabe der Zeit (8 Sekunden) - false sagt an das der Timer sich nicht wiederholen soll.


    Oben machst du dann ein:
    forward tazer(playerid); //Du sagst damit an das in dieser public "playerid" benutzt wird


    und ganz unten dann einfach:
    public tazer(playerid); //Wenn der Timer abgelaufen ist, passiert das hier:
    {
    TogglePlayerControllable(playerid,1); // Hier wird angegeben das der Spieler sein Zugriff auf Bewegung etc. wiederbekommt.
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • SetTimer("tazer",8000,false);


    Kannst du mir bitte mal sagen, inwiefern das funktionieren soll?
    Das erstellt ja einen globalen und keinen Spielerbasierenden Timer.


    Bitte, erst Denken, dann Posten...

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • :D


    Das liegt an einer Funktion names SetPlayerFacingAngle ^^


    Ehm, wahrscheinlich wird es da irgendwo abgefragt z.B.


    if(PlayerCuffed[suspect] == 1)


    oder


    if(PlayerCuffedTime[suspect] == 5)


    suche das mal und lösche evtl diese Funktionen, da dir das anscheinend nicht recht ist ^^


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Diese zwei sachen sind ja hier drinnen


    if(strcmp(cmd, "/tazer", true) ==0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsACop(playerid))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY, " Du kannst nicht in einem Auto auf jemanden mit einem Tazer schiessen !");
    return 1;
    }
    new suspect = GetClosestPlayer(playerid);
    if(IsPlayerConnected(suspect))
    {
    if(PlayerCuffed[suspect] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Spieler ist bereits gelähmt/gefesselt !");
    return 1;
    }
    if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
    {
    if(gTeam[suspect] == 2)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du kannst keine Beamten mit einem Tazer beschießen !");
    return 1;
    }
    if(IsPlayerInAnyVehicle(suspect))
    {
    SendClientMessage(playerid, COLOR_GREY, " Verbrecher ist in einem Auto !");
    return 1;
    }
    GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* Du wurdest von %s für 8 Sekunden gelähmt.", sendername);
    SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Du hast %s für 8 sekunden gelähmt.", giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* %s schiesst mit einem Tazer auf %s, und lähmte ihn.", sendername ,giveplayer);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    GameTextForPlayer(suspect, "~r~Du wurdest gelaehmt", 2500, 3);
    TogglePlayerControllable(suspect, 0);
    PlayerCuffed[suspect] = 1;
    PlayerCuffedTime[suspect] = 5;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Es ist kein Mensch in deiner Nähe!");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein Beamter !");
    }
    }//not connected
    return 1;
    }

  • Da is ja garkein Timer drinne ;)
    Wie soll sich der Spieler denn "erholen"?

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Nein, nein ^^


    Es gibt "wahrscheinlich" einen Callback der jede Sekunde abgefragt wird...(Das ist sowas wie SetTimer("Immer", 1000, 1); |
    public Immer()
    {
    //hier halt die if Abfrage z.B.
    })


    unter in meinem Beispiel heißt der Callback Immer wirst du diese if-Abfrage "wahrscheinlich" finden ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • evtl direkt nach dem Code, dieser muss ungefähr so lauten:


    SetPlayerFacingAngle(playerid,GetPlayerFacingAngle(playerid)+90);


    oder (dies ist die GF version)


    SetPlayerFacingAngle(i, angle + 90);


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

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